Commit Graph

279 Commits

Author SHA1 Message Date
Thomas Rudin
9a07792f4d Save forceloaded blocks file periodically (#8535)
saves the forceloaded blocks periodically.
checks every 10 seconds if the forceloaded blocks got changed in-game
and persists them on-disk if that's the case
2019-06-10 01:07:33 +01:00
SmallJoker
cb00632e23
HTTP API: Allow binary downloads and headers (#8573)
Add minetest.features.httpfetch_binary_data
2019-06-06 19:13:29 +02:00
ANAND
72feab081c builtin/../register.lua: Abort make_wrap_deregistration if param is invalid 2019-05-04 12:56:19 +02:00
DS
60ab2d94f0 Add sounds for falling and attached nodes (#7719)
* Add sounds for falling and attached nodes

The sound specified in `node_definition.sounds.fall` is used.
When a falling node is spawned at a position or an attached node drops, the sound is played at this position.

* allow all sorts of soundspecs
2019-03-05 08:17:48 +01:00
SmallJoker
eea1fdaf25 Statbars: Reduce initial update interval
Centralize HUD updating in update_builtin_statbars.
Fixes race condition in 'on joinplayer' that causes stat bar bugs.
Correctly scales stat bars to custom max values set by mods.
2019-02-12 20:45:38 +00:00
Paul Ouellette
11b550e024 Remove incorrect feature flag (#8086)
And document the versions that introduced the features.
2019-01-19 15:17:05 +01:00
Wuzzy
5560ec8178 Add eat sound (#7956) 2018-12-10 09:25:47 +01:00
Ezhh
6b102ce51f Rename hasprivs command to haspriv (#7860) 2018-11-13 20:24:20 +01:00
SmallJoker
0a5e77132a
Add core.remove_detached_inventory (#7684)
Breaks backwards compatibility for good
Bump protocol version
2018-10-10 20:48:58 +02:00
tenplus1
a4f41e7bfc get_node_drops: Make empty drop return empty table (#7592)
This stops get_node_drops from returning an empty string when using drop = "" and instead returns the supposed empty table instead {}
2018-08-30 20:32:33 +02:00
zeuner
ea26076bcb Feature check for commit ac4884c3d677ef51bcce47f95ccd49d874022692 (#7618)
adds `entity_independent_selectionbox` to minetest.features
2018-08-12 13:37:17 +02:00
Ben Deutsch
153fb211ac Replace auth.txt with SQLite auth database (#7279)
* Replace auth.txt with SQLite auth database
2018-08-05 13:13:38 +02:00
SmallJoker
ade7a1cbcf
Builtin: Replace deprecated function calls (#7561) 2018-07-17 20:17:54 +02:00
ClobberXD
a0635f6024 Check if player exists on use of /privs (#7554)
* /privs: Check if player exists
2018-07-16 14:55:03 +02:00
SmallJoker
0cf36454d6 core.spawn_falling_node: Keep metadata (#7476) 2018-07-09 23:33:21 +02:00
ClobberXD
498078bfa0 Builtin/../misc.lua: Replace minetest. with core., improve codestyle (#7540) 2018-07-09 19:11:35 +01:00
SmallJoker
6f22d14206
Make the server status message customizable (#7357)
Remove now redundant setting show_statusline_on_connect
Improve documentation of `minetest.get_server_status`
2018-07-01 12:31:28 +02:00
Anand S
f3b7be97fe Log usage of /pulverize (#7503) 2018-06-30 12:53:43 +02:00
Anand S
da9e4b1f4a Add hasprivs chat command (#7336)
Require 'basic_privs' priv
Only the online players are listed.
2018-06-12 15:39:43 +02:00
SmallJoker
409d04324f Fix the /shutdown command (#7431) 2018-06-11 13:43:12 +02:00
number Zero
90acb9b3a7 Fix typo (GH#7421) 2018-06-10 10:34:13 +02:00
Loïc Blot
ccc3af128c
CSM/SSM: Add on_mods_loaded callback (#7411)
* CSM/SSM: Add on_mods_loaded callback
2018-06-06 12:53:59 +02:00
you
22df02d25b Fix missing ignore textures (#7326) 2018-05-20 14:51:50 +02:00
Wuzzy
6d6b894c7a Small usage changes for air and ignore items (#7305)
* Remove “you hacker you!” from node description
* Prevent placement of ignore in builtin
* Prevent giving of "unknown" explicitly
2018-05-20 14:51:26 +02:00
SmallJoker
36eb823b1c
Builtin auth handler: Speed up file writing (#7252) 2018-04-19 18:36:10 +02:00
SmallJoker
f6eff57f7c Add player inventory callbacks 2018-04-02 17:18:48 +02:00
you
93eb0794d6 ObjectRef: Add add_velocity() (#3208)
Allow changing the velocity of objects relatively to their current velocity
2018-03-31 14:50:17 +02:00
SmallJoker
8f827ee680
core.rotate_node: Do not trigger after_place_node (#6900) 2018-03-29 21:44:13 +02:00
stujones11
821e3f7072 Optional alpha channel support for entities 2018-03-29 14:53:12 +01:00
Andrew Ward
dfc8198349
Add reasons to on_dieplayer and on_hpchange 2018-03-28 16:05:18 +01:00
SmallJoker
66372e75d9
is_area_protected: Rename from intersects_protection (#7073)
* is_area_protected: Rename from intersects_protection
Return first protected position
Clarify docs: Mods may overwrite the function
2018-02-25 12:25:39 +01:00
dopik
cf98f5bbc0 /shutdown can't do countdown when using reconnect and/or shutdown message (#7055)
Delay was converted from the param string and not the delay value, thus never using the actual given delay value when used in combination with other string values in the param, in this case reconnect and the shutdown messsage.
2018-02-19 08:41:44 +01:00
you
46bbacee95 Fix "Ignoring CONTENT_IGNORE redefinition" warning (#4393)
minetest.override_item still passes to core
2018-02-18 10:40:14 +01:00
red-001
338d645fcf Add on_auth_fail callback (#7039)
Called when a client fails to supply the correct password for the account it's attempting to login as.
2018-02-15 21:18:54 +01:00
paramat
1156088db7 Item entity: Delete in 'ignore' nodes 2018-02-13 03:48:34 +00:00
paramat
737f0b4473 Falling.lua: Delete falling node entities on contact with 'ignore'
Prevents falling node entities entering the ignore at a world edge and
resting on unloaded nodes 16 nodes below, unreachable, undiggable and
still being processed by 'on step' because they don't revert to nodes.
2018-02-13 03:48:28 +00:00
you
87e08b1b3a Add minetest.is_player (#7013)
* Add minetest.is_player

* First use for is_player
2018-02-05 15:17:10 +01:00
paramat
520293b4cb Item entity: Prevent motion in ignore nodes 2018-02-05 05:07:29 +00:00
Wuzzy
7b2687ffc6 Add kill chat command (#6992)
Replace minetest.* with core.* in 1 file
2018-02-04 19:21:41 +01:00
Wuzzy
3b4df956b1 Make chat command + privilege help slightly more accurate (#6964)
* Make chat command help slightly more accurate

* Slightly more accurate privilege help

* Simplify command/priv help

* More command/priv help tweaks
2018-01-29 23:39:36 +01:00
Paramat
01bc817fe0 Intersects_protection(): Move from Minetest Game to builtin (#6952)
A useful function that applies 'core.is_protected()' to a 3D lattice of
points evenly spaced throughout a defined volume, with a parameter for
the maximum spacing of points.
2018-01-23 19:04:58 +01:00
ashtrayoz
abd8a30c05 Add callback to preserve node metadata as item metadata 2017-12-14 20:54:04 +00:00
SmallJoker
b19241b9bc Builtin: Fix handle_node_drops crash with nil digger 2017-12-12 19:19:04 +01:00
sfan5
4edf087090 Auth handler: Player deletion & Iterator (#6741)
* Add player deletion method to auth handler (fixes #6653)
* Support iterating over the auth database

There was no way to do this previously and a recent commit
broke doing this the "hacky" way by accessing `core.auth_table`.
2017-12-06 17:32:49 +01:00
sfan5
36838ea22f Make core.auth_table private and structure builtin/auth.lua
If you give modders the ability to do something, they will...
2017-12-01 09:30:03 +01:00
paramat
912ba1e47f Clearobjects: Send progress messages to terminal using actionstream
Change default mode to 'quick' as 'full' can lock up a server for a
long time.
2017-11-24 05:38:53 +00:00
Auke Kok
41bc0efe71 Sounds: Add falling node sounds
Falling nodes should make a sound. This can only be done here,
so for simplicity we just call the sound_play() here with the node
place sound. We ignore any gain value in the sound spec since a
falling node should be loud, so the 1.0 default gain makes sense
here.
2017-11-14 00:37:31 +00:00
sfan5
fc9747eb4b Make use of safe file writing in auth handler (fixes #6576) 2017-11-08 16:14:05 +01:00
DTA7
ce832eb421 Item entities: Enable item collision detection for sudden movement 2017-11-06 13:51:26 +00:00
raymoo
a5d5728f24 Fix default item callbacks to work with nil users (#5819)
* Fix default item callbacks to work with nil users

* item.lua: Handle node drops for invalid players

The if-condition for the dropping loop is the same as `inv`, which means that the 2nd possible definition of `give_item` is never used.
Remove redundant `local _, dropped_item`
2017-10-28 10:30:50 +02:00
lhofhansl
d386586201 Do not grant all privs to the admin - changes game behavior (#6460)
* Do not grant all privs to admins.

* Default give_to_admin to give_to_singleplayer
2017-10-07 15:12:09 +02:00
Loïc Blot
6f1c907204 Implement mod communication channels (#6351)
Implement network communication for channels

* Implement ModChannel manager server side to route incoming messages from clients to other clients
* Add signal handler switch on client & ModChannelMgr on client to handle channels
* Add Lua API bindings + client packet sending + unittests
* Implement server message sending
* Add callback from received message handler to Lua API using registration method
2017-09-26 00:11:20 +02:00
SmallJoker
edbc533414 Customizeable max breath for players (#6411)
* Customizeable maximal breath for players
2017-09-15 12:18:47 +02:00
Paramat
604fe2083d Item drop: Tune to land exactly 2 nodes away with level view (#6410) 2017-09-13 00:01:50 +02:00
red-001
d10cccee31 Allow the join/leave message to be overridden by mods. 2017-09-11 20:54:07 +02:00
you
bb225672f9 Fix dropped item look (#6370)
* Abort set_item when it does nothing

* Do not adjust dropped item size linearly

Instead use cube root because the item count is proportional to the volume, not to the length.

* Make the item rotate slower when it's bigger

Bigger items chafe more on the ground, so they can't rotate as fast as small ones

* Fix items flying in air
2017-09-11 08:20:06 +02:00
rubenwardy
faad6479de Fix crash on revocation of removed privilege 2017-09-08 23:45:56 +01:00
Wuzzy
e3093cbe85 Prevent /spawnentity from spawning unknown entity (#6388) 2017-09-08 18:39:02 +02:00
Loïc Blot
40dd03e328 Implement minetest.register_can_bypass_userlimit (#6369)
* Implement minetest.register_on_userlimit_check

This new callback permits to bypass the max_users parameter with new mods condition, based on player name or IP
Only one mod needs to permit it.

Move core part for builtin privileges checks to builtin
2017-09-04 22:08:59 +02:00
Rui
b8f06ad37e Remove nodeupdate and nodeupdate_single 2017-08-30 19:39:10 +01:00
paramat
561a01cc2a Zoom: Move enabling zoom to a new player object property
Default enabled for no change in default behaviour.
Remove 'zoom' privilege.
2017-08-30 19:39:05 +01:00
rubenwardy
72c09f524b Fix mistake when calling on_priv_grant/revoke, and document them (#6341) 2017-08-29 07:57:56 +02:00
zeuner
1f207a3ddb Lua API: Add function to deregister single biomes (#5445) 2017-08-27 18:39:47 +02:00
rubenwardy
096ea031de Add on_grant and on_revoke callbacks (#4713)
* Add register_on_priv_grant/revoke, and on_grant/revoke to privs. Call from /grant and /revoke

* Call on_grant and on_revoke callbacks from set_privs
2017-08-26 08:17:05 +02:00
rubenwardy
ad9677a14f Check item_drop amount clientside (#6242) 2017-08-26 08:11:59 +02:00
SmallJoker
d3f1743fdd Builtin item: Tidy up (#4370)
New code structure
Use setting movement_gravity
Reset age on merge
Set merge radius to 1.0m
2017-08-24 23:06:36 +02:00
SmallJoker
f7d50a8078 Respect object property hp_max field for players (#6287)
* Respect object property hp_max field for players
This allows modders to configure the maximal HP per player

* Statbars: Downscale bar to full 20 HP when exceeding this value
Add default max HP for players and breath constants to builtin
Document the constants

* Rename PLAYER_MAX_HP -> PLAYER_MAX_HP_DEFAULT
2017-08-23 22:32:10 +02:00
Dániel Juhász
71b02d626f Make dropped items colorable 2017-08-14 12:52:13 +01:00
Wuzzy
2ea26e655d Add slippery group for nodes (players/items slide) 2017-08-13 21:39:08 +01:00
Hybrid Dog
7e23532bc2 Abort if static_spawnpoint is an invalid setting instead of just giving an error log 2017-08-12 19:37:53 +01:00
red-001
f3ad75691a Create a filesystem abstraction layer for CSM and only allow accessing files that are scanned into it. (#5965)
* Load client-side mods into memory before executing them.

This removes the remaining filesystem access that client-sided mods had and it will hopefully make then more secure.

* Lua Virtual filesystem: don't load the files into memory just scan the filenames into memory.

* Fix the issues with backtrace

* fix most of the issues

* fix code style.

* add a comment
2017-06-30 20:14:39 +02:00
Dániel Juhász
5a41a98ff6 Helper methods for hardware colorization (#5870) 2017-06-24 20:15:09 +02:00
Dániel Juhász
0fcaf9fb1b Automatic item and node colorization (#5640)
* Automatic item and node colorization

Now nodes with a palette yield colored item stacks, and colored items
place colored nodes by default. The client predicts the colorization.

* Backwards compatibility

* Use nil

* Style fixes

* Fix code style

* Document changes
2017-06-20 11:19:56 +02:00
Ezhh
2ab09bb486 Improve chatcommand params consistency (#5985)
* Fix and improve params consistency

* Move parenthesis requirement to descriptions
2017-06-15 22:38:41 +02:00
red-001
c91a8c7061 [CSM] Add function to get player privileges (#5933)
* [CSM] Add function to get player privileges + move related help functions to common

* Added @Zeno- const
2017-06-07 09:09:06 +02:00
Wuzzy
80fe516e4e Remove “inf” argument from shutdown command help (#5880) 2017-06-02 17:16:30 +02:00
Elijah Duffy
dada983ff4 Add /clearinv chat command (#4994)
Allow players to clear their own inventory or that of another player with /clearinv command. server privilege is required to clear another player's inventory, no privileges are required to clear your own inventory.'
2017-05-20 12:56:17 +02:00
ShadowNinja
43d1f375d1 Use a settings object for the main settings
This unifies the settings APIs.

This also unifies the sync and async registration APIs, since the async
registration API did not support adding non-functions to the API table.
2017-05-06 15:33:19 -04:00
Loïc Blot
29ab20c272 Player data to Database (#5475)
* Player data to Database

Add player data into databases (SQLite3 & PG only)

PostgreSQL & SQLite: better POO Design for databases

Add --migrate-players argument to server + deprecation warning

* Remove players directory if empty
2017-04-23 14:35:08 +02:00
Dániel Juhász
f6d1b682d3 Add /fixlight chat command 2017-04-22 01:24:41 +01:00
Loïc Blot
34d32ce55a Implement delayed server shutdown with cancelation (#4664) 2017-04-15 23:19:18 +02:00
Dániel Juhász
58d83a7bb2 Hardware coloring for itemstacks
Adds the possibility to colorize item stacks based on their metadata.

In the item/node definition you can specify palette (an image file)
and color (fallback color if the item has no palette or metadata).
Then you can add palette_index to the metadata.

Dropped itemstacks with different colors do not merge.
2017-04-08 18:39:15 -07:00
red-001
d4e9dd4643 Move chat command handling code from C++ to Lua (#5528) 2017-04-08 20:03:57 +02:00
paramat
ec0c4d33db Map generation limit: Make per-world
The setting limits map generation but affects nothing else.
Add 'mapgen_limit' to global mapgen parameters.
Move 'blockpos_over_mapgen_limit()' to the only place it is called
from: map.cpp.
Allow teleportation to any part of the world even if over the set
mapgen limit.
Simplify the reading of this limit in mgvalleys.
Remove the 'map_generation_limit' setting.
2017-03-27 03:18:09 +01:00
red-001
e70e15134c Change command prefix to "." and add "help" command. 2017-03-26 05:51:14 +01:00
red-001
d31750cb93 Give CSM access to use core.colorize() (#5113) 2017-03-17 19:20:13 +01:00
Auke Kok
b539985ab8 Fix two nul deref if digging unknown nodes. (#5398)
Introduced by d785456b3fa35faf47cb972fde9e8668382c5e22 (#5162)
2017-03-15 08:04:53 +01:00
Loïc Blot
2c19d51409 [CSM] sound_play & sound_stop support + client_lua_api doc (#5096)
* squashed: CSM: Implement register_globalstep
  * Re-use fatal error mechanism from server to disconnect client on CSM error
  * Little client functions cleanups

* squashed: CSM: add core.after function
  * core.after is shared code between client & server
  * ModApiUtil get_us_time feature enabled for client
2017-03-13 23:56:05 +01:00
red-001
d7bc346981 [CSM] Add client-sided chat commands (#5092) 2017-03-13 23:56:05 +01:00
Vladislav Tsendrovskii
7a4878cd0b Save metainfo for falling nodes 2017-03-11 23:42:19 -08:00
tenplus1
d785456b3f Optimize item.lua
Replace slow ItemStack get_definitions with registered_nodes one's and cached playername as it's used multiple times.  Also removed local item = itemstack:peek_item() as it is never used.
2017-03-10 11:24:10 -08:00
zaoqi
c9ac722ea9 Add minetest.spawn_falling_node(pos) (#5339)
* Add minetest.spawn_falling_node(pos)

* lua_api.txt: Add minetest.spawn_falling_node(pos)

* Update minetest.spawn_falling_node(pos)
2017-03-04 18:36:37 +01:00
red-001
4d634ef675 Fix crash that can be caused by the shutdown command. (#5292) 2017-02-25 09:28:25 +01:00
Dániel Juhász
00123ee04d Fixes for colorwallmounted and colorfacedir nodes
Correct node placement prediction for attached colorwallmounted nodes.
Correct placement direction for colorfacedir and colorwallmounted nodes.
Correct detatch mechanism for attached colorwallmounted nodes.
2017-02-18 22:47:24 +00:00
tenplus1
e9cd7187e8 Statbars.lua: Cache enable_damage setting 2017-02-18 22:46:06 +00:00
red-001
3d25914986 Add support for the new arguments of request_shutdown to the /shutdown chatcommand. (#5252) 2017-02-18 12:16:11 +01:00
Wuzzy
f5d4494a51 Add textures for air and ignore items (#5196) 2017-02-10 08:19:31 +01:00
Nathanaël Courant
3e355ab7d5 Make facedir_to_dir and wallmounted_to_dir work with coloured nodes as well. (#5153) 2017-01-31 15:02:30 -08:00
Auke Kok
7fc6719968 core: Add dir_to_yaw and yaw_to_dir helpers
These are needed to go from things like entity yaw to a vector
and vice versa.
2017-01-23 07:38:39 +00:00
Elijah Duffy
efa54f9c46 Add chatcommand unregister and override API (#5076)
Introduces two functions to unregister and override chatcommands.
minetest.unregister_chatcommand("<name>") and
minetest.override_chatcommand("<name>", {<redifinition>})
2017-01-20 19:49:20 +01:00