Factions

Bukkit Plugins
4,587,466 Downloads Last Updated: Jul 1, 2018 Game Version: 1.12

Old Changelog

Apr 23, 2013 Revision 41 View Revisions

Changelog (version release notes)

Version 1.6.9.5

  • Money transfers and deposits which failed (possible with some economy plugins) would simply lose the money; now the initiator is refunded and notified of the failure. (by jastice)
  • Update to our obsidian generator exploit prevention code (via config option "handleExploitObsidianGenerators") to address newer method involving tripwire strings instead of redstone.
  • New permission factions.claim.radius (granted to all players by default), which is now required in order to specify a radius with the claim command.
  • Additional Exception catching for some further errors which can occur when loading JSON files.
  • New setting "saveToFileEveryXMinutes" (default 30.0) to configure how often (in minutes) all data is automatically saved to disk. Setting it to 0 or lower will disable automatic data saving so that it only saves when shutting down (not recommended).
  • Additional safety check to make sure data saving can't run multiple iterations simultaneously; this might have been the cause of some reports of corrupted data.
  • AutoLeaveTask is now throttled to only spend a certain amount of time per server tick on removing inactive players, to prevent it from potentially choking very large servers. This amount of time can be specified by the new setting "autoLeaveRoutineMaxMillisecondsPerTick" (default 5ms, 10% of a server tick).
  • "worldGuardBuildPriority" now applies in Wilderness and WarZone as well, not just SafeZone.
  • Switched chat handlers back to using Bukkit's deprecated synchronized chat event to fix many possible sync related errors which could occur due to the way 1.6.x handles chat. Not the best solution, but since 1.6.x is only really maintained for compatibility and bugfixes at this point...
  • Updated TNT explosion protection to cover TNT minecarts.
  • Added trapped chest, hopper, and dropper to default territoryProtectedMaterials and territoryProtectedMaterialsWhenOffline lists.

New conf.json settings:
"saveToFileEveryXMinutes": 30.0, how often (in minutes) all data is automatically saved to disk; setting to 0 disables
"autoLeaveRoutineMaxMillisecondsPerTick": 5, the number of milliseconds per server tick to throttle the task which removes inactive players

New permission:
factions.claim.radius - required in order to specify a radius with the claim command. Included in factions.kit.halfplayer permission kit and above.


Version 1.6.9.4

  • Recompile against newer CraftBukkit version to fix EntityChangeBlockEvent errors that pop up in newer CB versions.
  • Added a new Factions event for power loss named PowerLossEvent for other plugins to monitor and potentially cancel. PowerLossEvent happens after each player death. (by alkarinv)


Version 1.6.9.3

  • New setting "broadcastDescriptionChanges" (default false) which can be enabled to have faction description changes broadcast to everyone on the server. Previously description changes were always broadcast, so this has changed.
  • Added witch and wither boss to monster list to be prevented from spawning in SafeZones and similar; this was missed in the last release.
  • Fix for pistons being able to push blocks into protected territory through water or lava.
  • Fix for /f list command throwing an error if an invalid page number was specified (ex. 5 pages available and they run /f list 6).
  • Fix for further async command issue which was missed in earlier sweep. (by mbax, thanks)

New conf.json setting:
"broadcastDescriptionChanges": false, if enabled, faction description changes will be broadcast to everyone on the server


Version 1.6.9.2

  • Performance overhaul generously sponsored by Funky Town Minecraft Server, using their large server's data for reference to help with testing and tuning. Our two most frequent/heavy Bukkit event listeners (PlayerMoveEvent and PlayerInteractEvent) now cycle through much faster on average, at 313% and 200% as fast respectively. Two of our commands were also inefficient and slow on servers with a very large number of factions, /f list and /f show, which have been made to run much more efficiently at 780% and 470% as fast respectively.
  • Fix for crash on plugin startup if Worldguard integration is enabled ("worldGuardChecking") but Worldguard plugin isn't loaded on server.
  • Update to "handleExploitTNTWaterlog" method to not destroy Ender chests or portals.
  • Backups are now created of bad factions.json and players.json files if they fail to load due to a JSON parse error, the same as we already do for bad conf.json.
  • Item frames are now protected just like paintings, and they are both now protected from explosions. (by Tahkeh)
  • Clarified "CraftBukkit is too old" error message to indicate problem is due to required GSON lib not being found in needed location.
  • Fix for economy check that made sure player/faction could afford specific commands not working correctly. (by spaceemotion)
  • Fix for slashless commands triggering sync errors in CraftBukkit on rare occasions due to being run async.


Version 1.6.9.1

  • Update to work with CraftBukkit 1.3.2-R0.1 and above, as they've renamed their bundled GSON packages
  • Server startup should be vastly quicker on large servers (ex. 1 second vs. 95 seconds) due to a rewrite of our file I/O routines (by Olof Larsson)
  • Fix for players being able to use /f sethome for other factions when they shouldn't be able to (applies to 1.6 branch only, 1.7 branch wasn't affected)


Version 1.6.9

  • Update to work with CraftBukkit 1.3.1-R1.0+; PlayerChatEvents updated to AsyncPlayerChatEvents, including EssentialsChat integration code
  • Further exploit prevention for ender pearl used on blocks which now occupy less than 1 block in width or length, such as fences or thin glass (by ammaraskar)
  • Fix for player entity matching potentially returning player with partially matching name (by basicsensei)
  • Fix for Wilderness showing up in DynMap (by Olof Larsson)


Version 1.6.8

  • Added fireball/"fire charge" to default territoryDenyUseageMaterials list, to prevent them from being used to set things on fire like flint&steel.
  • Optional prevention of Ender pearl exploit, which could be used to clip through doors, glass, and probably a few other things if just the right spot was targeted. New setting "handleExploitEnderPearlClipping" (enabled by default) to determine whether it's prevented or not.
  • Optional prevention of obsidian generator exploit, which converts redstone wire to obsidian. New setting "handleExploitObsidianGenerators" (enabled by default) to determine whether it's prevented or not. Some servers might want to disable this prevention, to keep it as a viable obsidian creation method. Thanks to ObGenBlocker and WorldGuard plugins for the prevention method.
  • New setting "handleExploitInteractionSpam" (defaults to true). If enabled, players will begin to take injury if they rapidly try interacting with anything in another faction's territory. This is to prevent people from spam-clicking on doors and chests and such in the hopes that they'll get one through. After 10 rapid interaction attempts in a row, every click will cause them damage; the damage amount is a half heart of damage for every 10 clicks (up to 1 heart at 20 clicks, 1.5 hearts at 30, etc.). After the player has stopped trying for 2 seconds, their failed interaction counter will reset.
  • New setting "handleExploitTNTWaterlog" (default false/disabled) which, if enabled, will cause TNT which explodes in liquid to actually destroy a single adjacent block in all 6 directions. This will only apply to blocks which can be destroyed by TNT normally, specifically anything other than air, bedrock, water, lava, obsidian, and enchanting tables. The destruction of these blocks will be handled as if they had been mined, dropping the appropriate item. TNT in water/lava doesn't normally destroy any surrounding blocks, which is usually desired behavior. That's the reason this setting is disabled by default. However, it is available because it provides a method to get through waterwalls with enough persistence, and it makes cheap (non-obsidian) TNT cannons require minor maintenance between shots.
  • /f show|who command will no longer reveal players as online if they are hidden from the viewer by the Vanish API.
  • Double-space (or more) after command alias is no longer accepted, i.e. "f home". Otherwise, command prevention routines (in Factions itself and in other plugins) can be bypassed. For example, preventing the "f home" command wouldn't prevent anyone from using "f home" or "f home" instead.
  • Fix for /f power command used on self incorrectly also requiring factions.power.any permission.
  • Fix for rare case where faction home location's world being removed or renamed (world with specified name not existing) could lead to NPE.
  • Removed our TNT exploit prevention code, and removed our workaround fix code for the bug where half-step placement wasn't detected, since the Bukkit team did finally fix those issues.

New conf.json settings:
"handleExploitEnderPearlClipping": true, enables exploit prevention for ender pearls which otherwise can allow clipping through doors, glass, and other objects
"handleExploitObsidianGenerators": true, enables exploit prevention of obsidian generators which convert redstone wire to obsidian
"handleExploitInteractionSpam": true, enables exploit prevention of people trying to rapidly interact with doors to glitch through, by progressively injuring them after several attempts
"handleExploitTNTWaterlog": false, will cause TNT explosions in liquid to destroy the 6 adjacent blocks if those blocks would normally be destroyed by explosions


Version 1.6.7

  • Fix: If plugin failed to load correctly for various reasons, it could potentially end up wiping the board or faction list. This should now be prevented. Example: if you loaded 1.6.6 (not 1.6.6b) on CB 1.1-R6 or newer, it would trigger an exception at startup and cause this problem.
  • Custom events are now provided for other developers to hook into to create their own plugins based around Factions! Check the factions/event folder in our source for the currently implemented events. (by patrickfreed, bladedpenguin, and donington)
  • Removed dependence on external GSON lib in lib/gson.jar. GSON 2.1 is now embedded in CraftBukkit itself.
  • New setting "logPlayerCommands" (default true) which can be disabled to prevent player commands from being logged.
  • New setting "playersWhoBypassAllProtection" (default empty), which is a list of player names that should always bypass normal faction protections such as block destruction and placement. This is primarily for use with other plugins/mods which use a fake player to take action, which shouldn't necessarily be subject to protections provided by Factions. Note that case is important; you must preserve the exact capitalization of the name.

As with every other setting, you are advised to use /f config to modify it. Example:
/f config playersWhoBypassAllProtection fakePluginPlayerName - add/remove the specified player name

  • Reworked radius claim method. The old method tried to put together a list of chunks, and then tried to claim them all in one go starting from one corner of the overall area. It now starts in the current chunk and spirals outward, in a repeating task designed to keep from overloading the server. 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.
  • Faction homes should no longer be lost if their target world isn't already loaded when Factions loads at server startup. This is done using a new lazy-load Location container class which only initializes the Location when it's actually needed.
  • Fixed slashless commands not being logged if player was in faction chat or alliance chat mode.
  • Fix for "econClaimUnconnectedFee" not working correctly.
  • Connected standard command handler getCommand("f"), solely for the sake of other plugins which might directly execute commands using that interface.
  • Various minor optimizations and cleanup.

