8ad533c598
Check circular area hierarchy on startup
...
This also prevents 'areas:isAreaOwner' from getting stuck in an infinite loop.
2025-06-07 17:37:39 +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