Commit Graph

487 Commits

Author SHA1 Message Date
Brettflan 0eaffd7aef Double-space (or more) after command alias is no longer accepted, i.e. "f--home" (replace "-" with " " since GitHub is combining multiple spaces). 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:24:01 -05:00
Brettflan d31bac8da8 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:44 -05:00
Brettflan 03b0a2bb5f 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:54:59 -05:00
Brettflan 500a3d2819 Add fireball/"fire charge" to default territoryDenyUseageMaterials list, to prevent them from being used to set things on fire like flint&steel 2012-03-19 04:19:05 -05:00
Brettflan 67fce0b6ca 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:10 -05:00
Brettflan 1ffa3b952c Release 1.6.7 (sorry, forgot I hadn't pushed this version change) 2012-03-17 00:38:30 -05:00
Brettflan 68f1319a98 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:50 -05:00
Brettflan 2dbaee836b 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:31 -05:00
Brettflan 30c2eaeac3 (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:55 -05:00
Brettflan 03fe63cda0 Cleaning sweep, mainly for various stray "4 spaces" indentions to tabs 2012-03-13 08:26:54 -05:00
Brettflan 554a7a42c6 (patrickfreed) (bladedpenguin) (donington) Custom Event System - custom events are provided for other developers to hook into to create their own plugins based around Factions! Check the factions/event folder for the currently implemented events. 2012-03-13 07:58:51 -05:00
Brettflan 3e3c907857 updated bukkit lib 2012-03-13 05:56:12 -05:00
Brettflan 47756a9216 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:51 -05:00
Brettflan 90e9f35fea Fix for "econClaimUnconnectedFee" not working correctly 2012-03-11 22:44:39 -05:00
Brettflan 4db904182e 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:07 -05:00
Brettflan 6931b3e204 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 b51ea3020d 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:
0ed1d1fdbb
2012-03-11 07:39:31 -05:00
Brettflan fbfdf8fe23 (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:24:58 -06:00
Brettflan d7f5ee581e New setting "logPlayerCommands" (default true) which can be disabled to prevent player commands from being logged. 2012-03-09 19:26:42 -06:00
Brettflan a999f50966 Replaced deprecated CreatureType references with EntityType 2012-03-09 14:46:46 -06:00
Brettflan 2aca034c8c 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:18 -06:00
Brettflan 1f39fc36a0 Release 1.6.6b for compatibility with CB 1.1-R5 and above 2012-03-01 09:41:34 -06:00
Brettflan 460c382699 Fix for fatal error at startup in CraftBukkit 1.1-R5 and above
Updated Bukkit lib
2012-03-01 09:40:29 -06:00
Brettflan e1a3d8bffb Final attempt to fix rare non-fatal NPE from Player ending up returning null while updating Spout appearance features 2012-03-01 09:38:46 -06:00
Brettflan a4ee13ebbe Release 1.6.6
Also I'm sneaking in another minor fix for the coloring of the faction limit error message
2012-02-26 21:34:56 -06:00
Brettflan e86b436c60 fix for faction limit error message 2012-02-26 20:49:50 -06:00
Brettflan 84ee922ac1 "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:57 -06:00
Brettflan cbd2507676 (Olof) Added command logging for commands used by players 2012-02-26 16:42:12 -06:00
Brettflan 7138e8d5f8 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) and cleaned up /f permanent text a little.
2012-02-26 12:29:46 -06:00
Brettflan 503233b916 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:26 -06:00
Brettflan c1f5475d0c 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:18 -06:00
Brettflan 967870a582 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:19 -06:00
Brettflan 3ff3e61dd9 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:38 -06:00
Brettflan 02fa6ab2c1 (Olof) (backported from 1.7 branch) 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. 2012-02-22 13:41:47 -06:00
Brettflan 5452a7cf91 Clean up integration methods with other plugins a bit 2012-02-22 11:43:56 -06:00
Brettflan 11a4162981 Updated SpoutAPI, handled deprecated Spout AppearanceManager code, updated Spout event listener to new Bukkit event system 2012-02-20 17:03:43 -06:00
Brettflan 639dc16bf5 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:18 -06:00
Brettflan af85f0f503 (Olof) Using latest CAPI for integration 2012-02-20 16:53:10 -06:00
Brettflan 56de98f049 update default GSON jar version to 2.1 2012-02-19 08:32:47 -06:00
Brettflan 03d32ec5b0 Fix for potential NPE in CraftBukkit caused by LWC location world returning null 2012-02-19 08:23:09 -06:00
Brettflan ff56162c12 fix for command prevention routine (used by territoryEnemyDenyCommands and such) not properly covering commands with uppercase letters in them 2012-02-19 08:21:03 -06:00
Brettflan f182f70371 Update our MCore event handlers to use the newer Bukkit event system 2012-02-07 17:02:53 -06:00
Brettflan 3ed879ca18 "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:20 -06:00
Brettflan 225471e530 Fix for error when disbanding faction from server console with economy enabled 2012-02-07 14:57:03 -06:00
Brettflan 5ef1c1a15e Release 1.6.5c: 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 eec60b2d5c Release 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... 2012-02-03 00:15:35 -06:00
Brettflan 63e22f188f Release 1.6.5 2012-02-02 19:43:45 -06:00
Brettflan 32da53f459 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:34 -06:00
Brettflan 5e14a4b1c7 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:40 -06:00
Brettflan 487a3457f2 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:53 -06:00