New conf.json settings:
"logPlayerCommands": true, can be disabled to prevent player commands from being logged.
"radiusClaimFailureLimit": 9, when someone is attempting a radius claim, it will halt if this many claim attempts in a row are unsuccessful.
"playersWhoBypassAllProtection": [], list of player names that should always bypass normal faction protections such as block destruction and placement. Primarily for use with other plugins/mods which use a fake player to take actions.


Version 1.6.6b

  • Fix for fatal error at startup in CraftBukkit 1.1-R5 and above
  • Final attempt to fix rare non-fatal NPE from Player ending up returning null while updating Spout appearance features


Version 1.6.6

  • Damage protection is now extended to being set on fire (by flaming arrows, for instance) and receiving harmful splash potion effects. Beneficial splash potions are unaffected, and prevention of harmful splash potion effects is handled on a player-by-player basis, so you can still harm yourself if you're not careful where you throw them.
  • New setting "homesTeleportCommandEssentialsIntegration" (default true) which, if enabled, will integrate /f home teleports with the Essentials plugin's teleport handler if Essentials is on the server. This provides teleport cooldown and/or delay to /f home based on your Essentials configuration. (Olof)
  • Added possibility to specify a player in the /f join command (/f join <faction> [player=you]), to make a player other than yourself join the specified faction. The new permission factions.join.others (added to factions.kit.mod and above) is required to be able to specify a different player. 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.
  • New setting "factionMemberLimit" (default 0, no limit), which will prevent players from joining any faction that has reached this membership limit.
  • Added command logging for commands used by players. (Olof)
  • "autoLeaveAfterDaysOfInactivity" routine now runs only once every few minutes instead of running every time a player logs in. New setting "autoLeaveRoutineRunsEveryXMinutes" (default 5 minutes) to determine just how often the routine is run. The routine is also slightly more careful now about how it calculates how long a player has been offline.
  • Updated various things for compatibility with upcoming CB 1.1-R5 and above while still being compatible with 1.1-R4. Also updated Spout integration to handle deprecated stuff.
  • Updated default GSON jar version to 2.1. For existing users, you can either delete the lib/gson.jar file on your server so Factions can download the newer version, or just download and replace it yourself: https://github.com/downloads/MassiveCraft/Factions/gson.jar (note: old version still works fine, new version just works slightly better)
  • Other plugins which prevent commands should be more likely to work: our PlayerCommandPreprocessEvent handler is now at Low priority instead of Lowest priority. (Olof)
  • "worldsIgnorePvP" setting no longer ignores PvP damage in SafeZones and PvP damage done by players who just logged in, no matter the world it happens in.
  • Fix for command prevention routine (used by territoryEnemyDenyCommands and such) not properly covering commands with uppercase letters in them.
  • Fix for potential rare NPE triggered in LWC integration where the location world returns null for whatever reason.
  • Fix for error when disbanding faction from server console with economy enabled.
  • Hopeful fix for rare errors where location world changes partway through trying to show a smoke effect for /f home.
  • Updated CAPI integration. (Olof)
  • Hopeful fix for chatspy not working with CAPI chat integration.

New conf.json settings:
"homesTeleportCommandEssentialsIntegration": true, whether to hook /f home into the Essentials plugin's teleport handling (for delay and cooldown) if it's available
"factionMemberLimit": 0, if set to anything higher than 0, players will be prevented from joining any faction which reaches this limit
"autoLeaveRoutineRunsEveryXMinutes": 5.0, "autoLeaveAfterDaysOfInactivity" routine runs this often; for example, the default value makes it run once every 5 minutes

New permission:
factions.join.others - allows you to specify another player in the /f join command. Included in factions.kit.mod permission kit and above.

Updated command:
/f join <faction> [player=you] - join a faction. To specify a player other than yourself, you must have the factions.join.others permission.


Version 1.6.5c

  • FIX: Most TNT explosions were being prevented due to a mistake on my part when I re-implemented our TNT+redstone exploit workaround fix, sorry about that. That's fixed, and the X/Z coordinates for such prevented attempts are no longer sent to players, only sent to the server console/log.


Version 1.6.5b

  • Re-enabled WorldGuard support. It actually was working, who knew? I don't use WorldGuard, and I'd only seen multiple failure reports lately and not a single indication from anyone that the integration was actually working for them, so...


