1
0

Chat packet handled in the new way; fixed missing packet sending for inventory slot.

Again, API change! cPlugin:OnChat() has had its parameters swapped, to match all the other callbacks - Player first, Message second

git-svn-id: http://mc-server.googlecode.com/svn/trunk@751 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com
2012-08-18 10:38:15 +00:00
parent 2691e8daed
commit 1b5eaa92b5
18 changed files with 213 additions and 210 deletions

View File

@@ -191,55 +191,6 @@ bool cPluginManager::CallHook(PluginHook a_Hook, unsigned int a_NumArgs, ...)
{
HookMap::iterator Plugins = m_Hooks.find( a_Hook );
// Special case for chat hook, since you can also bind commands (bound commands don't use chat hook)
if (a_Hook == HOOK_CHAT)
{
if (a_NumArgs != 2)
{
return false;
}
va_list argptr;
va_start( argptr, a_NumArgs);
const char * Message = va_arg(argptr, const char* );
cPlayer * Player = va_arg(argptr, cPlayer * );
va_end (argptr);
#ifdef USE_SQUIRREL
if (m_SquirrelCommandBinder->HandleCommand( std::string( Message ), Player))
{
return true;
}
#endif
if (m_LuaCommandBinder->HandleCommand( std::string( Message ), Player))
{
return true;
}
//Check if it was a standard command (starts with a slash)
if(Message[0] == '/')
{
Player->SendMessage("Unknown Command");
LOGINFO("Player \"%s\" issued command: %s", Player->GetName().c_str(), Message);
return true; //Cancel sending
}
if (Plugins == m_Hooks.end())
{
return false;
}
for (PluginList::iterator itr = Plugins->second.begin(); itr != Plugins->second.end(); ++itr)
{
if ((*itr)->OnChat(Message, Player))
{
return true;
}
}
return false;
}
if (Plugins == m_Hooks.end())
{
return false;
@@ -452,6 +403,49 @@ bool cPluginManager::CallHookBlockPlace(cPlayer * a_Player, int a_BlockX, int a_
bool cPluginManager::CallHookChat(cPlayer * a_Player, const AString & a_Message)
{
#ifdef USE_SQUIRREL
if (m_SquirrelCommandBinder->HandleCommand(a_Message, a_Player))
{
return true;
}
#endif // USE_SQUIRREL
if (m_LuaCommandBinder->HandleCommand(a_Message, a_Player))
{
return true;
}
//Check if it was a standard command (starts with a slash)
if (a_Message[0] == '/')
{
a_Player->SendMessage("Unknown Command");
LOGINFO("Player \"%s\" issued an unknown command: \"%s\"", a_Player->GetName().c_str(), a_Message.c_str());
return true; // Cancel sending
}
HookMap::iterator Plugins = m_Hooks.find(HOOK_CHAT);
if (Plugins == m_Hooks.end())
{
return false;
}
for (PluginList::iterator itr = Plugins->second.begin(); itr != Plugins->second.end(); ++itr)
{
if ((*itr)->OnChat(a_Player, a_Message))
{
return true;
}
}
return false;
}
bool cPluginManager::CallHookChunkGenerating(cWorld * a_World, int a_ChunkX, int a_ChunkZ, cLuaChunk * a_LuaChunk)
{
HookMap::iterator Plugins = m_Hooks.find(HOOK_CHUNK_GENERATING);