Commit Graph

708 Commits

Author SHA1 Message Date
sk89q
88e7327af6 Merge branch 'master' into feature/region-api-update 2014-08-22 20:48:34 -07:00
sk89q
b7d8562ece Use a region deny message indicating region data load failure. 2014-08-22 20:43:03 -07:00
sk89q
b94641f1b5 Wooden doors are interact-able. 2014-08-22 19:47:37 -07:00
sk89q
0ddf56f7f6 Add -g to /rg (re)define to create a global region. 2014-08-22 19:37:13 -07:00
sk89q
74e64d0641 Fix region bypass permission and support fake players. 2014-08-22 19:32:03 -07:00
sk89q
858b0b2c1c Update Javadocs in RegionQuery. 2014-08-22 19:19:35 -07:00
sk89q
54237c0038 Fix potential NPE in FlagValueCalculator. 2014-08-22 19:17:46 -07:00
sk89q
0edb948a40 Don't let players disembark if they can't back on. 2014-08-22 19:17:36 -07:00
sk89q
f85aeecde7 Fix deny flags not applying when you are on an animal.
Fixes WORLDGUARD-2518.
2014-08-22 18:23:59 -07:00
sk89q
69a0f26a52 Handle OfflinePlayer causes. 2014-08-22 18:04:01 -07:00
sk89q
a6118c3aa4 Unify debouncing method. 2014-08-22 17:30:18 -07:00
sk89q
59494233e3 Debounce interact events. 2014-08-22 17:21:49 -07:00
sk89q
d0ff1815aa Made EventDebounce more reusable. 2014-08-22 16:52:34 -07:00
sk89q
9b7970475a Fix the SLEEP flag not checking the right bed material. 2014-08-22 16:26:43 -07:00
sk89q
88c0bdfffb Better handle disabling of the regions feature. 2014-08-22 16:18:05 -07:00
sk89q
b43bc4a57a Debounce events for 10 seconds. 2014-08-22 16:10:22 -07:00
sk89q
bd8e1a35f6 Add block place, block break flags. 2014-08-22 16:08:31 -07:00
sk89q
722dabcf1a Add item pickup flag and implement item drop flag through event abstraction. 2014-08-22 16:02:21 -07:00
sk89q
09207367c0 Use specific messages for denied item drop / pick up. 2014-08-22 15:45:05 -07:00
sk89q
3336b73536 Don't send too many "can't do this" messages at a time. 2014-08-22 15:43:03 -07:00
sk89q
0d7e3ad2de Add friendlier region deny messages. 2014-08-22 15:36:21 -07:00
sk89q
95d1bd8ee0 Debounce item pickup event. 2014-08-22 13:54:59 -07:00
sk89q
6c97e04c7c Use event abstraction for blacklist item pickup. 2014-08-22 13:45:55 -07:00
sk89q
24f72cb07f Make liquid flow checking for regions optional. 2014-08-22 13:37:02 -07:00
sk89q
ef56a32f00 Implement PVP flag through abstraction. 2014-08-22 12:47:06 -07:00
sk89q
d8da89703b Handle the TNT flag better in the new system.
Now the build flag works in tandem with the TNT flag.
2014-08-22 11:27:23 -07:00
sk89q
e47c563ced Handle null flag values in the flag set command correctly. 2014-08-22 11:09:09 -07:00
sk89q
bd0917d34b Add deny-message flag to adjust the region "don't have permission" message.
Also add color code parsing for the flag set command.
2014-08-22 03:37:33 -07:00
sk89q
8098211d01 Add Flag.getDefault(). Breaks StateFlag.getDefault() calls. 2014-08-22 02:19:31 -07:00
sk89q
83c95bbb8c Clear dirty flag if RegionManager.save() is used. 2014-08-22 02:08:59 -07:00
sk89q
4d4e1c6c26 Handle region data load / save failure more gracefully.
Also remove use of BoneCP and reorganize the classes.
2014-08-22 02:08:37 -07:00
sk89q
3045dc0293 Better handle failure conditions for background region saving. 2014-08-21 23:36:15 -07:00
sk89q
e649973318 Revert "Don't use the region chunk has table until a threshold."
This reverts commit f57afb2944.
2014-08-21 22:49:53 -07:00
sk89q
2d147bb7e1 Change PriorityRTreeIndex to use the R-tree for intersection queries. 2014-08-21 22:47:46 -07:00
sk89q
f57afb2944 Don't use the region chunk has table until a threshold. 2014-08-21 22:39:32 -07:00
sk89q
95052546a5 Remove use of Bukkit logger. 2014-08-21 22:22:28 -07:00
sk89q
768532cb8b Re-implemented region data migration. 2014-08-21 22:00:27 -07:00
sk89q
06df4585c2 Cleanup formatting of RegionProtectionListener. 2014-08-19 00:10:40 -07:00
sk89q
416006dbde Route XP drops through the event abstraction. 2014-08-18 23:56:39 -07:00
sk89q
5ff9f5c175 Reduce the number of internal events for EXPERIENCE_ORB. 2014-08-18 23:33:45 -07:00
sk89q
fa14184eb4 Move PISTONS flag to RegionFlagsListener. 2014-08-18 23:32:37 -07:00
sk89q
d29f66563b Add region support check in RegionProtectionListener. 2014-08-18 23:31:52 -07:00
sk89q
53957e7b26 Add Cause.getFirstBlock(). 2014-08-18 23:31:19 -07:00
sk89q
2c81cb2f84 Add isRegionSupportEnabled(World) to AbstractListener. 2014-08-18 23:31:09 -07:00
sk89q
711fe7ad2f Add Materials.isPistonBlock(). 2014-08-18 23:30:36 -07:00
sk89q
f6f94571ea Handle pistons in the event abstraction. 2014-08-18 21:37:41 -07:00
sk89q
985629c196 Create RegionFlagsListener and rename some methods. 2014-08-18 19:15:40 -07:00
sk89q
bb64079d17 Raise SpawnEntityEvent for BlockExpEvent. 2014-08-18 18:56:07 -07:00
sk89q
c3363f0d70 Disable sponge simulation by default.
Vanilla Minecraft will have sponges again, plus it is uses up CPU time even if players can't get sponges.
2014-08-18 12:32:28 -07:00
sk89q
937a5758f7 Don't perform spatial queries for location->location checks until needed. 2014-08-18 11:26:02 -07:00
sk89q
bb1826bdb1 Cache the set made in ApplicableRegionSet. 2014-08-18 11:04:36 -07:00
sk89q
1a781fc5b0 Try last ChunkState accessed in ChunkHashTable. 2014-08-18 10:57:02 -07:00
sk89q
039d174477 Reduce the number of BlockFromTo events handled. 2014-08-18 10:40:09 -07:00
sk89q
929f9e99cd Catch FileNotFoundException in YamlFileStore. 2014-08-18 10:39:53 -07:00
sk89q
ae8bf63c86 Remove use of ObjectArrays.concat() in ApplicableRegionSet. 2014-08-18 03:05:06 -07:00
sk89q
3eb5c65a3d Throw IllegalArgumentException if trackParentCause() is given a Block. 2014-08-18 02:35:41 -07:00
sk89q
095f2aa67e Don't check region group if the flag value is null. 2014-08-18 02:32:05 -07:00
sk89q
0f10e89f7c Add getConfig() to AbstractListener. 2014-08-18 02:23:33 -07:00
sk89q
3a2b453e3f Change some collections and cache player names. 2014-08-17 20:17:52 -07:00
sk89q
c43a24d78f Abandon TreeSet in ApplicableRegionSet for performance reasons. 2014-08-17 19:18:21 -07:00
sk89q
d43eb3bc34 Optimize the query cache a bit. 2014-08-17 19:08:20 -07:00
sk89q
3ca147e405 Don't check metadata on Blocks in Cause.
We don't track causes on Blocks. There's no need for the performance hit.
2014-08-17 15:23:34 -07:00
sk89q
41fb8a0722 Implement Associables to handle non-player region membership checks. 2014-08-17 13:16:45 -07:00
sk89q
ff3fa759d1 Don't throw an internal block break event when lighting TNT. 2014-08-17 00:49:50 -07:00
sk89q
cab42af53b Reimplemented the quirks of the old flag code. 2014-08-17 00:49:32 -07:00
sk89q
fac6ebef40 Implement new methods for accessing flags. 2014-08-16 21:09:01 -07:00
sk89q
e7c9703ced Fix checkstyle issues. 2014-08-16 21:08:17 -07:00
sk89q
4597849466 Allow __global__ BUILD to be set to DENY. 2014-08-16 13:55:54 -07:00
sk89q
a35aaf9659 Force __global__ BUILD flag to NONE.
This is due to the legacy reason of the global region having not
been previously processed as a regular region.
2014-08-16 13:54:04 -07:00
sk89q
bfb3f9e840 Change state flag defaults to true. 2014-08-16 13:45:16 -07:00
sk89q
91e34601ec Add supervisor/task library in. 2014-08-16 13:42:14 -07:00
sk89q
7481acba8c Updated FlagValueCalculator to treat global regions a lowest priority region. 2014-08-16 13:30:58 -07:00
sk89q
4d43ef5305 Change flags to use ALL as their region group. 2014-08-16 13:08:09 -07:00
sk89q
b1fb143fd4 Add a new (unused for now) flag value implementation.
It supports region groups and fixes inconsistency issues.
2014-08-16 02:42:02 -07:00
sk89q
d07e81288a Make the state flag test use a Predicate for membership testing. 2014-08-15 14:16:05 -07:00
sk89q
c0d4ba5c6c Swap the if() in the state flag test to make it more readable. 2014-08-15 13:54:33 -07:00
sk89q
8a11752253 Fix a typo in ApplicableRegionSet and improve docs. 2014-08-15 12:41:28 -07:00
sk89q
1d24be8c34 Rewrite state calculation in ApplicableRegionSet to be easier to read. 2014-08-15 12:30:37 -07:00
sk89q
d3f3489c7e Fix child regions not inheriting parent flags.
This also fixes a unit test.
2014-08-15 03:48:25 -07:00
sk89q
3f16fef57e Fix and improve protection handlers. 2014-08-15 01:43:37 -07:00
sk89q
608d782321 Activate debugging listener of the property "worldguard.debug.listener" is true. 2014-08-14 22:23:47 -07:00
sk89q
5d6dad4c6d Don't remove child regions without warning.
Also add some missing files.