Version 1.6.5

  • IMPORTANT: huge radius claim attempts could (intentionally or not) overload the server. This is now fixed.
  • Added a "claimedLandsMax" option (default 0, no limit), which prevents normal factions from being able to claim more land once they've reached this limit. (by first4ever, thanks)
  • Fix for EssentialsChat integration not working on Essentials 2.8+. "chatTagReplaceString" setting now defaults to "[FACTION]" instead of "{FACTION}" since Essentials now converts curly-braces to square-braces for any tags in their chat format setting which they don't recognize. For those using Essentials 2.8.x, this is now updated automatically.
  • Added TNT placement exploit workaround fix back; they finally fixed the exploit in CraftBukkit 1.1-RC1, but broke it again in 1.1-RC3. :(
  • Warning given for UnknownFormatConversionException chat exception is cleaned up, and the "quick dirty fix" of setting chatTagInsertIndex to 0 is automatically applied.
  • Removed direct Permissions and PermissionsEx plugin support. Problems with PermissionsEx integration had been reported. Now permissions are solely handled directly through Bukkit's built-in "superperms" permission system, since all modern permission plugins should be interfacing through that at this point.
  • Zero-value economy gains/losses are now skipped over ("X gained 0.0 for claiming this land" and similar was a bit odd).
  • WorldGuard integration is now disabled, since it has been broken for quite some time now and nobody who used it has been interested enough to actually fix it. The code is left in though, just in case somebody finally decides to fix it. We'll probably strip the code out eventually if it remains unfixed.
  • Preemptive EssentialsChat 3.x support, since they'll be removing the existing local chat integration method.

New conf.json setting:
"claimedLandsMax": 0, - if changed from 0, prevents normal factions from being able to claim more land once they've reached this limit


Version 1.6.4

  • New command /f powerboost <p|f|player|faction> <name> <#>, which will apply a permanent power bonus/penalty to a specified player or faction. When applied to a player, it will affect their max power and min power. When applied to a faction, it will be applied to current and max power levels. Whether it is a bonus or a penalty depends on whether the number you specify is positive or negative. Any power bonus/penalty is displayed in /f power and /f who output. New permission factions.powerboost which is required to use the command. This permission is added to the factions.kit.mod permission kit. (feature added thanks to a donation from Kain888)

example usage of new command:
/f powerboost p Player1 1.5 (give player "Player1" a bonus of 1.5 power)
/f powerboost f SomeFaction -6 (give faction "SomeFaction" a penalty of -6 power)
/f powerboost player Joe 0 (set player "Joe" back to no power bonus)

  • Players no longer regain power while dead; you can no longer simply stay dead and delay your respawn in order to regain power.
  • Added CaptureThePoints, CombatTag, and AuthDB to our softdepend list so they can potentially catch and cancel Factions commands.
  • Updated our event handlers to use the newer Bukkit event system.
  • Fix for error when deleting a faction if Vault wasn't present.
  • Fix for slashless Factions commands not working for player in faction chat or alliance chat modes.
  • Fixed NPE in LWC features (by patrickfreed, thanks)
  • Fix for a potential NPE in FPlayer autoLeaveOnInactivityRoutine.
  • Fix for users who have Vault but don't use economy getting an NPE.
  • Workaround fix for half-step placement on existing half-steps not being prevented; it's caused by a CraftBukkit bug: https://bukkit.atlassian.net/browse/BUKKIT-646
  • Removed our TNT exploit handling code, since they did finally fix the bug in the CraftBukkit 1.1-RC1 release.

New command:
/f powerboost <p|f|player|faction> <name> <#> - apply permanent power bonus/penalty to specified player or faction. Requires factions.powerboost permission.

New permission:
factions.powerboost - allows use of the /f powerboost command; granted by default to factions.kit.mod permission kit and above


Version 1.6.3

  • Economy integration is now handled through Vault instead of Register. You will need to download and install the Vault plugin now if you want to use any Economy-related features. If you're not using the Register plugin for anything other than Factions, it should be safe to remove it from your server. Get Vault here: http://dev.bukkit.org/server-mods/vault/
  • LWC Chest protection integration - When a claimed territory is captured by another Faction, all LWC chests that are not occupied by members of the person who is claiming the territory's faction lose their protection. See the 3 new conf.json settings below. (by patrickfreed, thanks)
  • Added chat spy feature for admins, so they can see all faction/alliance chat messages. See the new permission and command below. (by eXeC64, thanks)
  • Added radius claiming. The /f claim command now accepts an optional radius value, but only when a faction is specified. See updated command below. (by Olof Larsson, backported from 1.7 branch)
  • Players auto-removed due to inactivity or due to being banned now have their data deleted immediately; this should fix the log spam of the same players repeatedly being marked for deletion.
  • When redstone torches or TNT were attempted to be placed in protected territory but prevented, it could previously still trigger a TNT explosion due to a longstanding unfixed CraftBukkit exploit. A workaround is now in place to prevent this, and any such attempts are logged and announced to everyone on the server.
  • Server admins can now promote or demote any member of any faction to/from faction admin or moderator using the existing /f admin and /f mod commands, which can now also be used from the server console. Such usage by in-game players requires the new permissions factions.admin.any and factions mod.any. Also, another permission (factions.join.any) is added to allow server admins or moderators to join any faction without the need of /f bypass mode.
  • Self-inflicted damage (such as ender pearl usage) is no longer prevented with a message like "you cannot hurt you".
  • Updated /f map to be oriented to the new "official" north.
  • /f list should be a bit faster due to sorting method optimizations.
  • Optimization: Factions (as objects) now maintain a list of players in that faction for faster lookup; this should speed many things up on highly populated servers.
  • New conf.json setting "econClaimUnconnectedFee" (default 0.0), which can be set as an additional economic cost for claiming land which is not connected to existing claims. This additional cost is only added if the faction has at least 1 existing claim somewhere in the current world, and is added to the cost after all other calculations are done. This fee is not refunded from unclaiming land or even considered in actual land values. (added thanks to a donation from ledhead900)
  • New conf.json setting "permanentFactionMemberDenyCommands" (list, default empty), which can be used to prevent members of permanent factions from using specific commands. (added thanks to a donation from ledhead900)
  • New conf.json setting "permanentFactionsDisableLeaderPromotion" (default false) which, if enabled, will circumvent the promotion routine for permanent factions so that they can exist without a faction admin, only having regular members and/or moderators.
  • Errors loading conf.json are handled better now, allowing Factions to continue loading the board instead of losing it. Also, the bad conf.json file is backed up to conf.json_bad so it can potentially be recovered.
  • Fix for /f config not accepting values with spaces in them (i.e. "/f config territoryEnemyDenyCommands f home").
  • Fix for factions-specific commands not being prevented properly if they were in "territoryNeutralDenyCommands" or "territoryEnemyDenyCommands" ("/home" could be denied, "/f home" couldn't).
  • Fixes for several more minor bugs.

New conf.json settings:
"lwcIntegration": false, set to true to enable LWC integration
"onUnclaimResetLwcLocks": false, determines if unclaiming land resets LWC locks
"onCaptureResetLwcLocks": false, determines if capturing land resets LWC locks
"permanentFactionsDisableLeaderPromotion": false, if enabled, promotion routine is skipped for permanent factions so that they can exist without a faction admin
"permanentFactionMemberDenyCommands": [], list of commands which members of permanent factions are prevented from using
"econClaimUnconnectedFee": 0.0, additional cost for claiming land which is not connected to existing claims

New permissions:
factions.chatspy - allows use of the /f chatspy command; granted by default to factions.kit.halfmod and above
factions.admin.any - allows use of /f admin on any player in any faction
factions.mod.any - allows use of /f mod 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)

New command:
/f chatspy [on/off=flip] - toggle chat spying on/off, where you can see all faction/alliance chat messages. Requires factions.chatspy permission.

Updated command:
/f claim [faction=your] [radius=1] - claim land where you are standing


Version 1.6.2

  • When Faction descriptions are being set, they no longer display in purple like server messages
  • Faction descriptions are no longer parsed for color tags
  • Wilderness, SafeZone, and WarZone can no longer be disbanded using /f disband
  • Fix for disabled "bankEnabled" setting being ignored in some cases
  • Fix for rare SpoutPlayer exception when player logs off while spout features related to them are updating
  • Added Blaze, EnderDragon, and MagmaCube to safeZoneNerfedCreatureTypes list
  • fix for Spout faction labels not updating for players who have /f map on
  • fix for Spout's questionable new "no default height" warning for variable-sized text labels
  • workarounds for a couple of economy integration problems
  • Added jukebox, brewing stand, enchantment table, and cauldron to default territoryProtectedMaterials and territoryProtectedMaterialsWhenOffline settings
  • New conf.json setting "removePlayerDataWhenBanned" (default true), which can be disabled to prevent Factions from deleting player data for players when they are banned from the server
  • New conf.json setting "powerPlayerStarting" (default 0.0) for the power level which new players will now start at; previously new players would start with max power, now it's configurable
  • When a faction admin 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 admin in his place. If the faction has at least one moderator, one of them will be chosen. Otherwise, a normal member will be promoted. If the faction admin was the last/only member, the faction will of course be disbanded.
  • Added soil to the default "territoryProtectedMaterials" and "territoryProtectedMaterialsWhenOffline" settings, so people who aren't in your faction won't be able to trample crops in your territory (soil trampling is handled as an Interact event, for whatever reason)

New options in conf.json:
"removePlayerDataWhenBanned": true, - can be changed to false to prevent Factions from deleting player data for players when they are banned from the server
"powerPlayerStarting": 0.0, - power level which new players will start at

For servers updating from older versions of Factions, you should use these commands to update your configuration:
f config territoryProtectedMaterials SOIL
f config territoryProtectedMaterialsWhenOffline SOIL


Version 1.6.1

  • Fix for faction chat referring to all speakers as "you"
  • Fix for NPE being triggered with some economy plugins through Register when referencing faction bank accounts


Version 1.6.0

  • New command /f permanentpower to set a permanent power level for any specified faction; usage requires the factions.setpermanentpower permission (Olof)
  • /f claim and /f autoclaim now accept an optional faction specification, to claim land for a faction other than your own (possible with admin bypass mode) (Olof)
  • Safe Zones and War Zones are now called "SafeZone" and "WarZone" with the space removed, to fit with faction naming policies, and for the reason below (Olof)
  • Commands removed: /f safeclaim, /f warclaim, /f autosafe, and /f autowar. You now use /f claim and /f autoclaim instead (Olof)

Examples: /f claim safezone or /f autoclaim warzone

  • Players with admin bypass mode enabled can now join any faction without invitation and claim land without needing to be faction moderator/admin (Olof)
  • Additional event logging to server console/log, with new conf.json settings to enable/disable logging of specific events (Brettflan)
  • Fix for /f permanent and /f peaceful commands giving an NPE if run from console (Brettflan)
  • Fix for rare NPE when Spout territory info update is run and affected player disconnects at precisely that moment (Brettflan)
  • Various other minor fixes from 1.5.9 beta

Changed commands:
/f claim [faction=yours] - claim the land you're standing on for your faction, or for another faction if one is specified
/f autoclaim [faction=yours] - start autoclaiming land for your faction as you walk around, or for another faction if one is specified
New command:
/f permanentpower <faction> [power=reset] - set a permanent power level for the specified faction (or unset permanent power if no power is specified)

New permission node:
factions.setpermanentpower - allows a player to use the /f permanentpower command

New options in conf.json:
"colorPeaceful": GOLD, - the color used to denote peaceful factions and safe zones
"colorWar": DARK_RED, - the color used to denote war zones
"logFactionCreate": true, - log faction creation
"logFactionDisband": true, - log factions being disbanded, by command or by circumstance (no players left in faction, etc.)
"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


Note for other plugins which hook into Factions API methods: methods in the "com.massivecraft.factions.Factions" class and references to the plugin singleton as "Factions.instance" have been moved to the "com.massivecraft.factions.P" class and "P.p" respectively as of 1.5.9. Apologies, it was necessary due to how the plugin has been restructured.


Version 1.5.9 beta

  • Complete overhaul of project to have it use MassiveCraftCore (by Olof)
  • The gson.jar library will now be downloaded automatically for you. (by Olof)
  • All of our permissions have completely changed, so you will need to update them. Each command now has its own permission, and to make it simpler there are permission kits defined which provide varying levels of access to them. Note that the permission kits only work through the built-in Bukkit "superperms", so if you have an older Permissions-based plugin the kits won't work. (by Olof)
  • Added ally chat, to complement faction chat; the /f c command now rotates between public, faction, and ally chat modes (by eXeC64)
  • Added faction banks, which can be used to pay for things if you have economy support enabled (by eXeC64)
  • Moderators can now affect themselves (by eXeC64)
  • Direct support for iConomy5 and EssentialsEco removed; Register plugin is required for integration with any economy plugin (by Olof)
  • Smoke effect added to /f home teleportation (by Olof)
  • Faction bank commands consolidated under new /f money command (by Olof)
  • Support for the CAPI channel chat plugin (by Olof)
  • /f help command output updated (by Olof)
  • New Spout features, for Spoutcraft client users only: current territory info will now be permanently shown at top of screen, instead of being echoed out to chat as you move around. Similarly, the list of owners for the current territory (if there are any set) will be displayed there as well. An additional centered notice will briefly pop up on your screen when you move between territories controlled by different factions, to be sure you notice the transition. (by Brettflan)
  • New conf.json setting "territoryDenyEndermanBlocksWhenOffline" (default true). As might be expected, this will prevent endermen from removing or placing blocks in the territory of a faction which has no members online. (by Brettflan)
  • Added endermen, cave spiders, and silverfish to no-spawn list for safe zones, and added fence gates (FENCE_GATE) to default protected materials lists (by Brettflan)
  • Autoclaim mode is now disabled when a player is removed from a faction (whether leaving, being kicked, or whatever) (by Brettflan)
  • Fix for ownership being potentially ignored by allies, depending on settings (by Brettflan)
  • Fix for /f disband indicating a random player if command came from console (by Brettflan)
  • Fix for factions being able to potentially set relations with safe zone or war zone (though it didn't do anything, of course) (by Brettflan)
  • Added 3 new hookable functions to main Factions class, for use by other plugins: boolean isPlayerAllowedToBuildHere(Player player, Location location), boolean isPlayerAllowedToInteractWith(Player player, Block block), and boolean isPlayerAllowedToUseThisHere(Player player, Location location, Material material) (by Brettflan)
  • When a player is kicked from their faction by the autoLeaveAfterDaysOfInactivity routine, the rest of their stored data is now dropped as well (by Brettflan)
  • When a player is banned from the server, they will now be kicked from their faction and have their stored data removed (only works on CB 1240 or newer) (by Brettflan)

New commands:
/f money b,balance [faction=yours] - show faction bank balance
/f money d,deposit <amount> [faction=yours] - deposit money into faction bank
/f money w,withdraw <amount> [faction=yours] - withdraw money from faction bank
/f money ff <amount> <faction> <faction> - transfer money from faction to faction
/f money fp <amount> <faction> <player> - transfer money from faction to player
/f money pf <amount> <player> <faction> - transfer money from player to faction

New options in conf.json:
"baseCommandAliases": [
"f"
],
- list of command aliases for Factions; normally just "f" (thus /f)
"allianceChatFormat": "§d%s:§f %s", - format to display ally chat messages in, much like factionChatFormat
"homesTeleportCommandSmokeEffectEnabled": true, - show smoke effect when player teleports to faction home
"homesTeleportCommandSmokeEffectThickness": 3.0, - thickness of smoke effect
"territoryDenyEndermanBlocksWhenOffline": true, - prevent endermen from removing or placing blocks in the territory of a faction which has no members online
"spoutTerritoryDisplayPosition": 3, - set the screen position at which the current territory is shown. 0 = disabled, 1 = top left, 2 = top center, 3 (default) = top right
"spoutTerritoryDisplaySize": 1.0, - font scale (size) for the territory and owner displays at the top of the screen
"spoutTerritoryDisplayShowDescription": true, - whether to show the faction description in the territory display, instead of just the faction tag
"spoutTerritoryOwnersShow": true, - whether to show the owner list under the territory display, instead of outputting it to chat
"spoutTerritoryNoticeShow": true, - whether to show the territory change notice
"spoutTerritoryNoticeTop": 40, - vertical offset for territory change notice; 0 = top of screen, 240 = below the bottom of screen
"spoutTerritoryNoticeShowDescription": false, - whether to show the faction description in the territory change notice, instead of just the faction tag
"spoutTerritoryNoticeSize": 1.5, - font scale (size) for the territory notice
"spoutTerritoryNoticeLeaveAfterSeconds": 2.0, - how many seconds to show the territory change notice before it goes away
"econEnabled": false, - if set to true and Register plugin is available, economy integration will be enabled
"econUniverseAccount": "", - when money is paid or gained by a player, that money amount will be conversely removed from or added to this account
"bankEnabled": true, - enable faction banks
"bankMembersCanWithdraw": false, - have to be at least moderator to withdraw or pay money to another faction, unless this is set to true
"bankFactionPaysCosts": true, - if true, payments for faction command costs are charged to faction bank
"bankFactionPaysLandCosts": true, - if true, payments for land claims are charged to faction bank

All current permissions (old permissions are gone):
Kits:
factions.kit.admin - All faction permissions.

factions.kit.mod, factions.config, factions.lock, factions.reload, factions.save

factions.* - This is just an alias for factions.kit.admin

factions.kit.admin

factions.kit.mod - All faction permissions but configuration and persistance.

factions.kit.halfmod, factions.disband.any, factions.setpermanent, factions.setpeaceful, factions.sethome.any, factions.money.*

factions.kit.halfmod - Zones, bypassing, and kicking

factions.kit.fullplayer, factions.managesafezone, factions.managewarzone, factions.bypass, factions.kick.any, factions.ownershipbypass

factions.kit.fullplayer (granted by default) - Can also create new factions.

factions.kit.halfplayer, factions.create

factions.kit.halfplayer - Can do all but create factions.

factions.admin, factions.autoclaim, factions.chat, factions.claim, factions.deinvite, factions.description, factions.disband, factions.help, factions.home, factions.invite, factions.join, factions.kick, factions.leave, factions.list, factions.map, factions.mod, factions.money.kit.standard, factions.noboom, factions.open, factions.owner, factions.ownerlist, factions.power, factions.power.any, factions.relation, factions.sethome, factions.show, factions.tag, factions.title, factions.version, factions.unclaim, factions.unclaimall

factions.money.kit.standard - Basic faction bank interaction.

factions.money.balance, factions.money.balance.any, factions.money.deposit, factions.money.withdraw, factions.money.f2f, factions.money.f2p, factions.money.p2f

factions.money.* - Admin-level interaction with all faction banks.

factions.money.kit.standard, factions.money.balance.any, factions.money.deposit, factions.money.withdraw, factions.money.withdraw.any, factions.money.f2f, factions.money.f2p, factions.money.p2f

Individual permissions:
factions.admin - hand over your admin rights
factions.autoclaim - auto-claim land as you walk around
factions.bypass - enable admin bypass mode
factions.chat - change chat mode
factions.claim - claim the land where you are standing
factions.config - change a conf.json setting
factions.create - create a new faction
factions.deinvite - remove a pending invitation
factions.description - change the faction description
factions.disband - disband a faction
factions.disband.any - disband an other faction
factions.help - display a help page
factions.home - teleport to the faction home
factions.invite - invite a player to your faction
factions.join - join a faction
factions.kick - kick a player from the faction
factions.kick.any - kick anyone from any faction
factions.leave - leave your faction
factions.list - see a list of the factions
factions.lock - lock all write stuff
factions.managesafezone - claim land as a safe zone and build/destroy within safe zones
factions.managewarzone - claim land as a war zone and build/destroy within war zones
factions.map - show the territory map, and set optional auto update
factions.mod - give or revoke moderator rights
factions.money.balance - show your factions current money balance
factions.money.balance.any - show money balance for factions other than your own
factions.money.deposit - deposit money into a faction bank
factions.money.withdraw - withdraw money from your faction bank
factions.money.withdraw.any - withdraw money from your factions other than your own
factions.money.f2f - transfer money from faction to faction
factions.money.f2p - transfer money from faction to player
factions.money.p2f - transfer money from player to faction
factions.noboom - toggle explosions (peaceful factions only)
factions.open - switch if invitation is required to join
factions.owner - set ownership of claimed land
factions.ownerlist - list owner(s) of this claimed land
factions.ownershipbypass - bypass ownership restrictions within own faction's territory
factions.setpeaceful - designate a faction as peaceful
factions.setpermanent - designate a faction as permanent
factions.power - show player power info
factions.power.any - view an other players power level
factions.relation - set relation wish to another faction
factions.reload - reload data file(s) from disk
factions.save - save all data to disk
factions.sethome - set the faction home
factions.sethome.any - set faction home for another faction
factions.show - show faction information
factions.tag - change the faction tag
factions.title - set or remove a players title
factions.version - see the version of the plugin
factions.unclaim - unclaim the land where you are standing
factions.unclaimall - unclaim all of your factions land


Version 1.5.1 (bugfix release)

  • Fix for "territoryEnemyProtectMaterials" and "territoryAllyProtectMaterials" not working correctly, and wrong protection message being sent to neutral players. Re-jiggered the related code a bit which handles such things based on enemy/ally/member/neutral status.


Version 1.5.0

  • Four new conf.json settings to prevent Endermen from removing or placing blocks in certain areas. "territoryDenyEndermanBlocks" (default true) for claimed territory. "safeZoneDenyEndermanBlocks" (default true) for Safe Zones. "warZoneDenyEndermanBlocks" (default true) for War Zones. "wildernessDenyEndermanBlocks" (default false) for unclaimed wilderness areas.
  • Support for iConomy 6 and other economy plugins added through Register support (with new conf.json setting "econRegisterEnabled", defaults to false); you will however need to have the Register plugin on your server.
  • Players now lose power over time while they are offline. New conf.json setting "powerOfflineLossPerDay" (default 1.0) is how much power they lose; note that this power loss actually occurs frequently in very tiny amounts as time passes, not just once per day. New conf.json setting "powerOfflineLossLimit" (default 0.0) which will stop offline power loss once a player's power drops to the specified amount.

As an example, the default 1.0 power loss per day offline is roughly 0.0417 power loss per hour, 0.00695 per minute, and so forth.

  • When players enable/disable admin bypass mode (/f bypass), it is now logged to the server console/log.
  • Fix for players being able to hurt members of their own faction while in their own land if the "enablePVPAgainstFactionlessInAttackersLand" option is enabled.
  • Added some quick and dirty fix notes for people who get a specific chat formatting error.

New options in conf.json:
"powerOfflineLossPerDay": 1.0, - players will lose this much power per day offline
"powerOfflineLossLimit": 0.0, - players will no longer lose power from being offline once their power drops to this amount or less
"territoryDenyEndermanBlocks": true, - if enabled, endermen will be unable to place/remove blocks in faction-claimed territory
"safeZoneDenyEndermanBlocks": true, - as above, but for Safe Zones
"warZoneDenyEndermanBlocks": true, - as above, but for War Zones
"wildernessDenyEndermanBlocks": false, - as above, but for unclaimed wilderness areas


Version 1.4.9 (bugfix release)

  • bugfix: material protection (interaction with doors, chests, etc.) was being incorrectly triggered in wilderness, war zones, and safe zones


Version 1.4.8

  • Fix for arrow damage not being properly detected and prevented (when needed) which was broken by Bukkit's recent deprecation of EntityDamageByProjectileEvent
  • Fix for allies bypassing ownership if Ally options allowed them to build/interact/use in allied territory
  • Faction admins can now disband their own faction using /f disband; note that use of /f disband with another faction specified (/f disband <faction tag>) still requires the factions.disband permission, but the permission is not required for faction admins disbanding their own faction
  • New conf.json setting "newPlayerStartingFactionID" (default 0, factionless) which can be used to have new players start out in a specific faction (added thanks to a donation from ledhead900)
  • New command to set a faction as permanent: /f permanent <faction tag> (requires new admin-level permission "factions.setPermanent"). Permanent factions will not be deleted if they have no members, and faction admins of such factions are allowed to leave without a replacement available. Faction admins are also unable to disband their own faction if it is Permanent; only those with the admin-level "factions.disband" permission can disband such a faction while it is set as Permanent. (added thanks to a donation from ledhead900)
  • New conf.json setting "factionOnlyChat" (defaults to true) which can be changed to disable faction chat (coded by dotblank)
  • Worldguard region checking, prevents factions from claiming chunks that are part of WorldGuard regions; enable or disable using conf.json option "worldGuardChecking" (defaults to false) (coded by spathizilla)
  • Factionless players now have nothing extra shown over their heads, instead of "Factionless"
  • Also added AuthMe and ChatManager to softdepend list to have them load first

New commands:
/f permanent <faction tag> - set a faction as permanent. Permanent factions are not deleted when they have no members.

New permission node:
factions.setPermanent - allows a player to use the /f permanent command

New options in conf.json:
"newPlayerStartingFactionID": 0, - can be changed to have new players start out in a specific faction
"factionOnlyChat": true, - can be set to false to disable faction chat
"worldGuardChecking": false, - can be set to true to prevent factions from claiming chunks that are part of WorldGuard regions


Version 1.4.7 (bugfix release)

  • bugfix for exception triggered by blank cape URL


Version 1.4.6

  • Added Spout features, with Spout client required for all: relation-colored faction tags over players' heads via option "spoutFactionTagsOverNames", player's faction title over their head via option "spoutFactionTitlesOverNames", and relation-colored capes shown on faction admins and/or moderators via "spoutFactionAdminCapes" and "spoutFactionModeratorCapes" (all new settings default to true)
  • Added new "Ally" related protection options to complement the "Enemy" ones (added thanks to donation from BeTrayed)
  • New conf.json option "enablePVPAgainstFactionlessInAttackersLand" (default false) which, if enabled, allows PVP vs. factionless in attacker's faction territory (by sp1ky)
  • Added owner list display for faction members when moving to/from claimed chunks which have owners set (by Zidkon)
  • When a faction is disbanded or has peaceful status added or removed, all online players are now notified
  • New conf.json setting "worldsNoWildernessProtection", for worlds in which you don't want wilderness protections to apply
  • Added more hookable functions to main class for use by other plugins, these for getting a list of all factions and for listing players in a specified faction
  • bugfix for faction admin not being able to bypass ownership if "ownedAreaModeratorsBypass" was set
  • Added further debug output if an UnknownFormatConversionException is triggered during relational chat messages, to help track down cause
  • Added handling for potential null strings in "territoryNeutralDenyCommands" and "territoryEnemyDenyCommands"
  • Changed ownership mapping from HashMap to ConcurrentHashMap to hopefully take care of reported ConcurrentModificationException error

New options in conf.json:
"enablePVPAgainstFactionlessInAttackersLand": false, - if enabled, allows PVP vs. factionless in attacker's faction territory
"territoryAllyDenyBuild": true, - if disabled, players will be able to build/destroy in ally faction territory while at least one member of that faction is online
"territoryAllyDenyBuildWhenOffline": true, - if disabled, players will be able to build/destroy in ally faction territory when no members of that faction are online
"territoryAllyPainBuild": false, - if enabled, players will be hurt when trying to build/destroy in ally faction territory while at least one member of that faction is online
"territoryAllyPainBuildWhenOffline": false, - if enabled, players will be hurt when trying to build/destroy in ally faction territory when no members of that faction are online
"territoryAllyDenyUseage": true, - if disabled, players will be able to use buckets, flint&steel, etc. in ally faction territory
"territoryAllyProtectMaterials": true, - if disabled, players will be able to interact with doors, chests, etc. in ally faction territory
"ownedLandMessage": "Owner(s): ", - lead-in text shown when entering one of your faction's claimed areas which is owned
"publicLandMessage": "Public faction land.", - text shown when leaving an owned area in your faction's territory
"ownedMessageOnBorder": true, - whether to indicate ownership when entering your faction's territory from outside
"ownedMessageInsideTerritory": true, - whether to indicate ownership when moving around inside your faction's territory
"ownedMessageByChunk": false, - whether to indicate ownership while moving between claimed chunks even when the owner list is the same
"spoutFactionTagsOverNames": true, - whether to show relation-colored faction tags over players' names, over their heads (Spout plugin and Spout client both required)
"spoutFactionTitlesOverNames": true, - whether to show players' faction titles over their names, over their heads (Spout plugin and Spout client both required)
"spoutFactionAdminCapes": true, - whether to show relation-colored capes on faction admins (Spout plugin and Spout client both required)
"spoutFactionModeratorCapes": true, - whether to show relation-colored capes on faction moderators (Spout plugin and Spout client both required)
"capeAlly": "https://github.com/MassiveCraft/Factions/raw/master/capes/ally.png", - URL for cape texture used for allied faction leaders
"capeEnemy": "https://github.com/MassiveCraft/Factions/raw/master/capes/enemy.png", - ^ same, but for enemy faction leaders
"capeMember": "https://github.com/MassiveCraft/Factions/raw/master/capes/member.png", - ^ guess
"capeNeutral": "https://github.com/MassiveCraft/Factions/raw/master/capes/neutral.png", - ^ guess
"capePeaceful": "https://github.com/MassiveCraft/Factions/raw/master/capes/peaceful.png", - ^ guess
"worldsNoWildernessProtection": [], - Wilderness protection options will not be applied to any worlds in this list (should probably use /f config worldsNoWildernessProtection [world name] to add/remove worlds instead of manually editing)


Version 1.4.5

  • New conf.json settings "territoryNeutralDenyCommands" and "territoryEnemyDenyCommands", which can have lists of commands added to them that will be denied while in the territory of a neutral or enemy faction. It is recommended you use /f config to add/remove such commands, for example /f config territoryEnemyDenyCommands spawn would prevent players from using /spawn in enemy territory. You can add the slash to the command string or not, it will work either way. If the used command starts with one of your denied commands, it will be prevented. For example, if you deny "time", both /time night and /time day will be prevented. However, if you deny "time n", /time night will be prevented but /time day won't. (thanks for some code contribution from Cal27)
  • New PainBuild settings added to conf.json which can be used as an alternative or addition to DenyBuild. These will injure the person trying to build/destroy where they are not allowed, but not actually prevent it. (by locutus)
  • New "peaceful" status for factions which can only be set by server admins/moderators. Members of peaceful factions cannot deal or receive PvP damage (unless in a war zone which has friendly fire enabled), cannot claim land from another faction and likewise can't have their land claimed, and cannot be considered as ally or enemy of any other faction. Faction admins and moderators of peaceful factions can enable/disable all explosions inside their faction's territory at will. The main purpose of this is to provide a way for more peaceful players who don't want to take part in faction wars (or just want to take a break from them) to still have fun on the server. It is also meant to allow groups of players to make protected buildings, monuments, grand constructions, and so forth without having to worry about another faction destroying them. See below for conf.json options and commands.
  • Economy integration now works for EssentialsEco as well.
  • Changed findFaction() method to try matching faction tags before trying to match player names, instead of the other way around.
  • /f config [setting] [value] command now accepts setting names which are inside quotation marks, to prevent confusion since they're also in quotation marks in conf.json.
  • Removed /f worldnoclaim and /f worldnopowerloss commands; they're redundant now that you can use /f config worldsnoclaim [world name] and /f config worldsnopowerloss [world name] respectively to set those options. Also removed factions.worldOptions permission node since it was only used for those commands.

New options in conf.json:
"peacefulTerritoryDisablePVP": true, - prevents PvP damage for anyone inside a peaceful faction's territory.
"peacefulTerritoryDisableMonsters": false, - provides protection against monsters spawning or attacking inside a peaceful faction's territory.
"peacefulMembersDisablePowerLoss": true, - keeps members of peaceful factions from suffering power loss when they die.
"actionDeniedPainAmount": 1, - how much damage is done to players by the PainBuild settings below. A value of 1 is equivalent to 1/2 of a heart.
"territoryPainBuild": false, - will cause pain to people trying to build/destroy in a neutral/ally faction's territory while at least one of that faction's members is online.
"territoryPainBuildWhenOffline": false, - same as above, but for when all of the faction's members are offline.
"territoryEnemyPainBuild": false, - as above, but in enemy territory with at least one of them online.
"territoryEnemyPainBuildWhenOffline": false, - in enemy territory, all members offline.
"ownedAreaPainBuild": false, - as above, but in your own faction's territory in an owned chunk that you don't have access to.
"territoryNeutralDenyCommands": [], - list of commands which are blocked while a player is in the territory of a neutral faction
"territoryEnemyDenyCommands": ["home", "sethome", "spawn"], - list of commands which are blocked while a player is in the territory of an enemy faction

New commands:
/f peaceful [faction tag] - toggle the indicated faction's "peaceful" status
/f noboom - enable/disable explosions inside your faction's territory; only available to faction admin and faction moderators for peaceful factions

New permission nodes:
factions.setPeaceful - ability to use the /f peaceful command (admins)
factions.peacefulExplosionToggle - ability to use /f noboom (everyone)


Version 1.4.4

  • Added basic support for iConomy, where most Factions commands can be made to cost (or give) money. For claiming land, there are some extra features. Each additional land claimed by default costs more than the last, with the multiplier being configurable. For example, the first claim might cost $30, the 2nd $45, the third $60, and so forth. When land is claimed from a weakened faction, there is a configurable bonus amount of money deducted from the cost of claiming the land, as an incentive; this number can be changed to a negative value to instead make it cost more to claim such land. When land is unclaimed, a configurable percentage of the cost of claiming the land can be refunded (defaults to 70% of the cost). The total value of a faction's claimed land is now shown in the info given by /f who [faction tag], along with the depreciated (refund) value. See the list of new conf.json options below for more details. (added thanks to a donation from ledhead900)
  • Fix for error that could occur when unclaiming land.
  • New conf.json settings "showNeutralFactionsOnMap" and "showEnemyFactionsOnMap" (both default to true) which, if disabled, will hide neutral and enemy factions on the faction map. However, if a player is standing inside territory claimed by a neutral or enemy faction, all of that faction's nearby claims will be shown on the faction map regardless.
  • New conf.json setting "worldsIgnorePvP" as a list of worlds which you don't want Factions to pay any attention to PvP in. No new command has been added to set this, since we now have the /f config command. So, to add/remove worlds, simply use /f config worldsIgnorePvP [world name].
  • "disablePVPForFactionlessPlayers" is now overridden if "warZoneFriendlyFire" is enabled and the PvP is occurring inside a War Zone.

New options in conf.json:
"showNeutralFactionsOnMap": true, - if disabled, will hide neutral factions on the faction map (unless player is standing inside the faction's territory)
"showEnemyFactionsOnMap": true, - same as above, but for enemy factions
"econIConomyEnabled": false, - if enabled, Factions will try to use iConomy to charge (or give) money for certain commands as outlined in the settings below
"econCostClaimWilderness": 30.0, - the base amount of money which will be charged to claim territory which is wilderness (only used if iConomy is available and enabled in the option above)
"econCostClaimFromFactionBonus": 30.0, - how much the cost of claiming land is reduced if it is being taken from another faction; can be set to a negative number to make such claims cost more instead of less
"econClaimAdditionalMultiplier": 0.5, - if set higher than 0.0, each additional land claimed by a faction will cost more than the last. Example: with base cost of 30 and miltiplier of 0.5, the 2nd claim will cost 45, the third will cost 60, and so forth.
"econClaimRefundMultiplier": 0.7, - if set higher than 0.0, a refund of part of the cost of the land will be given when land is unclaimed. 1.0 would be a 100% refund, 0.7 is a 70% refund. If set to a negative number, it will actually cost that much money to unclaim land rather than refunding it.
"econCostCreate": 100.0, - the cost to use /f create
"econCostOwner": 15.0, - the cost to use /f owner
"econCostSethome": 30.0, - the cost to use /f sethome
"econCostJoin": 0.0, - the cost to use /f join
"econCostLeave": 0.0, - ...
"econCostKick": 0.0, - ...
"econCostInvite": 0.0, - ...
"econCostHome": 0.0, - ...
"econCostTag": 0.0, - ...
"econCostDesc": 0.0, - ...
"econCostTitle": 0.0, - ...
"econCostList": 0.0, - ...
"econCostMap": 0.0, - ...
"econCostPower": 0.0, - ...
"econCostShow": 0.0, - ...
"econCostOpen": 0.0, - ...
"econCostAlly": 0.0, - ...
"econCostEnemy": 0.0, - ...
"econCostNeutral": 0.0, - ...
"worldsIgnorePvP": [], - PvP damage will not be prevented by Factions for any worlds in this list (should probably use /f config worldsIgnorePvP [world name] to add/remove worlds instead of manually editing)


Version 1.4.3

  • Faction admins can now mark already claimed areas as owned by specific faction members. Ownership can include multiple members. Usage details below. (from donation by GarretSidzaka)
  • New command /f owner *[player name], to set/remove ownership. This command is only available to the faction admin and optionally the faction moderators. If no player name is specified, it will either set ownership to the player running the command (if no owner is currently set) or completely clear ownership of the territory.
  • New command /f ownerlist, to view a list of owners for the current area. Only works inside your own faction's territory.
  • New conf.json options "ownedAreasEnabled", "ownedAreasModeratorsCanSet", "ownedAreaModeratorsBypass", "ownedAreaDenyBuild", "ownedAreaProtectMaterials", and "ownedAreaDenyUseage" (all defaulting to true) to determine whether faction moderators can set or bypass ownership (faction admin always can), and what sort of protection these owned areas have against normal members of the faction (members other than the owner(s), faction admin, and probably faction moderators).
  • New conf.json option "ownedAreasLimitPerFaction" to limit how many owned areas can be set.
  • New permission node factions.ownershipBypass which allows a player to bypass ownership protection, but only within the person's own faction.
  • New conf.json option "safeZonePreventAllDamageToPlayers" (default false) which if enabled will prevent all damage to players while they're in a Safe Zone; note that attack damage from other players and monsters is still prevented regardless (from donation by GarretSidzaka)
  • New conf.json option "disablePVPBetweenNeutralFactions" (default false) which if enabled will prevent all PvP damage between neutral factions (by Amrac)
  • If "autoLeaveAfterDaysOfInactivity" is set to 0.0 or a negative number, it's now effectively disabled
  • moderate speed boost to very frequently used FLocation code
  • made commandDisable permissions work for any command alias of a command, instead of just the first one
  • various other little tweaks and improvements to other code

New commands:
/f owner *[player name] - set/remove ownership of a claimed area. This command is only available to the faction admin and optionally the faction moderators. If a player name is specified, that player will be added to the owner list for the claim (if not already in it) or otherwise will have their ownership removed. If no player name is specified, it will either set ownership to the player running the command (if no owner is currently set) or completely clear ownership of the territory.
/f ownerlist - view a list of owners for the current area. Only works inside your own faction's territory.

New permission node:
factions.ownershipBypass - allows a player to bypass ownership protection, but only within their own faction territory (admins, moderators)

New options in conf.json:
"ownedAreasEnabled": true, - Whether in-faction individual ownership of claimed areas is enabled.
"ownedAreasLimitPerFaction": 0, - If set above 0, will limit the number of owned areas a faction can have set
"ownedAreasModeratorsCanSet": true, - Whether faction moderators are allowed to set ownership.
"ownedAreaModeratorsBypass": true, - Whether faction moderators can bypass the protections provided by ownership.
"ownedAreaDenyBuild": true, - If enabled, owned areas cannot be built/destroyed by normal faction members.
"ownedAreaProtectMaterials": true, - If enabled, owned areas disallow interaction with protected materials (doors, chests, etc.) by normal faction members.
"ownedAreaDenyUseage": true, - If enabled, owned areas deny usage of certain inventory items (flint&steel, buckets) by normal faction members.
"safeZonePreventAllDamageToPlayers": false, - If enabled, will prevent all damage to players while they're in a Safe Zone; note that attack damage from other players and monsters is still prevented regardless.
"disablePVPBetweenNeutralFactions": false, - If enabled, will prevent all PvP damage between neutral factions.


Version 1.4.2

  • GSON library is now external again; gson.jar will now need to be located in /lib/gson.jar from your root Minecraft server folder (by Olof Larsson)


Version 1.4.1

  • New command /f config <setting> <value> which can be used to change any conf.json setting. This is mainly for people who have trouble editing the file manually, for whatever reason. It even fixes any capitalization errors, and saves the conf.json file immediately after an option is changed. Can be run by player or from server console. Uses new permission node factions.config.
  • New conf.json option "powerFactionMax" (default 0) for maximum power limit for all factions. If set to anything above 0, factions will have their power capped at this amount. As a result, any players adding power beyond the faction's limit will effectively just be adding a buffer of sorts. (feature added thanks to donation from Magesblood)
  • New command /f power [player name] to check either your own power (if no name is specified) or another player's power (if a player name is specified). The ability for a player to view their own power is based on the standard factions.participate permission, but to check the power of other players, the new permission node factions.viewAnyPower needs to be granted. If you aren't using a Permissions plugin (instead defaulting to the built-in Bukkit permission system), the factions.viewAnyPower permission is granted by default. Otherwise, you'll need to configure your Permissions plugin to grant the new permission as needed.
  • New conf.json option "claimsRequireMinFactionMembers" (defaults to 1, effectively disabled) which can be increased to prevent small (potentially one player) factions from claiming land until they have more members.
  • Added a secondary low priority event listener for chat events, to try and make sure Factions is able to handle slashless commands and faction chat before other plugins do anything.
  • "claimsMustBeConnected" land claim requirement is now ignored for players who have enabled bypass mode.
  • When adding relational colored faction tags to chat, Factions now pays attention to whether the recipient list has been altered by another plugin.

New commands:
/f power *[player name] - check either your own power (if no name is specified) or another player's power (if a player name is specified, and permission node factions.viewAnyPower is granted).
/f config <setting> <value> - can be used to change any conf.json setting, without having to manually edit the file. Text capitalization is automatically standardized as needed. Can be run by players in-game (with permission node factions.config) or from server console, and takes effect immediately. Side note: Java Reflection is quite handy, and made this possible in a fairly elegant way. Data types and examples below.

For boolean (true/false> values, you can specify true, false, on, off, yes, no, y, n. Example (set "homesEnabled" to true): /f config hOmesEnableD y For numeric values, some need to be whole numbers and others don't. You'll be notified if that's an issue. Example (set "powerPlayerMax" to 20.5): /f config powerplayermax 20.5 For text values, just enter the desired text. Note that if you have a space (" ") at the end, it will be trimmed off. Example (set "chatTagReplaceString" to "{FACTION TAG HERE}"): /f config chatTagReplaceString {FACTION TAG HERE} For lists of multiple values, the command will add the specified value if it doesn't exist or remove it if it does. Example (add/remove "BUCKET" from "territoryDenyUseageMaterials", depending on whether it's already in there or not): /f config territoryDenyUseageMaterials bucket

New permission nodes:
factions.viewAnyPower - ability to view the power of any player using /f power [player name] command (default, or admins)
factions.config - ability to use the new /f config <setting> <value> command (admins)

New options in conf.json:
"powerFactionMax": 0.0, - Maximum power limit for all factions. If set to anything above 0, factions will have their power capped at this amount.
"claimsRequireMinFactionMembers": 1, - Can be increased to prevent small (potentially one player) factions from claiming land until they have more members


Version 1.4.0 (bugfix release)

  • Fix for IEssentialsChatListener error when starting Factions if EssentialsChat 2.5.1+ wasn't present


Version 1.3.9

  • New permission nodes to disable any command, factions.commandDisable.<command>, along with factions.commandDisable.none node which forcibly makes none disabled (for * permission users or similar); for <command>, you must use the first command alias given in the /f help information (for example, "show" instead of "who" for that particular command).

NOTE: these new permission nodes are unnecessary unless you want to explicitly prevent someone from using a Factions command they otherwise would have access to based on their other permissions.

  • Updated to new integration method for EssentialsChat, providing full integration; needs up-to-date Essentials (2.5.1 or newer).

NOTE: if your copy of Essentials is too old, this error will occur at server startup (sadly impossible to catch or otherwise handle due to how Bukkit loads plugins): java.lang.NoClassDefFoundError: com/earth2me/essentials/chat/IEssentialsChatListener

  • Piston movement is now prevented if it encroaches across into territories which have the relevant DenyBuild option set (whether faction territory, safe zone, or war zone). This covers piston extension if it pushes across unacceptable borders or even if the piston head itself would cross over, and also prevents sticky pistons from pulling blocks back across such borders.
  • New conf.json option "pistonProtectionThroughDenyBuild" (default true) which can be disabled to turn off piston protection. This option is available due to the (untested) potential that a world with many pistons constantly repeatedly firing could result in additional lag from these piston protection events.
  • New conf.json option "claimsCanBeUnconnectedIfOwnedByOtherFaction" (default true), which will allow claims to bypass the "claimsMustBeConnected" option if the attempted claim is vulnerable land controlled by another faction.
  • New conf.json option "homesTeleportIgnoreEnemiesIfInOwnTerritory" (default true). If disabled, players will no longer be able to teleport to their faction home while close to an enemy even if they are in their own territory.
  • Added optional faction tag entry to /f sethome command to set the home of any faction, which is only allowed if the user has adminBypass permission.
  • Added diodes to the default "territoryProtectedMaterials" and "territoryProtectedMaterialsWhenOffline" lists (existing users might want to add them to their own conf.json files; they are "DIODE_BLOCK_ON" and "DIODE_BLOCK_OFF").

Updated command:
/f sethome *[faction tag] - set the home of the faction; if faction tag is specified and user has adminBypass permission, they can set the home of any faction

New permission nodes:
factions.commandDisable.<command> - disable the specified <command>. For example, factions.disableCommand.unclaim permission would prevent the person from using the /f unclaim command. For <command>, you must use the first command alias given in the /f help information (for example, "show" instead of "who" for that particular command).
factions.commandDisable.none - overrides the disabling of any commands from the above permissions (admins)

New options in conf.json:
"pistonProtectionThroughDenyBuild": true, - can be disabled to turn off piston protection. This option is available due to the (untested) potential that a world with many pistons constantly repeatedly firing could result in additional lag from these piston protection events.
"claimsCanBeUnconnectedIfOwnedByOtherFaction": true, - will allow claims to bypass the "claimsMustBeConnected" option if the attempted claim is vulnerable land controlled by another faction.
"homesTeleportIgnoreEnemiesIfInOwnTerritory": true, - if disabled, players will no longer be able to teleport to their faction home while close to an enemy even if they are in their own territory.


Version 1.3.8

  • Updated to support newly available built-in Bukkit "superperms" permission system, though it will still use the Permissions plugin instead if that's available. The permission nodes are the same.
  • Added LocalAreaChat plugin to the softdepend list so it's loaded before Factions
  • Updated namespace from org.mcteam to com.massivecraft, to go with the source being moved on GitHub and the new documentation being added on Olof's new site at http://massivecraft.com/dev/factions (by Olof Larsson)


Version 1.3.7

  • New options in conf.json which will now treat enemy factions differently: "territoryEnemyDenyBuild", "territoryEnemyDenyBuildWhenOffline", "territoryEnemyDenyUseage", and "territoryEnemyProtectMaterials" (all default to true). If someone in an enemy faction tries any of those (building/destroying, using certain inventory items, or interacting with certain blocks such as doors), these new values will be checked; otherwise, for neutral and allied factions the existing values will be used.
  • Made /f kick command work on any player in any faction, if the person using the command has the admin-level "disband" permission
  • New conf.json option "homesTeleportAllowedFromDifferentWorld" (defaults to true) which can be set to false to prevent people from teleporting to their faction home if in a different world from it
  • Fix for /f autosafe and /f autowar commands not working properly if the user was not in a faction
  • Added "BURNING_FURNACE" to default "territoryProtectedMaterials" and "territoryProtectedMaterialsWhenOffline" lists, since lit furnaces otherwise are not protected
  • Slightly simplified the code used for checking relations

New settings in conf.json:
"homesTeleportAllowedFromDifferentWorld": true, - whether or not players are allowed to use /f home when their faction home is in a different world from them
"territoryEnemyDenyBuild": true, - whether players are prevented from building/destroying blocks in the territory of enemy factions, while any members of that faction are online
"territoryEnemyDenyBuildWhenOffline": true, - whether players are prevented from building/destroying blocks in the territory of enemy factions, while all members of that faction are offline
"territoryEnemyDenyUseage": true, - whether players are prevented from using certain inventory items (by default buckets and flint&steel) while in the territory of enemy factions
"territoryEnemyProtectMaterials": true, - whether players are prevented from interacting with certain block types (by default doors and chests and such) while in the territory of enemy factions


Version 1.3.6 (fix release for RB 953)

  • Update for new Bukkit version
  • Fix for movement between different territory claims not always reporting the correct territory owner, which appears to be caused by event.getTo() for PlayerMoveEvent currently not always giving the correct location (happens in RB 953, but not RB 935 or older)


Version 1.3.5 (bugfix release)

  • Fix for NPE on /f who command by in-game player


Version 1.3.4 (bugfix release)

  • Fix for NPE on player respawn when faction home isn't set


Version 1.3.3

  • Made faction home respawning obey the 'worldsNoPowerLoss' config (by oliverw92)
  • New conf.json option "homesRespawnFromNoPowerLossWorlds" (defaults to true) to go with oliverw92's commit above, so server owners have an option whether or not players should respawn to faction homes when they die in "worldsNoPowerLoss" worlds
  • Removed "preloadChatPlugins" option and related code, since that method could cause problems and since we've switched to using softdepend in the plugin.yml for preloading plugins
  • A couple of additions and changes to the hookable functions for other plugins to use
  • New conf.json option "homesTeleportCommandEnabled" which can be used to disable the /f home command, while possibly leaving faction homes enabled for the "homesTeleportToOnDeath" functionality
  • De-crapped server log messages for faction chat (stripped color tags)
  • Fix for StringIndexOutOfBoundsException which could rarely happen from overlong strings passed to titleize(String str), and some potential NPEs fixed as well
  • Faction homes are now un-set if the territory they are set in is lost (unclaimed, or claimed by another faction) and the "homesMustBeInClaimedTerritory" option is enabled, but only when someone tries to /f home or dies and would normally respawn there
  • /f disband, /f list, and /f who <tag> commands can now be used from the server console
  • /f list now shows "Factionless" instead of "Wilderness" for factionless players
  • When you have the "claimsMustBeConnected" option enabled, it now works on a world-by-world basis, so if you have claims in one world you can still make claims in other worlds

New settings in conf.json:
"homesRespawnFromNoPowerLossWorlds": true, - whether or not players should respawn to faction homes when they die in "worldsNoPowerLoss" worlds
"homesTeleportCommandEnabled": true, - can be used to disable the /f home command, while possibly leaving faction homes enabled for the "homesTeleportToOnDeath" functionality


Version 1.3.2

  • Added conf.json option "noPVPDamageToOthersForXSecondsAfterLogin" (defaults to 3 seconds) which keeps players from being able to do PvP damage for a few seconds after logging in (to counteract the exploitable 3-second PvP protection given to players when they log in)
  • Fix for "claimsMustBeConnected" bug which prevented factions from making their initial first claim
  • Further improved hookable functions for use by other plugins
  • Added softdepends to plugin.yml for appropriate chat plugins for better load order compatibility
  • Updated built-in GSON to 1.7.1 release

New setting in conf.json:
"noPVPDamageToOthersForXSecondsAfterLogin": 3, - prevents players from being able to do PvP damage for the specified number of seconds after logging in (set to 0 to disable)


Version 1.3.1

  • Added option "disablePVPForFactionlessPlayers" (default is false) to disable PvP damage to/from players who are not in a faction
  • Added options to require faction homes to be set only inside the faction's own territory ("homesMustBeInClaimedTerritory", default is true) and to optionally prevent teleporting to the faction home if the player is in enemy territory ("homesTeleportAllowedFromEnemyTerritory", default is true thus not prevented)
  • Added option "claimsMustBeConnected" (default is false) which requires all faction claims beyond the first to be connected to each other
  • Added option "considerFactionsReallyOfflineAfterXMinutes" (default 0.0, thus immediately) which makes all "Offline" options still consider the faction as having members online until X minutes after the last one logs off
  • support for "{FACTION_TITLE}" in chat messages to show player's title
  • Made commands which reference player names (like /f admin <name>) allow for partial name matches; ex. "rob" will now match a user named "robert"
  • Added a couple more hooks for use by chat plugins
  • Fix for "No Faction" player count always returning 0
  • Added missing /f disband command to help pages, updated help text to indicate /f unclaim works for safe/war zones
  • Fix for DenyUsage checks in safe zones and war zones not being handled properly

New settings in conf.json:
"disablePVPForFactionlessPlayers": false, - whether PvP damage will be disabled to/from players who are not in a faction
"homesMustBeInClaimedTerritory": true, - whether to require faction homes to be set only inside the faction's own territory
"homesTeleportAllowedFromEnemyTerritory": true, - whether to allow teleporting to the faction home if the player is in enemy territory
"claimsMustBeConnected": false, - whether to require all faction claims beyond the first to be connected to each other
"considerFactionsReallyOfflineAfterXMinutes": 0.0, - makes all "Offline" options still consider the faction as having members online until X minutes after the last one logs off


Version 1.3.0

  • New auto-claim commands for making faction claims (/f autoclaim), safe zone claims (/f autosafe), and war zone claims (/f autowar), which claim land as you walk around... note these use the same permissions as their respective normal claiming commands
  • New conf.json settings "territoryProtectedMaterialsWhenOffline" and "territoryDenyUseageMaterialsWhenOffline" (same defaults as original, now "online" versions), which are used when no players of a faction are currently online (by thomastanck)
  • New conf.json settings "territoryDenyBuildWhenOffline", "territoryBlockTNTWhenOffline", "territoryBlockCreepersWhenOffline", and "territoryBlockFireballsWhenOffline" to go with other two new offline prevention options above
  • New conf.json setting "warZoneFriendlyFire", defaults to disabled; if enabled, allies and fellow faction members can hurt each other in war zones
  • PvP damage is now prevented if either player is in a safe zone; previously it only checked the player being attacked (not the attacker)
  • f reload [file], f save, and f lock commands can now be run from console
  • /f home enemy distance check switched to simple box detection area instead of diamond shape
  • Workaround: flint&steel usage is no longer prevented by build prevention options... Bukkit sees it as fire block placement, so a special exception was needed
  • Fix for options which disabled explosions in wilderness not working
  • Fix for /f disband causing NPE if you provided a bad (nonexistent) faction tag
  • When player has no faction, padding (space) is no longer erroneously added where the faction tag would be
  • Added functions to main class of Factions for other plugins to potentially hook into, targeted at chat plugins at the moment: isPlayerFactionChatting to see if player has faction chat enabled, and getPlayerFactionTag and getPlayerFactionTagRelation to get the player's uncolored or relation-colored faction tag

Note that with the new "Offline" settings in conf.json, since they work when all members of the faction are offline, the existing non-"Offline" settings of the same basic names now only apply when one or more members of the faction are online. So, if you've changed any of those settings, you'll probably want to update these new "Offline" settings to match.

New commands:
/f autoclaim [on|off] - enable/disable auto-claim, which claims land as you walk around
/f autosafe [on|off] - enable/disable auto-claim for the safe zone
/f autowar [on|off] - enable/disable auto-claim for the war zone

New settings in conf.json:
"warZoneFriendlyFire": false, - whether PvP between fellow faction members and between allies is enabled in War Zones
"territoryDenyBuildWhenOffline": true, - whether block placement/destruction in faction territory is denied to people not in that faction, when no members of the owning faction are online
"territoryBlockCreepersWhenOffline": false, - similar to above, but for creeper explosions
"territoryBlockFireballsWhenOffline": false, - similar to above, but for ghast fireball explosions
"territoryBlockTNTWhenOffline": false, - similar to above, but for TNT explosions
"territoryProtectedMaterialsWhenOffline": [
"CHEST",
"FURNACE",
"WOODEN_DOOR",
"DISPENSER",
"TRAP_DOOR"
],
- list of blocks which can't be interacted with in faction territory for people not in that faction, when no members of the owning faction are online
"territoryDenyUseageMaterialsWhenOffline": [
"FLINT_AND_STEEL",
"LAVA_BUCKET",
"BUCKET",
"WATER_BUCKET"
],
- similar to above, but list of inventory items which can't be used


Version 1.2.2 (bugfix release)

  • Preload of EssentialsChat had problems if Essentials core wasn't loaded yet; added Essentials to preload list


Version 1.2.1

  • Added an option "preloadChatPlugins" (enabled by default) which forcibly preloads some known chat plugins first (EssentialsChat, iChat, and HeroChat so far) so that Factions gets final access to chat events, since load order is otherwise unpredictable.
  • New chat tag placement options to have it replace a specified string ("chatTagReplaceString", default "{FACTION}"), put the tag before or after a specified string ("chatTagInsertAfterString" and "chatTagInsertBeforeString", default to "" which is disabled, example usage would be "<" or ">"), and whether to pad the front or back of the tag with an extra " " using "chatTagPadBefore" (default false) and "chatTagPadAfter" (default true).
  • Added option "powerRegenOffline" (disabled by default) for those who for whatever reason want player power to regenerate even when they are offline
  • Added "territoryDenyBuild" and "territoryDenyUseage" options (both enabled by default), so block protection and interaction prevention can be disabled on faction claimed land if so desired
  • Added in options to protect all wilderness (unclaimed) areas, in case that's your sort of thing: "wildernessDenyBuild", "wildernessDenyUseage", "wildernessBlockCreepers", "wildernessBlockFireballs", and "wildernessBlockTNT", all of which default to disabled, and "wildernessPowerLoss" which defaults to enabled... note that people with factions.adminBypass permission are allowed to do whatever they want in wilderness areas regardless of these settings
  • You can now specify a single file with /f reload (the entire filename or just the first part), so you don't have to reload all 4 of them. Thusly: /f reload conf, /f reload board, /f reload factions, /f reload players
  • Increased default power loss from death ("powerPerDeath") from 2 to 4, lowered default "territoryShieldFactor" from 0.5 to 0.3 so protection isn't quite so overpowered
  • Added TRAP_DOOR to the default "territoryProtectedMaterials" list (existing servers using Factions should manually add it in conf.json)
  • People hit in a safe zone no longer get spammed with "PlayerX tried to hurt you" messages; only the idiot trying to hit someone else in a safe zone gets spammed


Version 1.2.0

  • /f map now has a nifty new faction name key (by LexManos)
  • New option to disallow players from leaving, joining, or being kicked from a faction while they have a negative power level (by sp1ky)
  • There are now War Zones; these work similar to Safe Zones, except PvP isn't disabled and monsters are not blocked (Brettflan)
  • Players now only regenerate power while actually online (Brettflan)
  • New command available to prevent power loss in specific worlds (Brettflan)
  • New command available to prevent faction land claims in specific worlds (doesn't affect safezone and warzone claims) (Brettflan)
  • New command to unclaim all safezone areas (Brettflan)
  • Players are now prevented from using /f home if an enemy is nearby, and the players isn't in a safezone or their own faction territory (Brettflan)
  • New option to make membership default to closed for newly created factions (Brettflan)
  • When an admin has bypass mode enabled (/f bypass), they can now unclaim any faction land they're standing on (Brettflan)

New commands:
/f safeunclaimall - unclaim all safezone areas
/f war - claim land for the warzone
/f warunclaimall - unclaim all warzone areas
/f worldnoclaim - enable/disable faction land claiming in the world you're currently in (toggle)
/f worldnopowerloss - enable/disable power loss on death in the world you're currently in (toggle)

New permission nodes:
factions.manageWarZone - claim and build in war zone (admins)
factions.worldOptions - access /f worldnoclaim and /f worldnopowerloss commands (admins)

New options in conf.json:
"newFactionsDefaultOpen": true, - whether newly created factions default to open membership (where anyone can join without invitation)
"showMapFactionKey": true, - whether to show the faction key (with names) on the map
"CanLeaveWithNegativePower": true, - whether players can leave, join, or be kicked from a faction while they have a negative power level
"homesTeleportAllowedEnemyDistance": 32.0, - if enemies are within this distance and you're not in a safezone or your own faction's territory, /f home will not work (set to 0 to disable)
"warZoneBlockCreepers": false, - block creeper explosions in warzones?
"warZoneBlockFireballs": false, - block ghast fireball explosions in warzones?
"warZoneBlockTNT": true, - block TNT explosions in warzones?
"warZoneDenyBuild": true, - keep regular users from building/destroying blocks in warzones?
"warZoneDenyUseage": true, - keep regular users from using items in the territoryDenyUseageMaterials list (normally all buckets and flint&steel) in warzones?
"warZonePowerLoss": true, - should players who die in a warzone lose power? note that this ALWAYS overrides worlds which have worldnopowerloss set


Version 1.1.8

  • added command to disband a faction (/f disband <tag>) (permission node "factions.disband") (derenix)
  • added lock switch to all write actions, to prevent or allow data files being updated by plugin (/f lock on|off) (derenix)
  • added saveall command to save everything to disk (/f save, /f saveall) (derenix)
  • added reload command to reload everything from disk with server still running (/f reload) (derenix)
  • fix for "Could not pass event ENTITY_DAMAGE to Factions" exception caused by NPC mods which tie into Player entities (Brettflan)


Version 1.1.7

  • Package structure changed to move it out of com.bukkit.* namespace (Olof Larsson)
  • Removed Help plugin support as that plugin is not updated. (Olof Larsson)
  • Changed name for No Faction to Wilderness (Olof Larsson)
  • New unclaimall command (/f unclaimall) to unclaim all of the faction's land (Olof Larsson)
  • Safezone claiming command now has optional radius input (/f safe [radius]) to claim a larger safezone area at a time (Olof Larsson)
  • Added check to make sure chatTagInsertIndex is valid before using it, to prevent triggering an exception (Brettflan)
  • Players who aren't currently in a faction should no longer get "Person left your faction" messages when others join a faction (Brettflan)
  • Attempt at simple workaround for error related to NPCs from Citizens plugin (Brettflan)
  • Placement and removal of paintings is now prevented if you're in another faction's territory (Brettflan)
  • /f map has been updated to fit inside the new Bukkit line-width limits (39 tiles wide instead of 49) (Brettflan)


Version 1.1.5

(By Brettflan)

  • Fix for left-clicking on wooden doors not being detected
  • Fix for null faction home location when loading factions data
  • Added "factions.adminBypass" permission which will allow players with that permission to bypass the building/destruction and usage limitations inside faction territory
  • New boolean config options territoryBlockTNT (default false), safeZoneDenyBuild (default true), safeZoneDenyUseage (default true), safeZoneBlockTNT (default true).


Version 1.1.3

(By Brettflan)

  • updated to work with RB 600/602
  • handled a couple of potential NPEs, one caused when saving faction info, and one where it could try sending messages to a player who is offline or otherwise doesn't currently exist for whatever reason
  • fix/workaround for bucket usage not always being detected if 2-3 blocks away
  • faction-tagged chat messages sent to the console and log now have crufty color tags (like "§f" and such) stripped out


Version 1.1.2

  • bugfix - admins could not place signs etc in safezones (Olof Larsson)
  • Added some missing instaDestroyItems (painting and flowers) (Olof Larsson)
  • Added ability to load old pre-1.1 data files (board, factions, followers) if they exist and new files don't (Brettflan)


Version 1.1

(by Olof Larsson)


To upgrade: Remove you Factions folder
I'm sorry about that. There just are so many changes to the save files.

  • Permissions plugin support
  • Help plugin support
  • Faction homes
  • Better save file format
  • Inactive players are kicked from their faction
  • SafeZones - PVP and monster safe areas


Version 1.0 beta7

(by Brettflan)

  • Fix for enemy attacks potentially healing people in their own territory due to armor calculations, instead of correctly just giving reduced damage.
  • Placement/use of these items inside another faction's territory is now prevented: redstone wire, sign, flint&steel, bucket (empty, water, and lava). Code is also in place to prevent placement of beds and repeaters, but CraftBukkit doesn't properly detect those yet.
  • Fix for destruction of certain blocks not previously being detected and prevented: torch, redstone torch, repeater, redstone wire, sapling, crops, sugar cane.
  • Minor spelling and grammar fixes
  • Added options "territoryBlockCreepers" and "territoryBlockFireballs" to configuration file (conf.json). These both default to disabled. If enabled, they will respectively prevent creepers or ghast fireballs from destroying blocks if they explode inside faction owned territory. These can prevent griefing by way of luring creepers into another faction's territory.

Note that both explosion types will still hurt nearby players and mobs, they just won't destroy blocks. Also note that "territoryBlockFireballs" only works in CB build 557 and higher, where fireball detection was added.


Version 1.0 beta6


To upgrade:
Factions now use world name instead of world id for the board files.
Nothing will be claimed when you start the server. Change the board file name(s) from something like 234978619762348768.json to something like world.json.

  • Updated to work with Craftbukkit 493 (by Brettflan)
  • Paginated faction listing (by Brettflan)
  • Single jar install (by Brettflan)
  • Board files now use world name instead of world id (by Olof Larsson)


Version 1.0 beta5

  • Updated to work with Craftbukkit 450, which means Minecraft 1.3 compatibility :)
  • For now messages like these are removed: "Playername tried to use Wooden door in your territory". They could be used for chat spamming.


Version 1.0 beta4

To upgrade: Start and stop the server once with the new jar. Paste the content from board.json into the newly created file in /plugins/Faction/boards/. After this you can delete board.json.

  • MultiWorld support.
  • Faction chat is now something you turn on and of.
  • Arrows are now included in the friendly fire filter.
  • Some stability fixes.


Version 1.0 beta3

To upgrade: Delete conf.json and rename the "name" field to "tag" in every faction.json file.

  • Greatly improved chat and messaging system! :D

Cooperates well with other plugins. Tested with Essentials and iChat so far.

  • New faction chat command
  • More config options
  • Bugfix: You can now claim land from enemies :p
  • ... and a lot of other fixes


Version 1.0 beta2

  • There is now a config file where you may alter chat colors, dynamics of war etc.

I will add documentation on the config soon...

  • Made the color formating a bit more understandable.
  • There is now a broadcast when a new faction is created.


Version 1.0 beta1

  • The first release