Removed cServer::BroadcastChat() and cServer::SendMessage().
These two functions make it difficult to move to the new ticking system, and they aren't used anyway. If so required, they can be emulated by ForEachWorld / ForEachPlayer calls.
This commit is contained in:
parent
6914bf4c65
commit
c628ab03e9
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Lua binding: AllToLua
|
||||
** Generated automatically by tolua++-1.0.92 on 08/11/13 20:59:51.
|
||||
** Generated automatically by tolua++-1.0.92 on 08/12/13 08:16:46.
|
||||
*/
|
||||
|
||||
#ifndef __cplusplus
|
||||
@ -11435,80 +11435,6 @@ static int tolua_AllToLua_cServer_SetMaxPlayers00(lua_State* tolua_S)
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* method: BroadcastChat of class cServer */
|
||||
#ifndef TOLUA_DISABLE_tolua_AllToLua_cServer_BroadcastChat00
|
||||
static int tolua_AllToLua_cServer_BroadcastChat00(lua_State* tolua_S)
|
||||
{
|
||||
#ifndef TOLUA_RELEASE
|
||||
tolua_Error tolua_err;
|
||||
if (
|
||||
!tolua_isusertype(tolua_S,1,"cServer",0,&tolua_err) ||
|
||||
!tolua_iscppstring(tolua_S,2,0,&tolua_err) ||
|
||||
!tolua_isusertype(tolua_S,3,"const cClientHandle",1,&tolua_err) ||
|
||||
!tolua_isnoobj(tolua_S,4,&tolua_err)
|
||||
)
|
||||
goto tolua_lerror;
|
||||
else
|
||||
#endif
|
||||
{
|
||||
cServer* self = (cServer*) tolua_tousertype(tolua_S,1,0);
|
||||
const AString a_Message = ((const AString) tolua_tocppstring(tolua_S,2,0));
|
||||
const cClientHandle* a_Exclude = ((const cClientHandle*) tolua_tousertype(tolua_S,3,NULL));
|
||||
#ifndef TOLUA_RELEASE
|
||||
if (!self) tolua_error(tolua_S,"invalid 'self' in function 'BroadcastChat'", NULL);
|
||||
#endif
|
||||
{
|
||||
self->BroadcastChat(a_Message,a_Exclude);
|
||||
tolua_pushcppstring(tolua_S,(const char*)a_Message);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
#ifndef TOLUA_RELEASE
|
||||
tolua_lerror:
|
||||
tolua_error(tolua_S,"#ferror in function 'BroadcastChat'.",&tolua_err);
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* method: SendMessage of class cServer */
|
||||
#ifndef TOLUA_DISABLE_tolua_AllToLua_cServer_SendMessage00
|
||||
static int tolua_AllToLua_cServer_SendMessage00(lua_State* tolua_S)
|
||||
{
|
||||
#ifndef TOLUA_RELEASE
|
||||
tolua_Error tolua_err;
|
||||
if (
|
||||
!tolua_isusertype(tolua_S,1,"cServer",0,&tolua_err) ||
|
||||
!tolua_iscppstring(tolua_S,2,0,&tolua_err) ||
|
||||
!tolua_isusertype(tolua_S,3,"cPlayer",1,&tolua_err) ||
|
||||
!tolua_isboolean(tolua_S,4,1,&tolua_err) ||
|
||||
!tolua_isnoobj(tolua_S,5,&tolua_err)
|
||||
)
|
||||
goto tolua_lerror;
|
||||
else
|
||||
#endif
|
||||
{
|
||||
cServer* self = (cServer*) tolua_tousertype(tolua_S,1,0);
|
||||
const AString a_Message = ((const AString) tolua_tocppstring(tolua_S,2,0));
|
||||
cPlayer* a_Player = ((cPlayer*) tolua_tousertype(tolua_S,3,NULL));
|
||||
bool a_bExclude = ((bool) tolua_toboolean(tolua_S,4,false));
|
||||
#ifndef TOLUA_RELEASE
|
||||
if (!self) tolua_error(tolua_S,"invalid 'self' in function 'SendMessage'", NULL);
|
||||
#endif
|
||||
{
|
||||
self->SendMessage(a_Message,a_Player,a_bExclude);
|
||||
tolua_pushcppstring(tolua_S,(const char*)a_Message);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
#ifndef TOLUA_RELEASE
|
||||
tolua_lerror:
|
||||
tolua_error(tolua_S,"#ferror in function 'SendMessage'.",&tolua_err);
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
#endif //#ifndef TOLUA_DISABLE
|
||||
|
||||
/* method: GetServerID of class cServer */
|
||||
#ifndef TOLUA_DISABLE_tolua_AllToLua_cServer_GetServerID00
|
||||
static int tolua_AllToLua_cServer_GetServerID00(lua_State* tolua_S)
|
||||
@ -29850,8 +29776,6 @@ TOLUA_API int tolua_AllToLua_open (lua_State* tolua_S)
|
||||
tolua_function(tolua_S,"GetMaxPlayers",tolua_AllToLua_cServer_GetMaxPlayers00);
|
||||
tolua_function(tolua_S,"GetNumPlayers",tolua_AllToLua_cServer_GetNumPlayers00);
|
||||
tolua_function(tolua_S,"SetMaxPlayers",tolua_AllToLua_cServer_SetMaxPlayers00);
|
||||
tolua_function(tolua_S,"BroadcastChat",tolua_AllToLua_cServer_BroadcastChat00);
|
||||
tolua_function(tolua_S,"SendMessage",tolua_AllToLua_cServer_SendMessage00);
|
||||
tolua_function(tolua_S,"GetServerID",tolua_AllToLua_cServer_GetServerID00);
|
||||
tolua_endmodule(tolua_S);
|
||||
tolua_cclass(tolua_S,"cWorld","cWorld","",NULL);
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Lua binding: AllToLua
|
||||
** Generated automatically by tolua++-1.0.92 on 08/11/13 20:59:52.
|
||||
** Generated automatically by tolua++-1.0.92 on 08/12/13 08:16:46.
|
||||
*/
|
||||
|
||||
/* Exported function */
|
||||
|
@ -1355,12 +1355,14 @@ void cClientHandle::Tick(float a_Dt)
|
||||
m_ShouldCheckDownloaded = false;
|
||||
}
|
||||
|
||||
if (m_Player == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Send a ping packet:
|
||||
cTimer t1;
|
||||
if (
|
||||
(m_Player != NULL) && // Is logged in?
|
||||
(m_LastPingTime + cClientHandle::PING_TIME_MS <= t1.GetNowTime())
|
||||
)
|
||||
if ((m_LastPingTime + cClientHandle::PING_TIME_MS <= t1.GetNowTime()))
|
||||
{
|
||||
m_PingID++;
|
||||
m_PingStartTime = t1.GetNowTime();
|
||||
@ -1369,7 +1371,7 @@ void cClientHandle::Tick(float a_Dt)
|
||||
}
|
||||
|
||||
// Handle block break animation:
|
||||
if ((m_Player != NULL) && (m_BlockDigAnimStage > -1))
|
||||
if (m_BlockDigAnimStage > -1)
|
||||
{
|
||||
int lastAnimVal = m_BlockDigAnimStage;
|
||||
m_BlockDigAnimStage += (int)(m_BlockDigAnimSpeed * a_Dt);
|
||||
@ -1955,7 +1957,7 @@ void cClientHandle::SendConfirmPosition(void)
|
||||
if (!cRoot::Get()->GetPluginManager()->CallHookPlayerJoined(*m_Player))
|
||||
{
|
||||
// Broadcast that this player has joined the game! Yay~
|
||||
cRoot::Get()->GetServer()->BroadcastChat(m_Username + " joined the game!", this);
|
||||
m_Player->GetWorld()->BroadcastChat(m_Username + " joined the game!", this);
|
||||
}
|
||||
|
||||
SendPlayerMoveLook();
|
||||
|
@ -129,6 +129,12 @@ bool cPlayer::Initialize(cWorld * a_World)
|
||||
{
|
||||
if (super::Initialize(a_World))
|
||||
{
|
||||
// Remove the client handle from the server, it will be ticked from this object from now on
|
||||
if (m_ClientHandle != NULL)
|
||||
{
|
||||
cRoot::Get()->GetServer()->ClientMovedToWorld(m_ClientHandle);
|
||||
}
|
||||
|
||||
GetWorld()->AddPlayer(this);
|
||||
return true;
|
||||
}
|
||||
@ -175,18 +181,22 @@ void cPlayer::SpawnOn(cClientHandle & a_Client)
|
||||
|
||||
void cPlayer::Tick(float a_Dt, cChunk & a_Chunk)
|
||||
{
|
||||
if (!m_ClientHandle->IsPlaying())
|
||||
if (m_ClientHandle != NULL)
|
||||
{
|
||||
// We're not yet in the game, ignore everything
|
||||
return;
|
||||
if (!m_ClientHandle->IsPlaying())
|
||||
{
|
||||
// We're not yet in the game, ignore everything
|
||||
return;
|
||||
}
|
||||
m_ClientHandle->Tick(a_Dt);
|
||||
}
|
||||
|
||||
super::Tick(a_Dt, a_Chunk);
|
||||
|
||||
// set player swimming state
|
||||
SetSwimState( a_Chunk);
|
||||
// Set player swimming state
|
||||
SetSwimState(a_Chunk);
|
||||
|
||||
// handle air drowning stuff
|
||||
// Handle air drowning stuff
|
||||
HandleAir();
|
||||
|
||||
if (m_bDirtyPosition)
|
||||
|
@ -162,6 +162,16 @@ void cServer::RemoveClient(const cClientHandle * a_Client)
|
||||
|
||||
|
||||
|
||||
void cServer::ClientMovedToWorld(const cClientHandle * a_Client)
|
||||
{
|
||||
cCSLock Lock(m_CSClients);
|
||||
m_Clients.remove(const_cast<cClientHandle *>(a_Client));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
bool cServer::InitServer(cIniFile & a_SettingsIni)
|
||||
{
|
||||
m_Description = a_SettingsIni.GetValue ("Server", "Description", "MCServer! - In C++!").c_str();
|
||||
@ -298,23 +308,6 @@ void cServer::OnConnectionAccepted(cSocket & a_Socket)
|
||||
|
||||
|
||||
|
||||
void cServer::BroadcastChat(const AString & a_Message, const cClientHandle * a_Exclude)
|
||||
{
|
||||
cCSLock Lock(m_CSClients);
|
||||
for (ClientList::iterator itr = m_Clients.begin(); itr != m_Clients.end(); ++itr)
|
||||
{
|
||||
if ((*itr == a_Exclude) || !(*itr)->IsLoggedIn())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
(*itr)->SendChat(a_Message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
bool cServer::Tick(float a_Dt)
|
||||
{
|
||||
cRoot::Get()->TickCommands();
|
||||
@ -452,25 +445,6 @@ void cServer::BindBuiltInConsoleCommands(void)
|
||||
|
||||
|
||||
|
||||
void cServer::SendMessage(const AString & a_Message, cPlayer * a_Player /* = NULL */, bool a_bExclude /* = false */ )
|
||||
{
|
||||
if ((a_Player != NULL) && !a_bExclude)
|
||||
{
|
||||
cClientHandle * Client = a_Player->GetClientHandle();
|
||||
if (Client != NULL)
|
||||
{
|
||||
Client->SendChat(a_Message);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
BroadcastChat(a_Message, (a_Player != NULL) ? a_Player->GetClientHandle() : NULL);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void cServer::Shutdown(void)
|
||||
{
|
||||
m_ListenThreadIPv4.Stop();
|
||||
|
@ -46,8 +46,6 @@ public: // tolua_export
|
||||
int GetNumPlayers(void) const { return m_NumPlayers; }
|
||||
void SetMaxPlayers(int a_MaxPlayers) { m_MaxPlayers = a_MaxPlayers; }
|
||||
|
||||
void BroadcastChat(const AString & a_Message, const cClientHandle * a_Exclude = NULL);
|
||||
|
||||
// tolua_end
|
||||
|
||||
bool Start(void);
|
||||
@ -62,8 +60,6 @@ public: // tolua_export
|
||||
|
||||
void Shutdown(void);
|
||||
|
||||
void SendMessage(const AString & a_Message, cPlayer * a_Player = NULL, bool a_bExclude = false ); // tolua_export
|
||||
|
||||
void KickUser(int a_ClientID, const AString & a_Reason);
|
||||
void AuthenticateUser(int a_ClientID); // Called by cAuthenticator to auth the specified user
|
||||
|
||||
@ -79,6 +75,9 @@ public: // tolua_export
|
||||
|
||||
void RemoveClient(const cClientHandle * a_Client); // Removes the clienthandle from m_SocketThreads
|
||||
|
||||
/// Don't tick a_Client anymore, it will be ticked from its cPlayer instead
|
||||
void ClientMovedToWorld(const cClientHandle * a_Client);
|
||||
|
||||
CryptoPP::RSA::PrivateKey & GetPrivateKey(void) { return m_PrivateKey; }
|
||||
CryptoPP::RSA::PublicKey & GetPublicKey (void) { return m_PublicKey; }
|
||||
|
||||
@ -132,8 +131,8 @@ private:
|
||||
cListenThread m_ListenThreadIPv4;
|
||||
cListenThread m_ListenThreadIPv6;
|
||||
|
||||
cCriticalSection m_CSClients; // Locks client list
|
||||
cClientHandleList m_Clients; // Clients that are connected to the server
|
||||
cCriticalSection m_CSClients; ///< Locks client list
|
||||
cClientHandleList m_Clients; ///< Clients that are connected to the server and not yet assigned to a cWorld
|
||||
|
||||
cSocketThreads m_SocketThreads;
|
||||
|
||||
|
@ -578,7 +578,7 @@ void cWorld::Tick(float a_Dt)
|
||||
m_WorldAge = (Int64)(m_WorldAgeSecs * 20.0);
|
||||
m_TimeOfDay = (Int64)(m_TimeOfDaySecs * 20.0);
|
||||
|
||||
// Broadcase time update every 40 ticks (2 seconds)
|
||||
// Broadcast time update every 40 ticks (2 seconds)
|
||||
if (m_LastTimeUpdate < m_WorldAge - 40)
|
||||
{
|
||||
BroadcastTimeUpdate();
|
||||
|
Loading…
Reference in New Issue
Block a user