Skip to content

Commit

Permalink
Added a new param to OnPlayerEditingBook and changed the names
Browse files Browse the repository at this point in the history
  • Loading branch information
Seadragon91 committed Aug 4, 2017
1 parent e424f3a commit 47e914b
Show file tree
Hide file tree
Showing 10 changed files with 31 additions and 17 deletions.
2 changes: 1 addition & 1 deletion Server/Plugins/APIDump/Hooks/OnPlayerEditedBook.lua
Expand Up @@ -12,7 +12,7 @@ return
Params =
{
{ Name = "Player", Type = "cPlayer", Notes = "The player that edited the book" },
{ Name = "BookContent", Type = "cBookContent", Notes = "The class that contains the current info of the book" },
{ Name = "NewContent", Type = "cBookContent", Notes = "Contains the new content of the book" },
{ Name = "IsSigned", Type = "boolean", Notes = "Player has signed the book" },
},
Returns = [[
Expand Down
3 changes: 2 additions & 1 deletion Server/Plugins/APIDump/Hooks/OnPlayerEditingBook.lua
Expand Up @@ -12,7 +12,8 @@ return
Params =
{
{ Name = "Player", Type = "cPlayer", Notes = "The player that is editing the book" },
{ Name = "BookContent", Type = "cBookContent", Notes = "The class that contains the current info of the book" },
{ Name = "OriginalContent", Type = "cBookContent", Notes = "Contains the original content of the book" },
{ Name = "NewContent", Type = "cBookContent", Notes = "Contains the new content of the book" },
{ Name = "IsSigned", Type = "boolean", Notes = "Player is signing the book" },
},
Returns = [[
Expand Down
11 changes: 11 additions & 0 deletions src/Bindings/LuaState.cpp
Expand Up @@ -864,6 +864,17 @@ void cLuaState::Push(const AStringVector & a_Vector)



void cLuaState::Push(const cBookContent & a_Content)
{
ASSERT(IsValid());
auto c = new cBookContent(a_Content);
tolua_pushusertype_and_takeownership(m_LuaState, c, "cBookContent");
}





void cLuaState::Push(const char * a_Value)
{
ASSERT(IsValid());
Expand Down
1 change: 1 addition & 0 deletions src/Bindings/LuaState.h
Expand Up @@ -610,6 +610,7 @@ class cLuaState
void Push(const AString & a_String);
void Push(const AStringMap & a_Dictionary);
void Push(const AStringVector & a_Vector);
void Push(const cBookContent & a_Content);
void Push(const char * a_Value);
void Push(const cNil & a_Nil);
void Push(const cRef & a_Ref);
Expand Down
4 changes: 2 additions & 2 deletions src/Bindings/Plugin.h
Expand Up @@ -74,8 +74,8 @@ class cPlugin
virtual bool OnPlayerBrokenBlock (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) = 0;
virtual bool OnPlayerDestroyed (cPlayer & a_Player) = 0;
virtual bool OnPlayerEating (cPlayer & a_Player) = 0;
virtual bool OnPlayerEditedBook (cPlayer & a_Player, cBookContent & a_BookContent, bool a_IsSigned) = 0;
virtual bool OnPlayerEditingBook (cPlayer & a_Player, cBookContent & a_BookContent, bool a_IsSigned) = 0;
virtual bool OnPlayerEditedBook (cPlayer & a_Player, const cBookContent & a_NewContent, bool a_IsSigned) = 0;
virtual bool OnPlayerEditingBook (cPlayer & a_Player, const cBookContent & a_OriginalContent, cBookContent & a_NewContent, bool a_IsSigned) = 0;
virtual bool OnPlayerFished (cPlayer & a_Player, const cItems & a_Reward) = 0;
virtual bool OnPlayerFishing (cPlayer & a_Player, cItems & a_Reward) = 0;
virtual bool OnPlayerFoodLevelChange (cPlayer & a_Player, int a_NewFoodLevel) = 0;
Expand Down
8 changes: 4 additions & 4 deletions src/Bindings/PluginLua.cpp
Expand Up @@ -595,18 +595,18 @@ bool cPluginLua::OnPlayerEating(cPlayer & a_Player)



bool cPluginLua::OnPlayerEditedBook(cPlayer & a_Player, cBookContent & a_BookContent, bool a_IsSigned)
bool cPluginLua::OnPlayerEditedBook(cPlayer & a_Player, const cBookContent & a_NewContent, bool a_IsSigned)
{
return CallSimpleHooks(cPluginManager::HOOK_PLAYER_EDITED_BOOK, &a_Player, &a_BookContent, a_IsSigned);
return CallSimpleHooks(cPluginManager::HOOK_PLAYER_EDITED_BOOK, &a_Player, a_NewContent, a_IsSigned);
}





bool cPluginLua::OnPlayerEditingBook(cPlayer & a_Player, cBookContent & a_BookContent, bool a_IsSigned)
bool cPluginLua::OnPlayerEditingBook(cPlayer & a_Player, const cBookContent & a_OriginalContent, cBookContent & a_NewContent, bool a_IsSigned)
{
return CallSimpleHooks(cPluginManager::HOOK_PLAYER_EDITING_BOOK, &a_Player, &a_BookContent, a_IsSigned);
return CallSimpleHooks(cPluginManager::HOOK_PLAYER_EDITING_BOOK, &a_Player, a_OriginalContent, &a_NewContent, a_IsSigned);
}


Expand Down
4 changes: 2 additions & 2 deletions src/Bindings/PluginLua.h
Expand Up @@ -95,8 +95,8 @@ class cPluginLua :
virtual bool OnPlayerBrokenBlock (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override;
virtual bool OnPlayerDestroyed (cPlayer & a_Player) override;
virtual bool OnPlayerEating (cPlayer & a_Player) override;
virtual bool OnPlayerEditedBook (cPlayer & a_Player, cBookContent & a_BookContent, bool a_IsSigned) override;
virtual bool OnPlayerEditingBook (cPlayer & a_Player, cBookContent & a_BookContent, bool a_IsSigned) override;
virtual bool OnPlayerEditedBook (cPlayer & a_Player, const cBookContent & a_NewContent, bool a_IsSigned) override;
virtual bool OnPlayerEditingBook (cPlayer & a_Player, const cBookContent & a_OriginalContent, cBookContent & a_NewContent, bool a_IsSigned) override;
virtual bool OnPlayerFished (cPlayer & a_Player, const cItems & a_Reward) override;
virtual bool OnPlayerFishing (cPlayer & a_Player, cItems & a_Reward) override;
virtual bool OnPlayerFoodLevelChange (cPlayer & a_Player, int a_NewFoodLevel) override;
Expand Down
8 changes: 4 additions & 4 deletions src/Bindings/PluginManager.cpp
Expand Up @@ -885,14 +885,14 @@ bool cPluginManager::CallHookPlayerEating(cPlayer & a_Player)



bool cPluginManager::CallHookPlayerEditedBook(cPlayer & a_Player, cBookContent & a_BookContent, bool a_IsSigned)
bool cPluginManager::CallHookPlayerEditedBook(cPlayer & a_Player, const cBookContent & a_NewContent, bool a_IsSigned)
{
FIND_HOOK(HOOK_PLAYER_EDITED_BOOK);
VERIFY_HOOK;

for (PluginList::iterator itr = Plugins->second.begin(); itr != Plugins->second.end(); ++itr)
{
if ((*itr)->OnPlayerEditedBook(a_Player, a_BookContent, a_IsSigned))
if ((*itr)->OnPlayerEditedBook(a_Player, a_NewContent, a_IsSigned))
{
return true;
}
Expand All @@ -904,14 +904,14 @@ bool cPluginManager::CallHookPlayerEditedBook(cPlayer & a_Player, cBookContent &



bool cPluginManager::CallHookPlayerEditingBook(cPlayer & a_Player, cBookContent & a_BookContent, bool a_IsSigned)
bool cPluginManager::CallHookPlayerEditingBook(cPlayer & a_Player, const cBookContent & a_OriginalContent, cBookContent & a_NewContent, bool a_IsSigned)
{
FIND_HOOK(HOOK_PLAYER_EDITING_BOOK);
VERIFY_HOOK;

for (PluginList::iterator itr = Plugins->second.begin(); itr != Plugins->second.end(); ++itr)
{
if ((*itr)->OnPlayerEditingBook(a_Player, a_BookContent, a_IsSigned))
if ((*itr)->OnPlayerEditingBook(a_Player, a_OriginalContent, a_NewContent, a_IsSigned))
{
return true;
}
Expand Down
4 changes: 2 additions & 2 deletions src/Bindings/PluginManager.h
Expand Up @@ -254,8 +254,8 @@ class cPluginManager
bool CallHookPlayerBrokenBlock (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta);
bool CallHookPlayerDestroyed (cPlayer & a_Player);
bool CallHookPlayerEating (cPlayer & a_Player);
bool CallHookPlayerEditedBook (cPlayer & a_Player, cBookContent & a_BookContent, bool a_IsSigned);
bool CallHookPlayerEditingBook (cPlayer & a_Player, cBookContent & a_BookContent, bool a_IsSigned);
bool CallHookPlayerEditedBook (cPlayer & a_Player, const cBookContent & a_NewContent, bool a_IsSigned);
bool CallHookPlayerEditingBook (cPlayer & a_Player, const cBookContent & a_OrigialContent, cBookContent & a_NewContent, bool a_IsSigned);
bool CallHookPlayerFished (cPlayer & a_Player, const cItems & a_Reward);
bool CallHookPlayerFishing (cPlayer & a_Player, cItems a_Reward);
bool CallHookPlayerFoodLevelChange (cPlayer & a_Player, int a_NewFoodLevel);
Expand Down
3 changes: 2 additions & 1 deletion src/Protocol/Protocol_1_9.cpp
Expand Up @@ -2938,7 +2938,8 @@ void cProtocol_1_9_0::HandleVanillaPluginMessage(cByteBuffer & a_ByteBuffer, con
cBookContent::ParseFromNBT(0, BookItem.m_BookContent, NBT);
}

if (cRoot::Get()->GetPluginManager()->CallHookPlayerEditingBook(Player, BookItem.m_BookContent, IsSigned))
// The equipped item contains the old book content
if (cRoot::Get()->GetPluginManager()->CallHookPlayerEditingBook(Player, Player.GetEquippedItem().m_BookContent, BookItem.m_BookContent, IsSigned))
{
// Plugin denied the editing of the book
return;
Expand Down

0 comments on commit 47e914b

Please sign in to comment.