Fixes WORLDGUARD-2311.
2014-08-14 21:41:44 -07:00
sk89q
28c538e981 Refactor region commands and make the necessary ones run in the background. 2014-08-14 21:24:32 -07:00
sk89q
a35cb9277e Handle CommandException in WorldGuardPlugin.convertThrowable(). 2014-08-14 21:24:02 -07:00
sk89q
e43ce420a3 Make UUID detection in DomainInputResolver reusable. 2014-08-14 21:23:26 -07:00
sk89q
501a7aa77a Add ProtectedRegion.copyFrom(). 2014-08-14 21:22:39 -07:00
sk89q
76f7ac8d8e Remove deprecation on getRegion() in RegionManager. 2014-08-14 21:22:15 -07:00
sk89q
518d5958c9 Update some region commands to run in the background. 2014-08-14 16:21:10 -07:00
sk89q
7e25de38da Update Javadocs in RegionContainer. 2014-08-14 15:20:08 -07:00
sk89q
bf8ef39871 Handle null players in shim method of GlobalRegionManager. 2014-08-14 15:17:00 -07:00
sk89q
cd62af698b Change listeners to use the region query cache. 2014-08-14 14:52:11 -07:00
sk89q
709ce9eb08 Fix a typo in some Javadocs. 2014-08-14 02:46:19 -07:00
sk89q
e24d7ccb10 Change "don't have permission" message for regions. 2014-08-14 02:44:42 -07:00
sk89q
98bbd900cb Rename RegionQuery.testEnabled() -> testState(). 2014-08-14 02:39:42 -07:00
sk89q
19b87b628a Remove use of GlobalRegionManager in RegionProtectionListener. 2014-08-14 02:39:12 -07:00
sk89q
dc2652f87b Implement an ApplicableRegionSet cache. 2014-08-14 02:33:57 -07:00
sk89q
99660920d7 Refactor region API with new RegionContainer object. 2014-08-14 01:24:38 -07:00
sk89q
ad1c10a3e9 Reorganize Bukkit portion of the region API. 2014-08-13 14:06:37 -07:00
sk89q
5b685e71d3 Add ChunkHashTable.awaitCompletion(). 2014-08-13 07:51:13 -07:00
sk89q
5ddc4b9251 Properly convert chunk coordinates in ChunkHashTable. 2014-08-13 01:02:55 -07:00
sk89q
38587a1c61 Add a hash table index for regions that hashes on chunk coordinates. 2014-08-13 00:34:36 -07:00
sk89q
eb23e28c16 Handle Tameable as a cause. 2014-08-12 23:17:36 -07:00
sk89q
4379c7e989 Handle Vehicle.getPassenger() as a parent cause. 2014-08-12 23:15:47 -07:00
sk89q
989ce82c5d Merge branch 'feature/event-abstraction' into feature/region-api-update 2014-08-12 19:49:52 -07:00
sk89q
f92e55e061 Simplfy Cause objects. 2014-08-12 19:48:20 -07:00
sk89q
0fc3d21b90 Add abstracted event debugging listener. 2014-08-11 20:08:56 -07:00
sk89q
26d3645f86 Improve level of event listening. 2014-08-11 20:08:38 -07:00
sk89q
110aa2e56b Clean up docs / code for utility classes. 2014-08-11 17:54:55 -07:00
sk89q
05369b69b6 Reorganize classes into different packages. 2014-08-11 17:51:00 -07:00
sk89q
4a501a49db Abstract events for regions and blacklists further. 2014-08-11 17:48:40 -07:00
Torm
573204caad Fix heal command for players with more health than 20 2014-08-11 00:02:26 +02:00
sk89q
7a01168781 Rewrite region API. Migrations need to be re-implemented.
This commit, however, adds:

* Better support for background saves and loads.
* Periodical writes of region changes rather than explicit save() calls.
* Rewrite of the MySQL region code.
* Support for partial saves when using MySQL.
* Decoupling of region index implementations and RegionManager.

What still needs to be done includes:

* Background region modification operations (addmember, etc.).
* Unit tests to verify correctness of the partial saving.
* Migration support (to be re-added).
* Better handling when regions are failing to save.
* Testing of the /rg load and /rg save commands.
* Verification of how server shutdown / world unload is handled.
* Verification that thread-unsafe concurrent saves of data is not happening.
2014-08-08 20:28:49 -07:00
sk89q
b5dfed9e01 Update for dependency package rename. 2014-08-02 23:35:12 -07:00
sk89q
29f804b9f0 Save YAML regions database to a temporary file before renaming. 2014-08-02 21:22:32 -07:00
sk89q
504fceceeb Remove /wg cancelall because it doesn't entirely work yet. 2014-08-02 21:19:05 -07:00
sk89q
9a852f4cbe Fix shutdown guard not working. 2014-08-02 21:08:11 -07:00
sk89q
fafd3aba6a Implement UUID migration. 2014-08-02 21:03:17 -07:00
sk89q
d87a335e85 Disable Flyway validation on migration. 2014-08-02 21:00:02 -07:00
sk89q
471b4496c9 Add task management and improve threaded code. 2014-08-02 18:38:18 -07:00
sk89q
bf48361b10 Switch to Odeum for executors. 2014-08-02 11:24:25 -07:00
sk89q
387431c9c7 Remove both UUID and names from domains for removal commands. 2014-08-02 10:03:41 -07:00
sk89q
9b69c07663 Show name: for legacy names in region domains. 2014-08-02 09:53:35 -07:00
sk89q
81a727fe7f Add support for UUIDs in region commands. 2014-08-02 09:32:30 -07:00
sk89q
189fd15498 Close connections properly in MySQLDatabaseImpl.chooseWorldId(). 2014-08-01 22:32:13 -07:00
sk89q
1a602f2f8a Implement UUID saving/loading support for regions.
Also fix WORLDGUARD-3117.
2014-08-01 22:31:58 -07:00
sk89q
7986238936 Add migrations for region MySQL support. 2014-08-01 21:29:40 -07:00
sk89q
a2fc9c94fd Fix NPE when a manager fails to load. 2014-08-01 20:02:50 -07:00
sk89q
51f98c9eb7 Reorganize MySQL region DB and added BoneCP as a dependency. 2014-08-01 19:19:48 -07:00
sk89q
418b8ff6a7 Add support for UUIDs in domains. 2014-08-01 17:36:56 -07:00
zreed
26ac987024 Use table prefix when deleting from region_poly2d_point. 2014-07-29 21:11:44 -04:00
sk89q
e44875532d Fix NPE in BlacklistEntry due to recent refactor. 2014-07-28 21:02:15 -07:00
sk89q
956d1b4248 Add support for data values in the blacklist. 2014-07-28 16:45:43 -07:00
sk89q
f46b1cb138 Change use of integer IDs to "Target" objects in blacklist code. 2014-07-28 15:58:07 -07:00
sk89q
5b5022b0b8 Change blacklist repeated event tracking to use an expiring cache and cause names as keys. 2014-07-28 15:01:01 -07:00
sk89q
d93c7fa09d Add on-dispense blacklist event. 2014-07-28 14:48:30 -07:00
sk89q
2c1d1ef0a3 Remove attachment check because it doesn't really make sense. 2014-07-28 14:45:05 -07:00
sk89q
bf97e41697 Rewrite blacklist code. 2014-07-28 14:38:43 -07:00
sk89q
c0852d63fe Add asynchronous region load/save for YAML databases.
These changes are intentionally limited so as to maintain backwards
compatibility with existing plugins using WG's API.

