Commit Graph

33 Commits

Author SHA1 Message Date
3ae70642ba Check circular area hierarchy on startup
This also prevents 'areas:isAreaOwner' from getting stuck in an infinite loop.
2025-06-08 19:09:01 +02:00
79e799cfa1 Move areas:save() into async
On newer Minetest servers, handles saving jobs in async environment. To prevent conflicts, the save file is locked whie saving, and if a code requests saving while the file is locked, data is saved again immediately after finishing the current save.
2024-11-05 20:17:13 +01:00
ec77a57f42 Stop reusing holes in areas IDs
This eliminates the need of iterating the whole list for every protection operations. Note that the highest index isn't cached, i.e. the first or few (if there are many holes) operations would still suffer from the lag.
2024-11-05 20:17:13 +01:00
6fd05bc95e trivial a -> an in comments 2024-09-25 20:42:09 +02:00
0bad0ec0ae Allow custom checks before allowing a player to protect new areas (#74) 2024-03-22 22:26:12 +01:00
f4bb8eb29b Include the endpoint position in the area size check (#70) 2024-02-09 21:25:23 +01:00
c8cf4aba92 Fix orthography (it's -> its) (#65) 2023-08-26 11:40:59 +02:00
a9c05f0e38 Use JSON to store areas (#47)
This works around a limit of ~21000 areas because of limits in 'minetest.deserialize()'. Files will be migrated to the new format on first change.
2020-08-28 12:54:48 +02:00
800a93f5ee Minor cleanup 2020-06-04 20:36:12 +02:00
4179917eb4 Add translation support 2020-03-19 22:46:22 +01:00
1bbb997c7a Add callbacks for area operations 2019-04-01 20:28:50 -07:00
09c030352f Use the new minetest.safe_file_write API if possible when saving database. 2019-04-01 20:27:17 -07:00
7cb8787beb Use get_auth_handler().get_auth() instead of auth_table
minetest.auth_table is an implementation detail of the default auth handler.
No guarantee is made that it even exists and using this table directly is incompatible
with custom auth handlers.  Instead, use the proper auth handler API.
2016-09-03 21:05:52 -04:00
67507c7591 Fix move_area not updating AreaStore 2016-06-23 15:49:22 -04:00
10338cd5d1 Minor isSubarea optimization 2015-10-30 20:31:24 -04:00
8b0b8c1ad2 Add support for the AreaStore API 2015-10-29 16:49:35 -04:00
3f777900d4 Simplify settings definitions and namespace settings 2014-11-17 21:16:59 -05:00
e4aef02cb9 Add areas_high_limit privilege for trusted players 2014-11-14 13:21:09 -05:00
57c18fce95 Make all admin checks use one table 2014-07-12 19:10:26 -04:00
e17cda925b Add canInteractInArea 2014-07-12 16:37:54 -04:00
78ca95d5b4 Allow protection of intersecting sub-areas and make error message more informative 2014-03-22 23:24:29 -04:00
a8e5b90aeb Don't overwrite area file if serialization fails 2014-02-04 15:11:02 -05:00
72d26dad25 Fix self protection max areas off-by-one error 2014-01-15 20:14:24 -05:00
54f9f78c4b Remove redundant if 2014-01-15 20:13:47 -05:00
f7f4c2ddb5 The length of a table with non-sequential indexes in not defined 2014-01-15 19:32:51 -05:00
7df1bbc190 Variable localizations 2013-12-17 20:31:11 -05:00
f096fb4dbb Use table indices as IDs
This significantly optimizes a lot of operations and removes redundancy.
2013-11-18 21:12:09 -05:00
f98312fe10 Optimize area and index finding 2013-11-18 17:57:32 -05:00
5f68c111dc Fix crash with recursive_remove_areas 2013-11-18 17:44:00 -05:00
b1a4f878ef Fix rename_area and buildable_to nodes on the edges of areas 2013-09-03 17:09:11 -04:00
7b0ff512f7 Shorten lines 2013-09-03 01:33:08 -04:00
3d866330bf Add more spaces in area desctiption strings 2013-09-02 19:44:18 -04:00
4ae050a3ae Initial commit 2013-09-02 19:16:14 -04:00