Started carefully moving to 1.2.2
Clients can get up to the login packet, after which the server tries to send chunks but in the wrong format and the client disconnects git-svn-id: http://mc-server.googlecode.com/svn/trunk@347 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
parent
b467f77689
commit
957ef3b297
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Lua binding: AllToLua
|
||||
** Generated automatically by tolua++-1.0.92 on 02/22/12 16:44:22.
|
||||
** Generated automatically by tolua++-1.0.92 on 03/01/12 18:04:42.
|
||||
*/
|
||||
|
||||
#ifndef __cplusplus
|
||||
@ -9728,6 +9728,35 @@ static int tolua_AllToLua_cWorld_GetBlock00(lua_State* tolua_S)
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* method: GetBlock of class cWorld */
|
||||
#ifndef TOLUA_DISABLE_tolua_AllToLua_cWorld_GetBlock01
|
||||
static int tolua_AllToLua_cWorld_GetBlock01(lua_State* tolua_S)
|
||||
{
|
||||
tolua_Error tolua_err;
|
||||
if (
|
||||
!tolua_isusertype(tolua_S,1,"cWorld",0,&tolua_err) ||
|
||||
(tolua_isvaluenil(tolua_S,2,&tolua_err) || !tolua_isusertype(tolua_S,2,"const Vector3i",0,&tolua_err)) ||
|
||||
!tolua_isnoobj(tolua_S,3,&tolua_err)
|
||||
)
|
||||
goto tolua_lerror;
|
||||
else
|
||||
{
|
||||
cWorld* self = (cWorld*) tolua_tousertype(tolua_S,1,0);
|
||||
const Vector3i* a_Pos = ((const Vector3i*) tolua_tousertype(tolua_S,2,0));
|
||||
#ifndef TOLUA_RELEASE
|
||||
if (!self) tolua_error(tolua_S,"invalid 'self' in function 'GetBlock'", NULL);
|
||||
#endif
|
||||
{
|
||||
char tolua_ret = (char) self->GetBlock(*a_Pos);
|
||||
tolua_pushnumber(tolua_S,(lua_Number)tolua_ret);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
tolua_lerror:
|
||||
return tolua_AllToLua_cWorld_GetBlock00(tolua_S);
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* method: GetBlockMeta of class cWorld */
|
||||
#ifndef TOLUA_DISABLE_tolua_AllToLua_cWorld_GetBlockMeta00
|
||||
static int tolua_AllToLua_cWorld_GetBlockMeta00(lua_State* tolua_S)
|
||||
@ -9766,6 +9795,35 @@ static int tolua_AllToLua_cWorld_GetBlockMeta00(lua_State* tolua_S)
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* method: GetBlockMeta of class cWorld */
|
||||
#ifndef TOLUA_DISABLE_tolua_AllToLua_cWorld_GetBlockMeta01
|
||||
static int tolua_AllToLua_cWorld_GetBlockMeta01(lua_State* tolua_S)
|
||||
{
|
||||
tolua_Error tolua_err;
|
||||
if (
|
||||
!tolua_isusertype(tolua_S,1,"cWorld",0,&tolua_err) ||
|
||||
(tolua_isvaluenil(tolua_S,2,&tolua_err) || !tolua_isusertype(tolua_S,2,"const Vector3i",0,&tolua_err)) ||
|
||||
!tolua_isnoobj(tolua_S,3,&tolua_err)
|
||||
)
|
||||
goto tolua_lerror;
|
||||
else
|
||||
{
|
||||
cWorld* self = (cWorld*) tolua_tousertype(tolua_S,1,0);
|
||||
const Vector3i* a_Pos = ((const Vector3i*) tolua_tousertype(tolua_S,2,0));
|
||||
#ifndef TOLUA_RELEASE
|
||||
if (!self) tolua_error(tolua_S,"invalid 'self' in function 'GetBlockMeta'", NULL);
|
||||
#endif
|
||||
{
|
||||
char tolua_ret = (char) self->GetBlockMeta(*a_Pos);
|
||||
tolua_pushnumber(tolua_S,(lua_Number)tolua_ret);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
tolua_lerror:
|
||||
return tolua_AllToLua_cWorld_GetBlockMeta00(tolua_S);
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* method: SetBlockMeta of class cWorld */
|
||||
#ifndef TOLUA_DISABLE_tolua_AllToLua_cWorld_SetBlockMeta00
|
||||
static int tolua_AllToLua_cWorld_SetBlockMeta00(lua_State* tolua_S)
|
||||
@ -9805,6 +9863,36 @@ static int tolua_AllToLua_cWorld_SetBlockMeta00(lua_State* tolua_S)
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* method: SetBlockMeta of class cWorld */
|
||||
#ifndef TOLUA_DISABLE_tolua_AllToLua_cWorld_SetBlockMeta01
|
||||
static int tolua_AllToLua_cWorld_SetBlockMeta01(lua_State* tolua_S)
|
||||
{
|
||||
tolua_Error tolua_err;
|
||||
if (
|
||||
!tolua_isusertype(tolua_S,1,"cWorld",0,&tolua_err) ||
|
||||
(tolua_isvaluenil(tolua_S,2,&tolua_err) || !tolua_isusertype(tolua_S,2,"const Vector3i",0,&tolua_err)) ||
|
||||
!tolua_isnumber(tolua_S,3,0,&tolua_err) ||
|
||||
!tolua_isnoobj(tolua_S,4,&tolua_err)
|
||||
)
|
||||
goto tolua_lerror;
|
||||
else
|
||||
{
|
||||
cWorld* self = (cWorld*) tolua_tousertype(tolua_S,1,0);
|
||||
const Vector3i* a_Pos = ((const Vector3i*) tolua_tousertype(tolua_S,2,0));
|
||||
char a_MetaData = ((char) tolua_tonumber(tolua_S,3,0));
|
||||
#ifndef TOLUA_RELEASE
|
||||
if (!self) tolua_error(tolua_S,"invalid 'self' in function 'SetBlockMeta'", NULL);
|
||||
#endif
|
||||
{
|
||||
self->SetBlockMeta(*a_Pos,a_MetaData);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
tolua_lerror:
|
||||
return tolua_AllToLua_cWorld_SetBlockMeta00(tolua_S);
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* method: DigBlock of class cWorld */
|
||||
#ifndef TOLUA_DISABLE_tolua_AllToLua_cWorld_DigBlock00
|
||||
static int tolua_AllToLua_cWorld_DigBlock00(lua_State* tolua_S)
|
||||
@ -15956,36 +16044,6 @@ static int tolua_set_cPacket_Login_m_Username(lua_State* tolua_S)
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* get function: m_MapSeed of class cPacket_Login */
|
||||
#ifndef TOLUA_DISABLE_tolua_get_cPacket_Login_m_MapSeed
|
||||
static int tolua_get_cPacket_Login_m_MapSeed(lua_State* tolua_S)
|
||||
{
|
||||
cPacket_Login* self = (cPacket_Login*) tolua_tousertype(tolua_S,1,0);
|
||||
#ifndef TOLUA_RELEASE
|
||||
if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'm_MapSeed'",NULL);
|
||||
#endif
|
||||
tolua_pushnumber(tolua_S,(lua_Number)self->m_MapSeed);
|
||||
return 1;
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* set function: m_MapSeed of class cPacket_Login */
|
||||
#ifndef TOLUA_DISABLE_tolua_set_cPacket_Login_m_MapSeed
|
||||
static int tolua_set_cPacket_Login_m_MapSeed(lua_State* tolua_S)
|
||||
{
|
||||
cPacket_Login* self = (cPacket_Login*) tolua_tousertype(tolua_S,1,0);
|
||||
#ifndef TOLUA_RELEASE
|
||||
tolua_Error tolua_err;
|
||||
if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'm_MapSeed'",NULL);
|
||||
if (!tolua_isnumber(tolua_S,2,0,&tolua_err))
|
||||
tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err);
|
||||
#endif
|
||||
self->m_MapSeed = ((long long) tolua_tonumber(tolua_S,2,0))
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* get function: m_LevelType of class cPacket_Login */
|
||||
#ifndef TOLUA_DISABLE_tolua_get_cPacket_Login_m_LevelType
|
||||
static int tolua_get_cPacket_Login_m_LevelType(lua_State* tolua_S)
|
||||
@ -16046,36 +16104,6 @@ static int tolua_set_cPacket_Login_m_ServerMode(lua_State* tolua_S)
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* get function: m_Dimension of class cPacket_Login */
|
||||
#ifndef TOLUA_DISABLE_tolua_get_cPacket_Login_m_Dimension
|
||||
static int tolua_get_cPacket_Login_m_Dimension(lua_State* tolua_S)
|
||||
{
|
||||
cPacket_Login* self = (cPacket_Login*) tolua_tousertype(tolua_S,1,0);
|
||||
#ifndef TOLUA_RELEASE
|
||||
if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'm_Dimension'",NULL);
|
||||
#endif
|
||||
tolua_pushnumber(tolua_S,(lua_Number)self->m_Dimension);
|
||||
return 1;
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* set function: m_Dimension of class cPacket_Login */
|
||||
#ifndef TOLUA_DISABLE_tolua_set_cPacket_Login_m_Dimension
|
||||
static int tolua_set_cPacket_Login_m_Dimension(lua_State* tolua_S)
|
||||
{
|
||||
cPacket_Login* self = (cPacket_Login*) tolua_tousertype(tolua_S,1,0);
|
||||
#ifndef TOLUA_RELEASE
|
||||
tolua_Error tolua_err;
|
||||
if (!self) tolua_error(tolua_S,"invalid 'self' in accessing variable 'm_Dimension'",NULL);
|
||||
if (!tolua_isnumber(tolua_S,2,0,&tolua_err))
|
||||
tolua_error(tolua_S,"#vinvalid type in variable assignment.",&tolua_err);
|
||||
#endif
|
||||
self->m_Dimension = ((char) tolua_tonumber(tolua_S,2,0))
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* get function: m_Difficulty of class cPacket_Login */
|
||||
#ifndef TOLUA_DISABLE_tolua_get_cPacket_Login_m_Difficulty
|
||||
static int tolua_get_cPacket_Login_m_Difficulty(lua_State* tolua_S)
|
||||
@ -17584,8 +17612,11 @@ TOLUA_API int tolua_AllToLua_open (lua_State* tolua_S)
|
||||
tolua_function(tolua_S,"SetBlock",tolua_AllToLua_cWorld_SetBlock00);
|
||||
tolua_function(tolua_S,"FastSetBlock",tolua_AllToLua_cWorld_FastSetBlock00);
|
||||
tolua_function(tolua_S,"GetBlock",tolua_AllToLua_cWorld_GetBlock00);
|
||||
tolua_function(tolua_S,"GetBlock",tolua_AllToLua_cWorld_GetBlock01);
|
||||
tolua_function(tolua_S,"GetBlockMeta",tolua_AllToLua_cWorld_GetBlockMeta00);
|
||||
tolua_function(tolua_S,"GetBlockMeta",tolua_AllToLua_cWorld_GetBlockMeta01);
|
||||
tolua_function(tolua_S,"SetBlockMeta",tolua_AllToLua_cWorld_SetBlockMeta00);
|
||||
tolua_function(tolua_S,"SetBlockMeta",tolua_AllToLua_cWorld_SetBlockMeta01);
|
||||
tolua_function(tolua_S,"DigBlock",tolua_AllToLua_cWorld_DigBlock00);
|
||||
tolua_function(tolua_S,"SendBlockTo",tolua_AllToLua_cWorld_SendBlockTo00);
|
||||
tolua_function(tolua_S,"GetSpawnX",tolua_AllToLua_cWorld_GetSpawnX00);
|
||||
@ -17909,10 +17940,8 @@ TOLUA_API int tolua_AllToLua_open (lua_State* tolua_S)
|
||||
tolua_beginmodule(tolua_S,"cPacket_Login");
|
||||
tolua_variable(tolua_S,"m_ProtocolVersion",tolua_get_cPacket_Login_m_ProtocolVersion,tolua_set_cPacket_Login_m_ProtocolVersion);
|
||||
tolua_variable(tolua_S,"m_Username",tolua_get_cPacket_Login_m_Username,tolua_set_cPacket_Login_m_Username);
|
||||
tolua_variable(tolua_S,"m_MapSeed",tolua_get_cPacket_Login_m_MapSeed,tolua_set_cPacket_Login_m_MapSeed);
|
||||
tolua_variable(tolua_S,"m_LevelType",tolua_get_cPacket_Login_m_LevelType,tolua_set_cPacket_Login_m_LevelType);
|
||||
tolua_variable(tolua_S,"m_ServerMode",tolua_get_cPacket_Login_m_ServerMode,tolua_set_cPacket_Login_m_ServerMode);
|
||||
tolua_variable(tolua_S,"m_Dimension",tolua_get_cPacket_Login_m_Dimension,tolua_set_cPacket_Login_m_Dimension);
|
||||
tolua_variable(tolua_S,"m_Difficulty",tolua_get_cPacket_Login_m_Difficulty,tolua_set_cPacket_Login_m_Difficulty);
|
||||
tolua_variable(tolua_S,"m_WorldHeight",tolua_get_cPacket_Login_unsigned_m_WorldHeight,tolua_set_cPacket_Login_unsigned_m_WorldHeight);
|
||||
tolua_variable(tolua_S,"m_MaxPlayers",tolua_get_cPacket_Login_unsigned_m_MaxPlayers,tolua_set_cPacket_Login_unsigned_m_MaxPlayers);
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Lua binding: AllToLua
|
||||
** Generated automatically by tolua++-1.0.92 on 02/22/12 16:44:22.
|
||||
** Generated automatically by tolua++-1.0.92 on 03/01/12 18:04:42.
|
||||
*/
|
||||
|
||||
/* Exported function */
|
||||
|
@ -144,3 +144,4 @@ public:
|
||||
|
||||
|
||||
|
||||
#define MINECRAFT_1_2_2 (1)
|
@ -89,7 +89,11 @@
|
||||
|
||||
cClientHandle::cClientHandle(const cSocket & a_Socket, int a_ViewDistance)
|
||||
: m_ViewDistance(a_ViewDistance)
|
||||
#if (MINECRAFT_1_2_2 == 1)
|
||||
, m_ProtocolVersion(28)
|
||||
#else
|
||||
, m_ProtocolVersion(23)
|
||||
#endif
|
||||
, m_Socket(a_Socket)
|
||||
, m_bDestroyed(false)
|
||||
, m_Player(NULL)
|
||||
@ -288,7 +292,9 @@ void cClientHandle::Authenticate(void)
|
||||
LoginResponse.m_ProtocolVersion = m_Player->GetUniqueID();
|
||||
//LoginResponse.m_Username = "";
|
||||
LoginResponse.m_ServerMode = m_Player->GetGameMode(); // set gamemode from player.
|
||||
#if (MINECRAFT_1_2_2 != 1)
|
||||
LoginResponse.m_MapSeed = cRoot::Get()->GetWorld()->GetWorldSeed();
|
||||
#endif
|
||||
LoginResponse.m_Dimension = 0;
|
||||
LoginResponse.m_MaxPlayers = (unsigned char)cRoot::Get()->GetWorld()->GetMaxPlayers();
|
||||
LoginResponse.m_Difficulty = 2;
|
||||
@ -620,7 +626,18 @@ void cClientHandle::HandlePing(void)
|
||||
|
||||
void cClientHandle::HandleHandshake(cPacket_Handshake * a_Packet)
|
||||
{
|
||||
#if (MINECRAFT_1_2_2 == 1)
|
||||
AStringVector UserData = StringSplit( a_Packet->m_Username, ";" ); // "FakeTruth;localhost:25565"
|
||||
if( UserData.size() == 0 )
|
||||
{
|
||||
Kick("Could not receive username");
|
||||
return;
|
||||
}
|
||||
m_Username = UserData[0];
|
||||
#else
|
||||
m_Username = a_Packet->m_Username;
|
||||
#endif
|
||||
|
||||
LOG("HANDSHAKE %s", m_Username.c_str());
|
||||
|
||||
if (cRoot::Get()->GetWorld()->GetNumPlayers() >= cRoot::Get()->GetWorld()->GetMaxPlayers())
|
||||
@ -1786,7 +1803,7 @@ void cClientHandle::CheckIfWorldDownloaded(void)
|
||||
return;
|
||||
}
|
||||
cCSLock Lock(m_CSChunkLists);
|
||||
if (m_ChunksToSend.empty())
|
||||
if (m_ChunksToSend.size() < 4*4)
|
||||
{
|
||||
SendConfirmPosition();
|
||||
}
|
||||
|
@ -21,10 +21,16 @@ int cPacket_Login::Parse(const char * a_Data, int a_Size)
|
||||
m_Username.clear();
|
||||
HANDLE_PACKET_READ(ReadInteger, m_ProtocolVersion, TotalBytes);
|
||||
HANDLE_PACKET_READ(ReadString16, m_Username, TotalBytes);
|
||||
#if (MINECRAFT_1_2_2 != 1 )
|
||||
HANDLE_PACKET_READ(ReadLong, m_MapSeed, TotalBytes);
|
||||
#endif
|
||||
HANDLE_PACKET_READ(ReadString16, m_LevelType, TotalBytes);
|
||||
HANDLE_PACKET_READ(ReadInteger, m_ServerMode, TotalBytes);
|
||||
#if (MINECRAFT_1_2_2 == 1 )
|
||||
HANDLE_PACKET_READ(ReadInteger, m_Dimension, TotalBytes);
|
||||
#else
|
||||
HANDLE_PACKET_READ(ReadByte, m_Dimension, TotalBytes);
|
||||
#endif
|
||||
HANDLE_PACKET_READ(ReadByte, m_Difficulty, TotalBytes);
|
||||
HANDLE_PACKET_READ(ReadByte, m_WorldHeight, TotalBytes);
|
||||
HANDLE_PACKET_READ(ReadByte, m_MaxPlayers, TotalBytes);
|
||||
@ -40,10 +46,16 @@ void cPacket_Login::Serialize(AString & a_Data) const
|
||||
AppendByte (a_Data, m_PacketID);
|
||||
AppendInteger (a_Data, m_ProtocolVersion);
|
||||
AppendString16(a_Data, m_Username);
|
||||
#if (MINECRAFT_1_2_2 != 1 )
|
||||
AppendLong (a_Data, m_MapSeed);
|
||||
#endif
|
||||
AppendString16(a_Data, m_LevelType);
|
||||
AppendInteger (a_Data, m_ServerMode);
|
||||
#if (MINECRAFT_1_2_2 == 1 )
|
||||
AppendInteger (a_Data, m_Dimension);
|
||||
#else
|
||||
AppendByte (a_Data, m_Dimension);
|
||||
#endif
|
||||
AppendByte (a_Data, m_Difficulty);
|
||||
AppendByte (a_Data, m_WorldHeight);
|
||||
AppendByte (a_Data, m_MaxPlayers);
|
||||
|
@ -12,7 +12,9 @@ class cPacket_Login : public cPacket //tolua_export
|
||||
public:
|
||||
cPacket_Login()
|
||||
: m_ProtocolVersion( 0 )
|
||||
#if (MINECRAFT_1_2_2 != 1)
|
||||
, m_MapSeed( 0 )
|
||||
#endif
|
||||
, m_ServerMode( 0 )
|
||||
, m_Dimension( 0 )
|
||||
, m_Difficulty( 0 )
|
||||
@ -25,12 +27,19 @@ public:
|
||||
virtual int Parse(const char * a_Data, int a_Size) override;
|
||||
virtual void Serialize(AString & a_Data) const override;
|
||||
|
||||
// 1.2.2 http://wiki.vg/Protocol#Login_Request_.280x01.29
|
||||
int m_ProtocolVersion; //tolua_export
|
||||
AString m_Username; //tolua_export
|
||||
long long m_MapSeed; //tolua_export
|
||||
#if (MINECRAFT_1_2_2 != 1)
|
||||
long long m_MapSeed;
|
||||
#endif
|
||||
AString m_LevelType; //tolua_export
|
||||
int m_ServerMode; //tolua_export
|
||||
char m_Dimension; //tolua_export
|
||||
#if (MINECRAFT_1_2_2 == 1 )
|
||||
int m_Dimension;
|
||||
#else
|
||||
char m_Dimension;
|
||||
#endif
|
||||
char m_Difficulty; //tolua_export
|
||||
unsigned char m_WorldHeight; //tolua_export
|
||||
unsigned char m_MaxPlayers; //tolua_export
|
||||
|
Loading…
Reference in New Issue
Block a user