Some data structures were changed to CopyOnWrite to ensure thread
safety and the map of regions was changed to a ConcurrentHashMap.

Currently, saving requires making a copy of the regions map which can
cause a delay of a few milliseconds on large data sets.
2014-07-24 18:49:40 -07:00
sk89q
acc39e11b1 Handle null causes by skipping them. 2014-07-24 17:38:18 -07:00
sk89q
b4880ae982 Modularize potion blocking via the configuration. 2014-07-24 16:08:30 -07:00
Wyatt Childers
1a1acae588 Slight performance optimization to the movement checks to improve performance with slow permissions plugins 2014-07-23 22:26:34 -04:00
sk89q
cd221ea19c Refactor command filter into a unit tested class.
Also adds support for regex \s as the subcommand delimiter.
2014-07-21 19:36:25 -07:00
sk89q
abeab91be4 Add messages warning about auto-god mode and auto-amphibious mode. 2014-07-18 18:39:49 -07:00
sk89q
ac88367f6c Handle null custom flags registered by third-party plugins.
See WORLDGUARD-3094.
2014-07-13 02:23:04 -07:00
sk89q
f788f0e0d9 Add internal.check-attached-blocks option to check attached blocks.
This does not check the other way yet (i.e. check if other blocks depend
on the block in question).
2014-07-12 21:14:26 -07:00
sk89q
9a4bc70cdd Added basic abstracted events. 2014-07-12 20:59:33 -07:00
sk89q
6deafa660d Cleanup code and add checkstyle configs from WorldEdit. 2014-07-12 19:31:43 -07:00
sk89q
0d2adc5707 Add more detail error messages when parsing regions file. 2014-07-11 13:20:42 -07:00
Albert Pham
b0ed119585 Merge pull request #263 from kukelekuuk00/patch-1
Add some command aliases to RegionMemberCommands
2014-07-06 15:55:43 -07:00
sk89q
894a42ea13 Merge pull request #316 from zreed/sqltableprefix 2014-07-06 15:37:26 -07:00