Skip to content
Snippets Groups Projects
Commit a953ff4d authored by rubenwardy's avatar rubenwardy Committed by est31
Browse files

Fix segfaults caused by the Environment not being initialized yet

parent 6b39bc68
No related branches found
No related tags found
No related merge requests found
......@@ -2192,7 +2192,7 @@ These functions return the leftover itemstack.
* `minetest.add_particlespawner(particlespawner definition)`
* Add a `ParticleSpawner`, an object that spawns an amount of particles over `time` seconds
* Returns an `id`
* Returns an `id`, and -1 if adding didn't succeed
* `Deprecated: minetest.add_particlespawner(amount, time,
minpos, maxpos,
minvel, maxvel,
......
......@@ -2857,6 +2857,10 @@ std::string Server::getBanDescription(const std::string &ip_or_name)
void Server::notifyPlayer(const char *name, const std::wstring &msg)
{
// m_env will be NULL if the server is initializing
if (!m_env)
return;
Player *player = m_env->getPlayer(name);
if (!player)
return;
......@@ -2870,6 +2874,10 @@ void Server::notifyPlayer(const char *name, const std::wstring &msg)
bool Server::showFormspec(const char *playername, const std::string &formspec,
const std::string &formname)
{
// m_env will be NULL if the server is initializing
if (!m_env)
return false;
Player *player = m_env->getPlayer(playername);
if (!player)
return false;
......@@ -3039,6 +3047,10 @@ void Server::spawnParticle(const std::string &playername, v3f pos,
float expirationtime, float size, bool
collisiondetection, bool vertical, const std::string &texture)
{
// m_env will be NULL if the server is initializing
if (!m_env)
return;
u16 peer_id = PEER_ID_INEXISTENT;
if (playername != "") {
Player* player = m_env->getPlayer(playername.c_str());
......@@ -3057,6 +3069,10 @@ u32 Server::addParticleSpawner(u16 amount, float spawntime,
bool collisiondetection, bool vertical, const std::string &texture,
const std::string &playername)
{
// m_env will be NULL if the server is initializing
if (!m_env)
return -1;
u16 peer_id = PEER_ID_INEXISTENT;
if (playername != "") {
Player* player = m_env->getPlayer(playername.c_str());
......@@ -3088,6 +3104,10 @@ u32 Server::addParticleSpawner(u16 amount, float spawntime,
void Server::deleteParticleSpawner(const std::string &playername, u32 id)
{
// m_env will be NULL if the server is initializing
if (!m_env)
throw ServerError("Can't delete particle spawners during initialisation!");
u16 peer_id = PEER_ID_INEXISTENT;
if (playername != "") {
Player* player = m_env->getPlayer(playername.c_str());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment