Commit Graph
100 Commits
Author SHA1 Message Date
Brettflan 8f2e587eb9 Optional prevention of a couple of exploits.
1. 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.
2. 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.

Also removed our TNT exploit prevention code, since they did get it fully fixed in 1.1-R4 and it doesn't look to be coming back from the dead again like it did when they released 1.1-R2.
2012-03-19 06:55:00 -05:00
Brettflan 2df8ca0df9 Add fireball/"fire charge" to materialsEditTools list, to prevent them from being used to set things on fire like flint&steel 2012-03-19 04:18:59 -05:00
Brettflan f3239cd9ed Should finally completely fix problem where player location world changes in the middle of the /f home smoke effect, triggering an error from trying to calculate distance between worlds
also updated Spout API lib
2012-03-19 01:28:06 -05:00
Brettflan 345e18bf56 Release 1.7.4 alpha (sorry, forgot I hadn't pushed this version change) 2012-03-17 00:39:03 -05:00
Brettflan d8a39140fc 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. 2012-03-14 13:06:38 -05:00
Brettflan 7b9674dc4b Ability to pay for commands (through economy) is now checked before firing events which can be canceled, and actual payment made after making sure the event isn't canceled.
Added Econ.hasAtLeast(EconomyParticipator ep, double delta, String toDoThis) method to check if an account has at least a specified amount of money in it. Also added related FCommand.canAffordCommand(double cost, String toDoThis).
2012-03-13 09:48:34 -05:00
Brettflan fd8ca30af6 (donington) Fixes for compiler warnings & minor .gitignore enhancement, completed the last of the creatureType/entityType renaming (a few imports and functions) 2012-03-13 08:43:45 -05:00
Brettflan 18b10ce8f9 Cleaning sweep, mainly for various stray "4 spaces" indentions to tabs 2012-03-13 08:27:03 -05:00
Brettflan 28269b7455 a bit of cleanup 2012-03-13 07:47:54 -05:00
Brett Flannigan a53a556594 Merge pull request #103 from donington/CustomFactionEvents
Custom faction events
2012-03-13 04:31:52 -07:00
Brettflan 147982e956 updated bukkit lib 2012-03-13 05:56:11 -05:00
Brettflan 2856411594 Remake of radius claim method. It now starts in the current chunk and spirals outward, in a repeating task designed to keep from overloading the server. The old method tried to put together a list of chunks, and then tried to claim them immediately starting from one corner of the overall area.
New setting "radiusClaimFailureLimit" (default 9). If claims are unsuccessful that many times in a row during a radius claim, the task will cancel out. There is no longer a limit to the specified radius since the process should no longer cause major server stress, and due to the process canceling out after several failures as just described.

Added some new methods to FLocation to quickly convert between block/chunk/region positions, and rewrote the FLocation hashCode() method to make it faster.
2012-03-13 05:54:48 -05:00
Brettflan fbdc0503ba Fix for "econClaimUnconnectedFee" not working correctly 2012-03-11 22:44:38 -05:00
Brettflan b88430a628 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

Also switched several HashSets in Conf.java to LinkedHashSets. LinkedHashSets do have slower insertion and deletion than HashSets, but importantly they have faster lookup speed (at least until you get up to several hundred entries).
2012-03-11 13:36:03 -05:00
Brettflan c0308940c8 Connected standard command handler getCommand("f"), for it to work with other plugins which directly execute commands using that interface. 2012-03-11 11:41:56 -05:00
Brettflan 2c6191b73f Removed dependence on external GSON lib in lib/gson.jar, since GSON 2.1 is now embedded in CraftBukkit itself, used by their auto-updater added shortly before 1.1-R5 was released:
https://github.com/Bukkit/CraftBukkit/commit/0ed1d1fdbb1e0bc09a70bc7bfdf40c1de8411665
2012-03-11 07:39:31 -05:00
Brettflan a888a9c5b5 Updated /f config to support modifying "factionFlagDefaults" and "factionPermDefaults". Both of these settings require an additional argument more than other settings.
Examples:
/f config factionFlagDefaults firespread false  - set default "FIRESPREAD" faction flag to false
/f config factionFlagDefaults monsters true  - set default "MONSTERS" faction flag to true
/f config factionPermDefaults build ally  - for default "BUILD" faction permission, add/remove permission for allies
/f config factionPermDefaults withdraw member  - for default "WITHDRAW" faction permission, add/remove permission for regular faction members
2012-03-11 07:33:47 -05:00
Brettflan fd44983ae2 (donington) Consolidated chat event listeners into a single chat listener class.
(Brettflan) Fixed slashless commands not being logged if player was in faction chat or alliance chat mode. Also cleaned up chat code a bit, nothing major.
2012-03-09 21:25:01 -06:00
Brettflan a5bb25eb44 New setting "logPlayerCommands" (default true) which can be disabled to prevent player commands from being logged. 2012-03-09 19:26:40 -06:00
Brettflan 1ca93948a3 Replaced deprecated CreatureType references with EntityType 2012-03-09 14:46:45 -06:00
Brettflan 0a048d6553 If plugin failed to load correctly for various reasons, it could end up wiping the board or faction list. This should now be prevented.
An 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.
2012-03-09 14:44:17 -06:00
Brettflan 54b97651b6 Release 1.7.3b ALPHA for compatibility with CB 1.1-R5 and above 2012-03-01 09:41:35 -06:00
Brettflan 2954fa621f Fix for fatal error at startup in CraftBukkit 1.1-R5 and above
Updated Bukkit lib
2012-03-01 09:40:28 -06:00
Brettflan 3af6f2737a Final attempt to fix rare non-fatal NPE from Player ending up returning null while updating Spout appearance features 2012-03-01 09:38:47 -06:00
Brettflan 460d280387 Release 1.7.3 alpha
Also I'm sneaking in another minor fix for the coloring of the faction limit error message
2012-02-26 21:34:59 -06:00
Brettflan 3c4e766ba2 fix for faction limit error message 2012-02-26 20:49:49 -06:00
Brettflan de3c7436fe "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 about how it calculates how long a player has been offline.
2012-02-26 16:55:58 -06:00
Brettflan d71bd15a79 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.

Also, added new log method which accepts arguments (like the msg method).
2012-02-26 12:29:44 -06:00
Brettflan 02200e5793 UNTESTED: fix for chatspy not working with CAPI chat integration
If it's still not working correctly, let me know
2012-02-25 04:44:28 -06:00
Brettflan 817a43b5e0 New setting factionMemberLimit (default 0, no limit), which will prevent players from joining any faction that has reached this membership limit. 2012-02-24 06:30:28 -06:00
Brettflan 2a667a294d Damage protection is now extended to being set on fire (by flaming arrows, for instance) and receiving harmful splash potion effects. Beneficial splash potion effects are unaffected, and prevention of harmful splash potion effects is handled on a player-by-player basis, so you can still be harmed if you're not careful where you throw them. 2012-02-23 00:09:09 -06:00
Brettflan a0fa3863d4 Hopeful fix for rare errors where location world somehow changes in the middle of trying to show a smoke effect 2012-02-22 23:52:39 -06:00
Brettflan 8607f1c22d Merge branch 'master' of github.com:MassiveCraft/Factions 2012-02-22 13:36:35 -06:00
Brettflan 50572b388c Moved Essentials teleport integration handling to EssentialsFeatures.java 2012-02-22 13:35:26 -06:00
Brettflan 546ecd6a45 Clean up integration methods with other plugins a bit 2012-02-22 11:43:53 -06:00
Brettflan c8d6d06f90 Updated SpoutAPI, handled deprecated Spout AppearanceManager code, updated Spout event listener to new Bukkit event system 2012-02-20 17:03:37 -06:00
Brettflan e918bc0d91 Compatibility with upcoming CB 1.1-R5 and above: updated Enderman block monitors to use EntityChangeBlockEvent, removed register event convenience methods from MPlugin (no longer working or needed)
Updated Bukkit lib to newest dev version
2012-02-20 16:59:33 -06:00
Brettflan c208658cab update default GSON jar version to 2.1 2012-02-19 08:32:50 -06:00
Brettflan 03a45784c7 Fix for potential NPE in CraftBukkit caused by LWC location world returning null 2012-02-19 08:23:13 -06:00
Brettflan 4ba73af883 fix for command prevention routine (used by territoryEnemyDenyCommands and such) not properly covering commands with uppercase letters in them 2012-02-19 08:20:22 -06:00
Brettflan 8e96a75b56 Update our MCore event handlers to use the newer Bukkit event system 2012-02-07 17:02:54 -06:00
Brettflan fbbf0a12af Add back support for older EssentialsChat versions
also reword leader command's "you must be leader" error message
2012-02-07 15:31:35 -06:00
Brettflan 296c783627 Try again 2012-02-07 15:23:19 -06:00
Brettflan 589e4417c7 Major bugfix: leaders of factions should no longer be able to promote members of other factions to leader of that faction (unless of course they have factions.leader.any permission) 2012-02-07 15:15:25 -06:00
Brettflan 1a109fa589 "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 2012-02-07 15:04:19 -06:00
Brettflan 0a6991a997 Fix for error when disbanding faction from server console with economy enabled 2012-02-07 14:56:57 -06:00
Brettflan c8558f7bbb Release 1.7.2c: 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. 2012-02-04 16:22:55 -06:00
Brettflan 7965fcdc00 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... 2012-02-03 00:16:03 -06:00
Brettflan c845ea2d7d Release 1.7.2 2012-02-02 19:43:20 -06:00
Brettflan 4f4b988b42 Preemptive EssentialsChat 3.x support, since they'll be removing the old local chat integration method; new implementation will need improvement to support relation coloring, but for now it otherwise works.
When chat event hits an UnknownFormatConversionException which requires better chat configuration, the quick dirty fix of setting chatTagInsertIndex to 0 is now automatically applied.
2012-02-02 19:31:33 -06:00
Brettflan dcd167d4e0 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.
2012-02-02 15:20:43 -06:00
Brettflan 9eef2d13d6 Adding TNT exploit workaround fix back; they finally fixed the exploit in CraftBukkit 1.1-RC1, but broke it again in 1.1-RC3. :( 2012-02-02 15:13:56 -06:00
Brettflan b33b24943a make sure max land setting doesn't apply to factions with infinite power (such as SafeZone and WarZone) 2012-02-02 13:09:43 -06:00
Brett Flannigan 9bc6d01a4b Merge pull request #90 from first4ever/master
Max Faction Land

Added a "claimedLandsMax" option in config

(answering to issue "Max Faction Land" :
https://github.com/MassiveCraft/Factions/issues/88 )
2012-02-02 11:03:05 -08:00
Brettflan 1cd392f256 Workaround 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 specified in their chat format setting which Essentials doesn't recognize.
For those using Essentials 2.8.x, this should hopefully be handled automatically.
2012-02-02 07:29:00 -06:00
Brettflan 900f05c62f zero-value economy gains/losses are now skipped over ("X gained 0.0 for claiming this land" and similar is a bit odd)
CLeaned up warning given for UnknownFormatConversionException chat exception; the debug info is no longer useful for us, and a distraction for users.
2012-01-31 11:07:47 -06:00
Brettflan ed83711493 Protection against radius claim attempts which might overload the server 2012-01-31 10:58:22 -06:00
Brettflan d639a4a93e 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.
2012-01-31 10:52:34 -06:00
Brettflan 8a279fa699 Release 1.7.1 2012-01-29 23:42:19 -06:00
Brettflan 848d0463db Delayed Vault economy integration not necessary after all; reverting added delay 2012-01-29 23:11:39 -06:00
Brettflan 70af217de7 Merge branch 'master' of github.com:MassiveCraft/Factions 2012-01-28 12:11:52 -06:00
Brettflan 4348d2c35e Fix for storing player data in factions.json unnecessarily, and FPlayer add/remove methods are now marked as protected 2012-01-28 12:11:12 -06:00
Brettflan f0eae47164 Merge branch 'master' of github.com:MassiveCraft/Factions 2012-01-28 12:02:39 -06:00
Brettflan 9a6c15edd1 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.
New permission factions.powerboost which is required to use the above command. This permission is added to the factions.kit.mod permission kit.

example usage:
/f powerboost p Player1 1.5  (give player "Player1" a bonus of 1.5 power)
/f powerboost faction SomeFaction -6  (give faction "SomeFaction" a penalty of -6 power)
2012-01-28 11:56:51 -06:00
Brettflan 30b3facc19 Players no longer regain power while dead; no more waiting to respawn in order to regain power
Also added AuthDB to softdepend list, so it has first shot at Factions commands in case it needs to cancel one
2012-01-28 05:59:07 -06:00
Brettflan 5ac0baf84a Fix for Vault economy integration bugging out if the target economy plugin loaded after Factions (really seems like a Vault issue, but we'll work around it)
Fix for users who have Vault but don't use economy getting an NPE
2012-01-28 05:24:39 -06:00
Brettflan fb92fb7c68 Update to new Bukkit Event system
Also remove leftover TNT exploit prevention code which I missed earlier
2012-01-28 04:37:56 -06:00
Brettflan 1dc5a0f226 removed TNT exploit handling code, since they did finally fix the bug in the CraftBukkit 1.1-RC1 release 2012-01-28 04:07:21 -06:00
Brettflan 319be71102 Merge branch 'master' of github.com:MassiveCraft/Factions 2012-01-28 03:16:57 -06:00
Brettflan 7144da54c7 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

Fix for a potential NPE in FPlayer autoLeaveOnInactivityRoutine.

Added CaptureThePoints and CombatTag to our softdepend list so they can potentially cancel Factions commands.
2012-01-28 03:16:25 -06:00
Brettflan ace3853694 Update Bukkit lib to 1.1-RC1 2012-01-26 22:20:42 -06:00
Brett Flannigan 370fd274d7 Merge pull request #84 from patrickfreed/master
Fixed NPE in LWCFeatures
2012-01-26 17:47:24 -08:00
Brettflan 1196d74140 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
2012-01-20 11:19:34 -06:00
Brettflan 0209d69814 removed extra /f claim alias ("claim" was in there twice) 2012-01-19 00:41:10 -06:00
Brettflan 663a7e9454 New conf.json setting "permanentFactionMemberDenyCommands" (list, default empty), which can be used to prevent members of permanent factions from using specific commands.
Also, a minor fix for the help page regarding faction banks being shown if "bankEnabled" setting was enabled but "econEnabled" setting was false (economy as a whole disabled).
2012-01-18 23:31:33 -06:00
Brettflan b4450b3bdb fix for factions-specific commands not being prevented properly if they were in "territoryNeutralDenyCommands" or "territoryEnemyDenyCommands"
also got rid of a command preprocess listener which is now unnecessary
2012-01-18 22:42:58 -06:00
Brettflan 960aca6240 fix for /f config not accepting values with spaces in them (i.e. "/f config territoryEnemyDenyCommands f home") 2012-01-18 22:24:12 -06:00
Brettflan 19b9bffc43 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 leader, only regular members and/or officers. 2012-01-18 21:21:26 -06:00
Brettflan a330931cd5 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.
2012-01-18 21:10:40 -06:00
Brettflan bc40f3b751 Server admins can now promote or demote any member of any faction to/from faction leader or officer using the existing /f leader and /f officer commands, with two new permissions added to allow that. A third permission is also added to allow server admins or moderators to join any faction without the need of /f bypass mode.
Also, a couple more minor bugfixes are included for /f home payment giving the wrong message, player/faction descriptions being wrong for console messages, and potential NPE in new faction leader promotion routine if faction was permanent with no current leader.

New permissions:
factions.leader.any - allows use of /f leader on any player in any faction
factions officer.any - allows use of /f officer on any player in any faction
factions.join.any - allows player to join any faction, bypassing invitation process for closed factions (the same as players with /f bypass enabled can do)
2012-01-18 06:01:50 -06:00
Brettflan 46d7e9f4c5 self-inflicted damage (such as ender pearl usage) is no longer prevented with a message like "you cannot hurt you" 2012-01-17 02:56:38 -06:00
Brettflan 8142e1c28f improved TNT exploit prevention
Now, canceled exploit attempts don't injure players or mobs as if the TNT had successfully exploded, and if it's the case of an existing TNT block which a redstone torch is attempted to be placed next to, it no longer drops a free TNT item. In that case, the existing TNT block is still destroyed itself, but... oh well, it's close enough to perfect.
2012-01-17 01:57:16 -06:00
Brettflan 2a9b475012 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.
Vault: http://dev.bukkit.org/server-mods/vault/

Note: for proper faction bank support, if you're using iCo5 or EssentialsEco, I recommend waiting for Vault 1.2.5 to be released which addresses faction account creation issues related to those.
2012-01-16 19:38:14 -06:00
Brettflan de14985d1e (courtesy of patrickfreed) 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.
2012-01-15 12:41:33 -06:00
Brettflan c19f3405bf 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.
For reference: https://bukkit.atlassian.net/browse/BUKKIT-89
2012-01-15 11:41:14 -06:00
Brettflan e8baaa2460 Minor tweaks to chatspy, added it to /f help 2012-01-15 01:41:03 -06:00
Brett Flannigan 9ff68301e5 Merge pull request #60 from eXeC64/spy
Added chat spy feature for admins
2012-01-14 22:58:39 -08:00
Brettflan 8027e87078 Errors loading conf.json are handled better now, allowing Factions to continue on to loading board.json instead of losing it
Also, the bad conf.json file is backed up to conf.json_bad so it can potentially be recovered
2012-01-13 05:48:03 -06:00
Brettflan 47ba56de9e Optimization: Factions (as objects) now maintain a list of FPlayers in the faction for faster lookup
INTEGRATION NOTE: getFPlayers() and getFPlayersWhereOnline(boolean online) now return Set<FPlayer> instead of ArrayList<FPlayer>, so other plugins which hook into those methods will probably need to be updated.
2012-01-13 03:46:31 -06:00
Brettflan 4b4d26ed29 updated the map orientation to match the new compass north orientation 2012-01-13 03:18:34 -06:00
Brettflan 23f55ee753 /f list sorting method performance boost 2012-01-11 19:11:10 -06:00
Brettflan 78a62bc25c Updated /f map compass to use new official north 2012-01-11 18:19:31 -06:00
Brettflan 43a086d420 MCore lib also, needed by some capi lib references used in Factions 2012-01-11 17:08:16 -06:00
Brettflan 65f16b74bd 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 2012-01-09 21:37:16 -06:00
Brettflan 1c918ad52e Merge branch 'master' of github.com:MassiveCraft/Factions 2012-01-07 15:57:01 -06:00
Brettflan 324455cdde fix for potential infinite loop when cleaning data
As reported:
at com.massivecraft.factions.Factions.get(Factions.java:99)
at com.massivecraft.factions.FPlayer.getFaction(FPlayer.java:43)
at com.massivecraft.factions.integration.SpoutFeatures.updateSingle(SpoutFeatures.java:218)
at com.massivecraft.factions.integration.SpoutFeatures.updateAppearances(SpoutFeatures.java:154)
at com.massivecraft.factions.FPlayer.resetFactionData(FPlayer.java:188)
at com.massivecraft.factions.FPlayer.resetFactionData(FPlayer.java:194)
at com.massivecraft.factions.FPlayers.clean(FPlayers.java:45)
<repeat>
2012-01-07 15:56:17 -06:00
Brettflan c02c5702b4 Added soil to the default "materialsEditOnInteract" setting, so people who aren't allowed to build in a territory won't be able to trample crops in it (soil trampling is handled as an Interact event, for whatever reason)
For servers with existing conf.json files, you can use this command to update them: /f config materialsEditOnInteract SOIL
2011-12-18 08:28:28 -06:00
Brettflan 6ea54cb7ac When a faction leader is kicked from his faction for whatever reason (not logging in for too long, a server admin running the /f kick command on him, the player being banned from server), another player will now be promoted to faction leader in his place. If the faction has at least one officer, one of them will be chosen. Otherwise, a normal member will be promoted. If the faction leader was the last/only member, the faction will of course be disbanded.
Also, players being kicked due to inactivity is now logged.
2011-12-18 07:50:41 -06:00
Brettflan bbc7c48408 Added 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 2011-12-18 03:05:22 -06:00
Brettflan 07e2721ccd Merge branch 'master' of github.com:MassiveCraft/Factions 2011-12-18 02:38:09 -06:00