Commit Graph
100 Commits
Author SHA1 Message Date
Brettflan 4e6c12d995 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. 2013-01-29 19:21:33 -06:00
Brettflan 15024bf880 Added missing new permissions, and minor cleanup; switched Rel enum values back to previous values, for the sake of other plugins which might check against the actual enum value (for better compatibility with both 1.6.x and 1.7.x+ versions)
IMPORTANT NOTE:
Existing plugin users who are upgrading to this version will likely need to grant default permissions for recruits, like so:
f config factionPermDefaults door recruit
f config factionPermDefaults button recruit
f config factionPermDefaults lever recruit
f config factionPermDefaults build recruit
2013-01-26 20:38:04 -06:00
Brett Flannigan 5da296e8ca Merge pull request #207 from jastice/recruit-pr
Add recruit role for factions
2013-01-26 18:25:03 -08:00
Brettflan 8fdd07b08f minor cleanup; made econLandReward default to 0, disabled 2013-01-26 19:59:00 -06:00
Brett Flannigan 204c78886f Merge pull request #193 from AEtherSurfer/land_reward
Land reward
2013-01-26 17:54:09 -08:00
Brett Flannigan 755a957b12 Merge pull request #200 from blha303/master
Closed a possible resource leak (in currently unused code), updated README.md to point to DBO instead of Github's deprecated downloads section
2013-01-04 08:11:29 -08:00
Brett Flannigan 04d808e54d Merge pull request #201 from jastice/econfix
Handle EconomyResponse objects from Vault on all transactions.
2013-01-04 07:48:10 -08:00
Brettflan 21409a05bb tiny performance optimization to last commit 2013-01-04 09:13:27 -06:00
Brettflan fb2a5a9a44 Update to our obsidian generator exploit prevention code (via config option "handleExploitObsidianGenerators") to address newer method involving tripwire strings instead of redstone 2013-01-04 09:06:56 -06:00
Brettflan 31faf605dc Release 1.8.0
and sneaking in a typo fix
2012-12-19 06:43:25 -06:00
Brettflan 657305a5fe fix imports for new PowerLossEvent 2012-12-19 06:15:31 -06:00
Brett Flannigan 0948800678 Merge pull request #197 from alkarinv/master
Added a new Factions event for power loss
2012-12-19 03:41:41 -08:00
Brettflan 640c96c828 update craftbukkit lib to fix CB dev build breaking EntityChangeBlockEvent, and add "b" to version for recompile
Simply recompiling with new CB lib fixes the EntityChangeBlockEvent error, and new compile is thankfully backwards compatible with older CB versions
2012-12-05 21:12:51 -06:00
Brettflan 47f23b93da Release 1.7.9 Beta
Also fix for improper message being sent to person who changes a faction description if "broadcastDescriptionChanges" is disabled
2012-11-30 20:14:32 -06:00
Brettflan 857892738f 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) 2012-11-30 19:43:04 -06:00
Brettflan 9c7ed3bf38 Fix for pistons being able to push blocks into protected territory through water or lava 2012-11-11 13:05:58 -06:00
Brettflan 1c8d6919bd 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.
Also added witch and wither boss to monster list, missed that for last release.
2012-11-09 18:22:39 -06:00
Brettflan 95289e1411 fix for piston retraction not working if faction doesn't have build rights in its own territory; missed this when fixing the same thing for piston extension recently 2012-11-09 17:47:53 -06:00
Brettflan 5c45ea5ee2 Fix for command prevention routine treating Wilderness areas as neutral faction territory in 1.7 branch 2012-11-09 07:44:46 -06:00
Brettflan 3a68820016 Release 1.7.8 Beta 2012-11-08 01:01:20 -06:00
Brettflan 2f80787edd Fix for crop trampling and pressure plates not being protected due to bug introduced in recent performance overhaul 2012-11-06 15:01:37 -06:00
Brettflan b8aaeb1053 Fix for slashless commands triggering errors in CraftBukkit on rare occasions due to being run async 2012-11-06 14:23:17 -06:00
Brettflan 20b359c11a Wither boss second stage will no longer be able to destroy blocks in territory which has explosion protection (explosion faction flag turned off) 2012-11-06 11:58:14 -06:00
Brettflan 174320c278 updated known badPotionEffects to include wither potion 2012-11-06 11:04:08 -06:00
Brettflan 3055e68e86 fix for economy check that made sure player/faction could afford specific commands not working correctly; thanks to spaceemotion for pointing out the problem and fix 2012-11-06 11:01:16 -06:00
Brettflan a783dc33cf Protect hanging entities (paintings and item frames) from explosions; thanks to Tahkeh for the method 2012-11-06 10:06:37 -06:00
Brettflan e83ac76b2c Added anvil and beacon to list of list of protected container materials 2012-11-06 10:00:19 -06:00
Brettflan 3e0a68fd6e Performance overhaul sponsored by rockxz3, using his large server's data for reference to help with testing and tuning. Timing numbers below are based on this data set on my test server.
* PlayerMoveEvent performance boost (from 0.047ms to 0.015ms in testing, ~313% as fast): now more thrifty in determining whether player has actually moved between chunks before doing anything else; important since this event triggers extremely quickly
* PlayerInteractEvent performance boost (from 0.068ms to 0.034ms in testing, ~200% as fast): now ignores left-clicks for interaction checks, since in CraftBukkit 1.4 left-clicks no longer open doors or activate buttons/levers/etc.; not as important as above, but still triggers quite often as people are digging or interacting with blocks
* "/f list" command performance boost (from 234ms to 30ms in testing, ~780% as fast): code was getting information for all factions, narrowed it down to only getting info for displayed page range
* "/f show" command performance boost (from 132ms to 28ms in testing, ~470% as fast): tweaked the ally & enemy listing code used
2012-11-06 09:43:27 -06:00
Brettflan d31741fb34 Updated old painting events to new hanging events so that item frames are also protected.
Also updated CraftBukkit lib and (hopefully) further clarified error message for GSON libs not being found in CB 1.3.2+ location.
2012-10-31 16:16:21 -05:00
Brettflan 41cd9484d3 Update CraftBukkit lib to 1.4.2 dev build 2421 2012-10-29 19:21:25 -05:00
Brettflan ef56ce9a51 Backups are now created of bad factions.json and players.json files if they fail to load due to a JSON parse error; same as we already do for bad conf.json 2012-10-19 01:50:37 -05:00
Brettflan 7bbb4fbf44 Update to "handleExploitTNTWaterlog" method to not destroy Ender chests or portals; sadly there's still no method provided by Bukkit to get a block's blast resistance, so we have to go by a list of block type IDs which are supposed to be TNT-proof 2012-10-19 00:11:28 -05:00
Brettflan 5f33e51fae Fix for crash on plugin startup if Worldguard integration is enabled ("worldGuardChecking") but Worldguard plugin isn't loaded on server
Also updated SpoutPlugin lib
2012-10-09 17:37:01 -05:00
Brettflan 619e52a5d4 fix for pistons not working (via pistonProtectionThroughDenyBuild) if faction doesn't have build rights in its own territory 2012-09-30 18:01:42 -05:00
Brettflan 56cb2becde added some (apparently absolutely necessary) idiot-proofing for CB version support due to changed GSON lib package name; we were getting a flood of invalid error reports because of it 2012-09-05 03:42:59 -05:00
Brettflan de9ac6cc1f Release 1.7.7_beta 2012-08-26 18:49:14 -05:00
Brettflan f65f3a0e9e Fix for factionless players being unable to hurt each other, and fix for factionless players taking reduced damage in Wilderness (was being treated as their faction territory by damage reduction routine) 2012-08-26 18:48:49 -05:00
Brettflan 7aa4fa12f2 Modified readBytes() and writeBytes() methods in DiscUtil.java to use older file handling routines which don't require Java 7. The vastly improved file loading speed which came from Olof's recent update to this file has been retained. 2012-08-26 15:23:45 -05:00
Brettflan e3bfaec642 Merge branch 'master' of github.com:MassiveCraft/Factions 2012-08-26 01:02:54 -05:00
Brettflan 28206b1c25 The latest CraftBukkit builds have changed their compiled-in GSON lib's package name. Rather than us switching back to using a separate GSON lib again (with two effectively identical copies of GSON ending up loaded and wasting server resources), I'm simply switching Factions to point to CraftBukkit's refactored GSON package name instead.
In line with that, I've removed the Bukkit and GSON libs and added in CraftBukkit as a lib.
2012-08-26 01:02:31 -05:00
Brettflan b0823dc5a8 Release 1.7.6 beta 2012-08-09 22:11:00 -05:00
Brettflan 3be1ecf63c nitpicking myself 2012-08-07 22:33:23 -05:00
Brettflan 8e64c7c137 clean up code from last commit a bit 2012-08-07 22:28:21 -05:00
Brett Flannigan 98f20a4ec6 Merge pull request #138 from ammaraskar/master
Fixes an ender pearl clipping exploit with blocks that occupy less than 1 block in width or length
2012-08-07 20:09:59 -07:00
Brettflan a57132aa7d Update version to 1.7.6_pre, fix for invalid comparison 2012-08-07 21:58:41 -05:00
Brettflan af6c4952fa Add default permissions for all members of SafeZone/WarZone factions to use territory access commands; this way, players trusted enough to be added to either system faction will be able to grant access to their claims as desired 2012-08-07 21:58:04 -05:00
Brettflan 124a46c791 Update for remaining old PlayerChatEvents, update EssentialsChat libs and integration accordingly 2012-08-07 21:51:22 -05:00
Brettflan ddd17830c0 Switch PlayerChatEvent to AsyncPlayerChatEvent for bleeding-edge 1.3.1 Bukkit builds to prevent persistent nag from Bukkit, update Bukkit lib
UNTESTED, please confirm working... looks like chat event cancellation might be bugged in Bukkit at the moment but will hopefully be fixed soon if so
2012-08-05 19:58:50 -05:00
Brett Flannigan 17e0701ecb Merge pull request #146 from basicsensei/master
fix #145 for master branch (1.7) (thanks)
2012-07-16 14:06:27 -07:00
Brettflan d7a5970b85 Release 1.7.5 alpha: one last minor fix to EssentialsChat integration needed 2012-05-16 20:34:38 -05:00
Brettflan 0966d3579d Release 1.7.5 2012-05-16 18:06:16 -05:00
Brettflan af1024e5a4 Changed default Spout territory faction display to upper left, since Spoutcraft client now has minimap in upper right 2012-05-16 15:31:42 -05:00
Brettflan 4460438365 Brief access info is now displayed under two circumstances: if you have been granted explicit access to the territory you are in ("access granted"), or if you are a normal member of the faction which owns the territory and access is denied to you ("access restricted"). This info will be displayed through Spout under the faction tag if possible, otherwise it will be displayed through chat.
New conf.json setting:
"spoutTerritoryAccessShow": true,  - whether to show brief access info using Spout
2012-05-16 15:29:00 -05:00
Brettflan 01d9f62bdd Removed bit of code which was apparently intended to optimize movement event code but which was actually slowing the process down a bit overall 2012-05-16 12:57:44 -05:00
Brettflan a0909ddb5c Added back a FactionsBlockListener.playerCanBuildDestroyBlock() method which references Location instead of Block, mainly for backwards compatibility 2012-05-16 11:52:47 -05:00
Brettflan 58bec9d6dc New "access" system to replace old ownership system. Access can be granted to build, destroy, and fully interact within any chunk for specific players or factions. Access can also optionally be denied to normal members of the host faction.
Some further info display to go with this feature is yet to come, and further testing for possible bugs is also needed.

