1
0

Added the "/regeneratechunk" command that regenerates either current chunk or a chunk specified with x, z parameters. TODO: permissions - we don't want guests erasing our chunks!

git-svn-id: http://mc-server.googlecode.com/svn/trunk@454 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com
2012-04-10 11:22:11 +00:00
parent e009569060
commit c51a4b9469
10 changed files with 104 additions and 37 deletions

View File

@@ -485,13 +485,40 @@ bool cServer::Command( cClientHandle & a_Client, const char* a_Cmd )
{
if (split.size() != 2)
{
a_Client.Send(cPacket_Chat(cChatColor::Green + "Invalid syntax, expected 1 parameter, the numebr of chunks to stream"));
a_Client.Send(cPacket_Chat(cChatColor::Green + "Invalid syntax, expected 1 parameter, the number of chunks to stream"));
return false;
}
int dist = atol(split[1].c_str());
a_Client.SetViewDistance(dist);
return true;
}
if (split[0].compare("/regeneratechunk") == 0)
{
int ChunkX, ChunkZ;
if (split.size() == 1)
{
// Regenerate current chunk
ChunkX = a_Client.GetPlayer()->GetChunkX();
ChunkZ = a_Client.GetPlayer()->GetChunkZ();
}
else if (split.size() == 3)
{
// Regenerate chunk in params
ChunkX = atoi(split[1].c_str());
ChunkZ = atoi(split[2].c_str());
}
else
{
a_Client.Send(cPacket_Chat(cChatColor::Green + "Invalid syntax, expected either 0 (current chunk) or 2 (x, z) parameters"));
return false;
}
AString Msg;
Printf(Msg, "Regenerating chunk [%d, %d]", ChunkX, ChunkZ);
a_Client.Send(cPacket_Chat(cChatColor::Green + Msg));
a_Client.GetPlayer()->GetWorld()->RegenerateChunk(ChunkX, ChunkZ);
return true;
}
return false;
}