parent
7d05e4402f
commit
0a68994f48
@ -38,6 +38,7 @@ marmot21
|
|||||||
Masy98
|
Masy98
|
||||||
mathiascode
|
mathiascode
|
||||||
mborland
|
mborland
|
||||||
|
MeMuXin
|
||||||
mgueydan
|
mgueydan
|
||||||
MikeHunsinger
|
MikeHunsinger
|
||||||
mtilden
|
mtilden
|
||||||
|
@ -818,6 +818,10 @@ cPluginManager.AddHook(cPluginManager.HOOK_CHAT, OnChatMessage);
|
|||||||
{
|
{
|
||||||
Notes = "Called after a player has broken a block.",
|
Notes = "Called after a player has broken a block.",
|
||||||
},
|
},
|
||||||
|
HOOK_PLAYER_CROUCHED =
|
||||||
|
{
|
||||||
|
Notes = "Called when a player crouches.",
|
||||||
|
},
|
||||||
HOOK_PLAYER_DESTROYED =
|
HOOK_PLAYER_DESTROYED =
|
||||||
{
|
{
|
||||||
Notes = "Called when the {{cPlayer}} object is destroyed - a player has disconnected.",
|
Notes = "Called when the {{cPlayer}} object is destroyed - a player has disconnected.",
|
||||||
|
@ -13,6 +13,7 @@ return
|
|||||||
{ Name = "Player", Type = "{{cPlayer}}", Notes = "The player who has moved. The object already has the new position stored in it." },
|
{ Name = "Player", Type = "{{cPlayer}}", Notes = "The player who has moved. The object already has the new position stored in it." },
|
||||||
{ Name = "OldPosition", Type = "{{Vector3d}}", Notes = "The old position." },
|
{ Name = "OldPosition", Type = "{{Vector3d}}", Notes = "The old position." },
|
||||||
{ Name = "NewPosition", Type = "{{Vector3d}}", Notes = "The new position." },
|
{ Name = "NewPosition", Type = "{{Vector3d}}", Notes = "The new position." },
|
||||||
|
{ Name = "PreviousIsOnGround", Type = "{{boolean}}", Notes = "Specifies if the player was standing on a solid block." },
|
||||||
},
|
},
|
||||||
Returns = [[
|
Returns = [[
|
||||||
If the function returns true, movement is prohibited.</p>
|
If the function returns true, movement is prohibited.</p>
|
||||||
|
@ -80,10 +80,11 @@ public:
|
|||||||
virtual bool OnPlayerFoodLevelChange (cPlayer & a_Player, int a_NewFoodLevel) = 0;
|
virtual bool OnPlayerFoodLevelChange (cPlayer & a_Player, int a_NewFoodLevel) = 0;
|
||||||
virtual bool OnPlayerJoined (cPlayer & a_Player) = 0;
|
virtual bool OnPlayerJoined (cPlayer & a_Player) = 0;
|
||||||
virtual bool OnPlayerLeftClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, char a_Status) = 0;
|
virtual bool OnPlayerLeftClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, char a_Status) = 0;
|
||||||
virtual bool OnPlayerMoving (cPlayer & a_Player, const Vector3d & a_OldPosition, const Vector3d & a_NewPosition) = 0;
|
virtual bool OnPlayerMoving (cPlayer & a_Player, const Vector3d & a_OldPosition, const Vector3d & a_NewPosition, bool a_PreviousIsOnGround) = 0;
|
||||||
virtual bool OnPlayerOpeningWindow(cPlayer & a_Player, cWindow & a_Window) = 0;
|
virtual bool OnPlayerOpeningWindow (cPlayer & a_Player, cWindow & a_Window) = 0;
|
||||||
virtual bool OnPlayerPlacedBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange) = 0;
|
virtual bool OnPlayerPlacedBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange) = 0;
|
||||||
virtual bool OnPlayerPlacingBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange) = 0;
|
virtual bool OnPlayerPlacingBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange) = 0;
|
||||||
|
virtual bool OnPlayerCrouched (cPlayer & a_Player) = 0;
|
||||||
virtual bool OnPlayerRightClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ) = 0;
|
virtual bool OnPlayerRightClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ) = 0;
|
||||||
virtual bool OnPlayerRightClickingEntity(cPlayer & a_Player, cEntity & a_Entity) = 0;
|
virtual bool OnPlayerRightClickingEntity(cPlayer & a_Player, cEntity & a_Entity) = 0;
|
||||||
virtual bool OnPlayerShooting (cPlayer & a_Player) = 0;
|
virtual bool OnPlayerShooting (cPlayer & a_Player) = 0;
|
||||||
|
@ -665,9 +665,9 @@ bool cPluginLua::OnPlayerLeftClick(cPlayer & a_Player, int a_BlockX, int a_Block
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool cPluginLua::OnPlayerMoving(cPlayer & a_Player, const Vector3d & a_OldPosition, const Vector3d & a_NewPosition)
|
bool cPluginLua::OnPlayerMoving(cPlayer & a_Player, const Vector3d & a_OldPosition, const Vector3d & a_NewPosition, bool a_PreviousIsOnGround)
|
||||||
{
|
{
|
||||||
return CallSimpleHooks(cPluginManager::HOOK_PLAYER_MOVING, &a_Player, a_OldPosition, a_NewPosition);
|
return CallSimpleHooks(cPluginManager::HOOK_PLAYER_MOVING, &a_Player, a_OldPosition, a_NewPosition, a_PreviousIsOnGround);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -718,6 +718,16 @@ bool cPluginLua::OnPlayerPlacingBlock(cPlayer & a_Player, const sSetBlock & a_Bl
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
bool cPluginLua::OnPlayerCrouched(cPlayer & a_Player)
|
||||||
|
{
|
||||||
|
return CallSimpleHooks(cPluginManager::HOOK_PLAYER_CROUCHED,
|
||||||
|
&a_Player);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool cPluginLua::OnPlayerRightClick(cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ)
|
bool cPluginLua::OnPlayerRightClick(cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ)
|
||||||
{
|
{
|
||||||
return CallSimpleHooks(cPluginManager::HOOK_PLAYER_RIGHT_CLICK, &a_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ);
|
return CallSimpleHooks(cPluginManager::HOOK_PLAYER_RIGHT_CLICK, &a_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ);
|
||||||
@ -1093,6 +1103,7 @@ const char * cPluginLua::GetHookFnName(int a_HookType)
|
|||||||
case cPluginManager::HOOK_PLAYER_OPENING_WINDOW: return "OnPlayerOpeningWindow";
|
case cPluginManager::HOOK_PLAYER_OPENING_WINDOW: return "OnPlayerOpeningWindow";
|
||||||
case cPluginManager::HOOK_PLAYER_PLACED_BLOCK: return "OnPlayerPlacedBlock";
|
case cPluginManager::HOOK_PLAYER_PLACED_BLOCK: return "OnPlayerPlacedBlock";
|
||||||
case cPluginManager::HOOK_PLAYER_PLACING_BLOCK: return "OnPlayerPlacingBlock";
|
case cPluginManager::HOOK_PLAYER_PLACING_BLOCK: return "OnPlayerPlacingBlock";
|
||||||
|
case cPluginManager::HOOK_PLAYER_CROUCHED: return "OnPlayerCrouched";
|
||||||
case cPluginManager::HOOK_PLAYER_RIGHT_CLICK: return "OnPlayerRightClick";
|
case cPluginManager::HOOK_PLAYER_RIGHT_CLICK: return "OnPlayerRightClick";
|
||||||
case cPluginManager::HOOK_PLAYER_RIGHT_CLICKING_ENTITY: return "OnPlayerRightClickingEntity";
|
case cPluginManager::HOOK_PLAYER_RIGHT_CLICKING_ENTITY: return "OnPlayerRightClickingEntity";
|
||||||
case cPluginManager::HOOK_PLAYER_SHOOTING: return "OnPlayerShooting";
|
case cPluginManager::HOOK_PLAYER_SHOOTING: return "OnPlayerShooting";
|
||||||
|
@ -101,10 +101,11 @@ public:
|
|||||||
virtual bool OnPlayerFoodLevelChange (cPlayer & a_Player, int a_NewFoodLevel) override;
|
virtual bool OnPlayerFoodLevelChange (cPlayer & a_Player, int a_NewFoodLevel) override;
|
||||||
virtual bool OnPlayerJoined (cPlayer & a_Player) override;
|
virtual bool OnPlayerJoined (cPlayer & a_Player) override;
|
||||||
virtual bool OnPlayerLeftClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, char a_Status) override;
|
virtual bool OnPlayerLeftClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, char a_Status) override;
|
||||||
virtual bool OnPlayerMoving (cPlayer & a_Player, const Vector3d & a_OldPosition, const Vector3d & a_NewPosition) override;
|
virtual bool OnPlayerMoving (cPlayer & a_Player, const Vector3d & a_OldPosition, const Vector3d & a_NewPosition, bool a_PreviousIsOnGround) override;
|
||||||
virtual bool OnPlayerOpeningWindow(cPlayer & a_Player, cWindow & a_Window) override;
|
virtual bool OnPlayerOpeningWindow (cPlayer & a_Player, cWindow & a_Window) override;
|
||||||
virtual bool OnPlayerPlacedBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange) override;
|
virtual bool OnPlayerPlacedBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange) override;
|
||||||
virtual bool OnPlayerPlacingBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange) override;
|
virtual bool OnPlayerPlacingBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange) override;
|
||||||
|
virtual bool OnPlayerCrouched (cPlayer & a_Player) override;
|
||||||
virtual bool OnPlayerRightClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ) override;
|
virtual bool OnPlayerRightClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ) override;
|
||||||
virtual bool OnPlayerRightClickingEntity(cPlayer & a_Player, cEntity & a_Entity) override;
|
virtual bool OnPlayerRightClickingEntity(cPlayer & a_Player, cEntity & a_Entity) override;
|
||||||
virtual bool OnPlayerShooting (cPlayer & a_Player) override;
|
virtual bool OnPlayerShooting (cPlayer & a_Player) override;
|
||||||
|
@ -794,11 +794,11 @@ bool cPluginManager::CallHookPlayerLeftClick(cPlayer & a_Player, int a_BlockX, i
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool cPluginManager::CallHookPlayerMoving(cPlayer & a_Player, const Vector3d & a_OldPosition, const Vector3d & a_NewPosition)
|
bool cPluginManager::CallHookPlayerMoving(cPlayer & a_Player, const Vector3d & a_OldPosition, const Vector3d & a_NewPosition, bool a_PreviousIsOnGround)
|
||||||
{
|
{
|
||||||
return GenericCallHook(HOOK_PLAYER_MOVING, [&](cPlugin * a_Plugin)
|
return GenericCallHook(HOOK_PLAYER_MOVING, [&](cPlugin * a_Plugin)
|
||||||
{
|
{
|
||||||
return a_Plugin->OnPlayerMoving(a_Player, a_OldPosition, a_NewPosition);
|
return a_Plugin->OnPlayerMoving(a_Player, a_OldPosition, a_NewPosition, a_PreviousIsOnGround);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -846,6 +846,19 @@ bool cPluginManager::CallHookPlayerPlacingBlock(cPlayer & a_Player, const sSetBl
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
bool cPluginManager::CallHookPlayerCrouched(cPlayer & a_Player)
|
||||||
|
{
|
||||||
|
return GenericCallHook(HOOK_PLAYER_CROUCHED, [&](cPlugin * a_Plugin)
|
||||||
|
{
|
||||||
|
return a_Plugin->OnPlayerCrouched(a_Player);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool cPluginManager::CallHookPlayerRightClick(cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ)
|
bool cPluginManager::CallHookPlayerRightClick(cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ)
|
||||||
{
|
{
|
||||||
return GenericCallHook(HOOK_PLAYER_RIGHT_CLICK, [&](cPlugin * a_Plugin)
|
return GenericCallHook(HOOK_PLAYER_RIGHT_CLICK, [&](cPlugin * a_Plugin)
|
||||||
|
@ -117,6 +117,7 @@ public:
|
|||||||
HOOK_PLAYER_OPENING_WINDOW,
|
HOOK_PLAYER_OPENING_WINDOW,
|
||||||
HOOK_PLAYER_PLACED_BLOCK,
|
HOOK_PLAYER_PLACED_BLOCK,
|
||||||
HOOK_PLAYER_PLACING_BLOCK,
|
HOOK_PLAYER_PLACING_BLOCK,
|
||||||
|
HOOK_PLAYER_CROUCHED,
|
||||||
HOOK_PLAYER_RIGHT_CLICK,
|
HOOK_PLAYER_RIGHT_CLICK,
|
||||||
HOOK_PLAYER_RIGHT_CLICKING_ENTITY,
|
HOOK_PLAYER_RIGHT_CLICKING_ENTITY,
|
||||||
HOOK_PLAYER_SHOOTING,
|
HOOK_PLAYER_SHOOTING,
|
||||||
@ -261,10 +262,11 @@ public:
|
|||||||
bool CallHookPlayerFoodLevelChange (cPlayer & a_Player, int a_NewFoodLevel);
|
bool CallHookPlayerFoodLevelChange (cPlayer & a_Player, int a_NewFoodLevel);
|
||||||
bool CallHookPlayerJoined (cPlayer & a_Player);
|
bool CallHookPlayerJoined (cPlayer & a_Player);
|
||||||
bool CallHookPlayerLeftClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, char a_Status);
|
bool CallHookPlayerLeftClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, char a_Status);
|
||||||
bool CallHookPlayerMoving (cPlayer & a_Player, const Vector3d & a_OldPosition, const Vector3d & a_NewPosition);
|
bool CallHookPlayerMoving (cPlayer & a_Player, const Vector3d & a_OldPosition, const Vector3d & a_NewPosition, bool a_PreviousIsOnGround);
|
||||||
bool CallHookPlayerOpeningWindow (cPlayer & a_Player, cWindow & a_Window);
|
bool CallHookPlayerOpeningWindow (cPlayer & a_Player, cWindow & a_Window);
|
||||||
bool CallHookPlayerPlacedBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange);
|
bool CallHookPlayerPlacedBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange);
|
||||||
bool CallHookPlayerPlacingBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange);
|
bool CallHookPlayerPlacingBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange);
|
||||||
|
bool CallHookPlayerCrouched (cPlayer & a_Player);
|
||||||
bool CallHookPlayerRightClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ);
|
bool CallHookPlayerRightClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ);
|
||||||
bool CallHookPlayerRightClickingEntity(cPlayer & a_Player, cEntity & a_Entity);
|
bool CallHookPlayerRightClickingEntity(cPlayer & a_Player, cEntity & a_Entity);
|
||||||
bool CallHookPlayerShooting (cPlayer & a_Player);
|
bool CallHookPlayerShooting (cPlayer & a_Player);
|
||||||
|
@ -869,7 +869,7 @@ void cClientHandle::HandlePlayerPos(double a_PosX, double a_PosY, double a_PosZ,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cRoot::Get()->GetPluginManager()->CallHookPlayerMoving(*m_Player, OldPosition, NewPosition))
|
if (cRoot::Get()->GetPluginManager()->CallHookPlayerMoving(*m_Player, OldPosition, NewPosition, PreviousIsOnGround))
|
||||||
{
|
{
|
||||||
SendPlayerMoveLook();
|
SendPlayerMoveLook();
|
||||||
return;
|
return;
|
||||||
|
@ -863,12 +863,17 @@ void cPlayer::SetFlyingMaxSpeed(double a_Speed)
|
|||||||
void cPlayer::SetCrouch(bool a_IsCrouched)
|
void cPlayer::SetCrouch(bool a_IsCrouched)
|
||||||
{
|
{
|
||||||
// Set the crouch status, broadcast to all visible players
|
// Set the crouch status, broadcast to all visible players
|
||||||
|
|
||||||
if (a_IsCrouched == m_IsCrouched)
|
if (a_IsCrouched == m_IsCrouched)
|
||||||
{
|
{
|
||||||
// No change
|
// No change
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (a_IsCrouched)
|
||||||
|
{
|
||||||
|
cRoot::Get()->GetPluginManager()->CallHookPlayerCrouched(*this);
|
||||||
|
}
|
||||||
|
|
||||||
m_IsCrouched = a_IsCrouched;
|
m_IsCrouched = a_IsCrouched;
|
||||||
m_World->BroadcastEntityMetadata(*this);
|
m_World->BroadcastEntityMetadata(*this);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user