Related info:

New FPerm "ACCESS" which is granted to faction leaders and officers by default. This FPerm allows you to bypass access restrictions throughout your faction territory, and (along with the "factions.access" Bukkit permission below) allows you to change access settings for any chunk owned by your faction.

New permissions:
factions.access - Ability to grant territory access for your faction, if you have the proper "ACCESS" FPerm (defaults to leaders and officers only). Added to factions.kit.halfplayer permission kit.
factions.access.any - Ability to grant territory access for any faction on the server. Added to factions.kit.mod permission kit.
factions.access.view - Ability to view territory access info for your own faction. Added to factions.kit.halfplayer permission kit.

New command:
/f access [view|p|f|player|faction=view] [name=you] - view or change the access information for the chunk you are in. If "view" or nothing is specified, it will simply display the info. If "p" or "player" is specified, a player will be granted access, or removed from the list if they were already granted access. If "f" or "faction" is specified, the same will be done for the specified faction. The name defaults to yourself or your faction if not specified. If your own faction is specified, you will toggle restricted access for the chunk so that normal faction members can be denied access, unless they are in the access list.
Examples:
/f access - view access list, if in your own territory
/f access p SomePlayer - grant access to player "SomePlayer" for the current chunk, or remove them from the access list if already there
/f access f - toggle restricted access for the current chunk (since faction name isn't specified, uses your own faction), assuming you're in your own factions territory
2012-05-14 21:41:13 -05:00
Brettflan d2b0fee335 Delete a couple of files which are no longer used 2012-05-14 19:53:08 -05:00
Brettflan 1f51ee9699 Improved explosion handling speed 2012-05-08 15:14:16 -05:00
Brettflan c32736f3f1 fix for rare case where faction home location's world being removed or renamed (world with specified name not existing) could lead to NPE 2012-05-08 12:47:46 -05:00
Brettflan e3a7188b0d /f show|who command will no longer reveal players as online if they are hidden from the viewer by the Vanish API 2012-04-26 08:08:11 -05:00
Brettflan 1defa2984b Relation commands will now cancel out if the same relation is already set with the target faction. 2012-04-06 13:27:23 -05:00
Brettflan ffa4806af4 fix for /f power command used on self incorrectly also requiring factions.power.any permission 2012-04-06 13:23:01 -05:00
Brettflan 6d75fa39cc 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. Both are useful things for my server.
2012-03-19 11:18:39 -05:00
Brettflan d77cf1fa18 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. 2012-03-19 08:21:06 -05:00
Brettflan 8333354926 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.
Also removed our old workaround fix code for the bug where half-step placement wasn't detected, since the Bukkit team fixed that in 1.1-R4.
2012-03-19 07:59:41 -05:00
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