Cuberite
A lightweight, fast and extensible game server for Minecraft
PluginLua.h
Go to the documentation of this file.
1 
2 // PluginLua.h
3 
4 // Declares the cPluginLua class representing a plugin written in Lua
5 
6 
7 
8 
9 
10 #pragma once
11 
12 #include "Plugin.h"
13 #include "LuaState.h"
14 
15 // Names for the global variables through which the plugin is identified in its LuaState
16 #define LUA_PLUGIN_NAME_VAR_NAME "_CuberiteInternal_PluginName"
17 #define LUA_PLUGIN_INSTANCE_VAR_NAME "_CuberiteInternal_PluginInstance"
18 
19 
20 
21 
22 
23 // tolua_begin
24 class cPluginLua :
25  public cPlugin
26 {
27  typedef cPlugin super;
28 
29 public:
30  // tolua_end
31 
39  class cOperation
40  {
41  public:
42  cOperation(cPluginLua & a_Plugin) :
43  m_Plugin(a_Plugin),
44  m_Lock(a_Plugin.m_LuaState)
45  {
46  }
47 
49 
50  protected:
52 
55  } ;
56 
57 
58 
59  cPluginLua(const AString & a_PluginDirectory, cDeadlockDetect & a_DeadlockDetect);
60  virtual ~cPluginLua() override;
61 
62  virtual void OnDisable(void) override;
63  virtual bool Load(void) override;
64  virtual void Unload(void) override;
65 
66  virtual void Tick(float a_Dt) override;
67 
68  virtual bool OnBlockSpread (cWorld & a_World, int a_BlockX, int a_BlockY, int a_BlockZ, eSpreadSource a_Source) override;
69  virtual bool OnBlockToPickups (cWorld & a_World, Vector3i a_BlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, const cBlockEntity * a_BlockEntity, const cEntity * a_Digger, const cItem * a_Tool, cItems & a_Pickups) override;
70  virtual bool OnBrewingCompleting (cWorld & a_World, cBrewingstandEntity & a_BrewingstandEntity) override;
71  virtual bool OnBrewingCompleted (cWorld & a_World, cBrewingstandEntity & a_BrewingstandEntity) override;
72  virtual bool OnChat (cPlayer & a_Player, AString & a_Message) override;
73  virtual bool OnChunkAvailable (cWorld & a_World, int a_ChunkX, int a_ChunkZ) override;
74  virtual bool OnChunkGenerated (cWorld & a_World, int a_ChunkX, int a_ChunkZ, cChunkDesc * a_ChunkDesc) override;
75  virtual bool OnChunkGenerating (cWorld & a_World, int a_ChunkX, int a_ChunkZ, cChunkDesc * a_ChunkDesc) override;
76  virtual bool OnChunkUnloaded (cWorld & a_World, int a_ChunkX, int a_ChunkZ) override;
77  virtual bool OnChunkUnloading (cWorld & a_World, int a_ChunkX, int a_ChunkZ) override;
78  virtual bool OnCollectingPickup (cPlayer & a_Player, cPickup & a_Pickup) override;
79  virtual bool OnCraftingNoRecipe (cPlayer & a_Player, cCraftingGrid & a_Grid, cCraftingRecipe & a_Recipe) override;
80  virtual bool OnDisconnect (cClientHandle & a_Client, const AString & a_Reason) override;
81  virtual bool OnEntityAddEffect (cEntity & a_Entity, int a_EffectType, int a_EffectDurationTicks, int a_EffectIntensity, double a_DistanceModifier) override;
82  virtual bool OnEntityChangingWorld (cEntity & a_Entity, cWorld & a_World) override;
83  virtual bool OnEntityChangedWorld (cEntity & a_Entity, cWorld & a_World) override;
84  virtual bool OnExecuteCommand (cPlayer * a_Player, const AStringVector & a_Split, const AString & a_EntireCommand, cPluginManager::CommandResult & a_Result) override;
85  virtual bool OnExploded (cWorld & a_World, double a_ExplosionSize, bool a_CanCauseFire, double a_X, double a_Y, double a_Z, eExplosionSource a_Source, void * a_SourceData) override;
86  virtual bool OnExploding (cWorld & a_World, double & a_ExplosionSize, bool & a_CanCauseFire, double a_X, double a_Y, double a_Z, eExplosionSource a_Source, void * a_SourceData) override;
87  virtual bool OnHandshake (cClientHandle & a_Client, const AString & a_Username) override;
88  virtual bool OnHopperPullingItem (cWorld & a_World, cHopperEntity & a_Hopper, int a_DstSlotNum, cBlockEntityWithItems & a_SrcEntity, int a_SrcSlotNum) override;
89  virtual bool OnHopperPushingItem (cWorld & a_World, cHopperEntity & a_Hopper, int a_SrcSlotNum, cBlockEntityWithItems & a_DstEntity, int a_DstSlotNum) override;
90  virtual bool OnKilled (cEntity & a_Victim, TakeDamageInfo & a_TDI, AString & a_DeathMessage) override;
91  virtual bool OnKilling (cEntity & a_Victim, cEntity * a_Killer, TakeDamageInfo & a_TDI) override;
92  virtual bool OnLogin (cClientHandle & a_Client, UInt32 a_ProtocolVersion, const AString & a_Username) override;
93  virtual bool OnLoginForge (cClientHandle & a_Client, const AStringMap & a_Mods) override;
94  virtual bool OnPlayerAnimation (cPlayer & a_Player, int a_Animation) override;
95  virtual bool OnPlayerBreakingBlock (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override;
96  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;
97  virtual bool OnPlayerDestroyed (cPlayer & a_Player) override;
98  virtual bool OnPlayerEating (cPlayer & a_Player) override;
99  virtual bool OnPlayerFished (cPlayer & a_Player, const cItems & a_Reward) override;
100  virtual bool OnPlayerFishing (cPlayer & a_Player, cItems & a_Reward) override;
101  virtual bool OnPlayerFoodLevelChange (cPlayer & a_Player, int a_NewFoodLevel) override;
102  virtual bool OnPlayerJoined (cPlayer & a_Player) override;
103  virtual bool OnPlayerLeftClick (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, char a_Status) override;
104  virtual bool OnPlayerMoving (cPlayer & a_Player, const Vector3d & a_OldPosition, const Vector3d & a_NewPosition) override;
105  virtual bool OnPlayerOpeningWindow(cPlayer & a_Player, cWindow & a_Window) override;
106  virtual bool OnPlayerPlacedBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange) override;
107  virtual bool OnPlayerPlacingBlock (cPlayer & a_Player, const sSetBlock & a_BlockChange) override;
108  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;
109  virtual bool OnPlayerRightClickingEntity(cPlayer & a_Player, cEntity & a_Entity) override;
110  virtual bool OnPlayerShooting (cPlayer & a_Player) override;
111  virtual bool OnPlayerSpawned (cPlayer & a_Player) override;
112  virtual bool OnEntityTeleport (cEntity & a_Entity, const Vector3d & a_OldPosition, const Vector3d & a_NewPosition) override;
113  virtual bool OnPlayerTossingItem (cPlayer & a_Player) override;
114  virtual bool OnPlayerUsedBlock (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override;
115  virtual bool OnPlayerUsedItem (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;
116  virtual bool OnPlayerUsingBlock (cPlayer & a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override;
117  virtual bool OnPlayerUsingItem (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;
118  virtual bool OnPluginMessage (cClientHandle & a_Client, const AString & a_Channel, const AString & a_Message) override;
119  virtual bool OnPluginsLoaded (void) override;
120  virtual bool OnPostCrafting (cPlayer & a_Player, cCraftingGrid & a_Grid, cCraftingRecipe & a_Recipe) override;
121  virtual bool OnPreCrafting (cPlayer & a_Player, cCraftingGrid & a_Grid, cCraftingRecipe & a_Recipe) override;
122  virtual bool OnProjectileHitBlock (cProjectileEntity & a_Projectile, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_Face, const Vector3d & a_BlockHitPos) override;
123  virtual bool OnProjectileHitEntity (cProjectileEntity & a_Projectile, cEntity & a_HitEntity) override;
124  virtual bool OnServerPing (cClientHandle & a_ClientHandle, AString & a_ServerDescription, int & a_OnlinePlayersCount, int & a_MaxPlayersCount, AString & a_Favicon) override;
125  virtual bool OnSpawnedEntity (cWorld & a_World, cEntity & a_Entity) override;
126  virtual bool OnSpawnedMonster (cWorld & a_World, cMonster & a_Monster) override;
127  virtual bool OnSpawningEntity (cWorld & a_World, cEntity & a_Entity) override;
128  virtual bool OnSpawningMonster (cWorld & a_World, cMonster & a_Monster) override;
129  virtual bool OnTakeDamage (cEntity & a_Receiver, TakeDamageInfo & a_TakeDamageInfo) override;
130  virtual bool OnUpdatedSign (cWorld & a_World, int a_BlockX, int a_BlockY, int a_BlockZ, const AString & a_Line1, const AString & a_Line2, const AString & a_Line3, const AString & a_Line4, cPlayer * a_Player) override;
131  virtual bool OnUpdatingSign (cWorld & a_World, int a_BlockX, int a_BlockY, int a_BlockZ, AString & a_Line1, AString & a_Line2, AString & a_Line3, AString & a_Line4, cPlayer * a_Player) override;
132  virtual bool OnWeatherChanged (cWorld & a_World) override;
133  virtual bool OnWeatherChanging (cWorld & a_World, eWeather & a_NewWeather) override;
134  virtual bool OnWorldStarted (cWorld & a_World) override;
135  virtual bool OnWorldTick (cWorld & a_World, std::chrono::milliseconds a_Dt, std::chrono::milliseconds a_LastTickDurationMSec) override;
136 
138  bool CanAddOldStyleHook(int a_HookType);
139 
141  static const char * GetHookFnName(int a_HookType);
142 
145  bool AddHookCallback(int a_HookType, cLuaState::cCallbackPtr && a_Callback);
146 
151  const AString & a_FunctionName,
152  cLuaState & a_ForeignState,
153  int a_ParamStart,
154  int a_ParamEnd
155  );
156 
158  template <typename FnT, typename... Args>
159  bool Call(FnT a_Fn, Args && ... a_Args)
160  {
161  return cOperation(*this)().Call(a_Fn, a_Args...);
162  }
163 
164 protected:
166  typedef std::vector<cLuaState::cCallbackPtr> cLuaCallbacks;
167 
169  typedef std::map<int, cLuaCallbacks> cHookMap;
170 
171 
174 
176  cHookMap m_HookMap;
177 
180 
181 
183  void Close(void);
184 
186  void ClearWebTabs(void);
187 
191  template <typename... Args>
192  bool CallSimpleHooks(int a_HookType, Args && ... a_Args)
193  {
194  cOperation op(*this);
195  auto & hooks = m_HookMap[a_HookType];
196  bool res = false;
197  for (auto & hook: hooks)
198  {
199  hook->Call(std::forward<Args>(a_Args)..., cLuaState::Return, res);
200  if (res)
201  {
202  // Hook wants to terminate the chain processing
203  return true;
204  }
205  }
206  return false;
207  }
208 } ; // tolua_export
209 
210 
211 
212 
std::vector< cLuaState::cCallbackPtr > cLuaCallbacks
Provides an array of Lua function references.
Definition: PluginLua.h:166
virtual bool OnPlayerPlacedBlock(cPlayer &a_Player, const sSetBlock &a_BlockChange) override
Definition: PluginLua.cpp:695
bool CallSimpleHooks(int a_HookType, Args &&...a_Args)
Calls a hook that has the simple format - single bool return value specifying whether the chain shoul...
Definition: PluginLua.h:192
virtual bool OnBrewingCompleted(cWorld &a_World, cBrewingstandEntity &a_BrewingstandEntity) override
Definition: PluginLua.cpp:254
virtual bool OnWeatherChanging(cWorld &a_World, eWeather &a_NewWeather) override
Definition: PluginLua.cpp:990
eWeather
Definition: Defines.h:151
virtual bool OnChunkUnloaded(cWorld &a_World, int a_ChunkX, int a_ChunkZ) override
Definition: PluginLua.cpp:323
int CallFunctionFromForeignState(const AString &a_FunctionName, cLuaState &a_ForeignState, int a_ParamStart, int a_ParamEnd)
Calls a function in this plugin&#39;s LuaState with parameters copied over from a_ForeignState.
Definition: PluginLua.cpp:1148
void Close(void)
Releases all Lua references, notifies and removes all m_Resettables[] and closes the m_LuaState...
Definition: PluginLua.cpp:58
virtual void OnDisable(void) override
Called as the last call into the plugin before it is unloaded.
Definition: PluginLua.cpp:198
virtual bool OnChunkAvailable(cWorld &a_World, int a_ChunkX, int a_ChunkZ) override
Definition: PluginLua.cpp:296
virtual bool OnWorldStarted(cWorld &a_World) override
Definition: PluginLua.cpp:1014
virtual bool OnProjectileHitBlock(cProjectileEntity &a_Projectile, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_Face, const Vector3d &a_BlockHitPos) override
Definition: PluginLua.cpp:851
virtual bool OnPlayerOpeningWindow(cPlayer &a_Player, cWindow &a_Window) override
Definition: PluginLua.cpp:686
unsigned char BLOCKTYPE
The datatype used by blockdata.
Definition: ChunkDef.h:42
void ClearWebTabs(void)
Removes all WebTabs currently registered for this plugin from the WebAdmin.
Definition: PluginLua.cpp:1182
virtual bool OnEntityChangedWorld(cEntity &a_Entity, cWorld &a_World) override
Definition: PluginLua.cpp:386
virtual ~cPluginLua() override
Definition: PluginLua.cpp:48
virtual bool OnPlayerFished(cPlayer &a_Player, const cItems &a_Reward) override
Definition: PluginLua.cpp:631
Definition: Player.h:27
virtual bool OnKilling(cEntity &a_Victim, cEntity *a_Killer, TakeDamageInfo &a_TDI) override
Definition: PluginLua.cpp:550
virtual bool OnEntityAddEffect(cEntity &a_Entity, int a_EffectType, int a_EffectDurationTicks, int a_EffectIntensity, double a_DistanceModifier) override
Definition: PluginLua.cpp:368
virtual bool OnSpawnedEntity(cWorld &a_World, cEntity &a_Entity) override
Definition: PluginLua.cpp:893
cLuaState & operator()(void)
Definition: PluginLua.h:48
cLuaState::cLock m_Lock
RAII lock for the Lua state.
Definition: PluginLua.h:54
virtual bool OnPlayerRightClickingEntity(cPlayer &a_Player, cEntity &a_Entity) override
Definition: PluginLua.cpp:730
virtual bool OnBlockSpread(cWorld &a_World, int a_BlockX, int a_BlockY, int a_BlockZ, eSpreadSource a_Source) override
Calls the specified hook with the params given.
Definition: PluginLua.cpp:221
virtual bool OnWeatherChanged(cWorld &a_World) override
Definition: PluginLua.cpp:981
virtual bool OnPlayerShooting(cPlayer &a_Player) override
Definition: PluginLua.cpp:739
cDeadlockDetect & m_DeadlockDetect
The DeadlockDetect object to which the plugin&#39;s CS is tracked.
Definition: PluginLua.h:179
virtual bool OnPlayerTossingItem(cPlayer &a_Player) override
Definition: PluginLua.cpp:757
bool AddHookCallback(int a_HookType, cLuaState::cCallbackPtr &&a_Callback)
Adds a Lua callback to be called for the specified hook.
Definition: PluginLua.cpp:1138
unsigned char NIBBLETYPE
The datatype used by nibbledata (meta, light, skylight)
Definition: ChunkDef.h:45
virtual bool OnPluginMessage(cClientHandle &a_Client, const AString &a_Channel, const AString &a_Message) override
Definition: PluginLua.cpp:802
Definition: Pickup.h:18
Encapsulates a Lua state and provides some syntactic sugar for common operations. ...
Definition: LuaState.h:57
virtual bool OnCraftingNoRecipe(cPlayer &a_Player, cCraftingGrid &a_Grid, cCraftingRecipe &a_Recipe) override
Definition: PluginLua.cpp:350
A RAII-style mutex lock for accessing the internal LuaState.
Definition: PluginLua.h:39
virtual bool OnServerPing(cClientHandle &a_ClientHandle, AString &a_ServerDescription, int &a_OnlinePlayersCount, int &a_MaxPlayersCount, AString &a_Favicon) override
Definition: PluginLua.cpp:869
virtual bool OnPlayerLeftClick(cPlayer &a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, char a_Status) override
Definition: PluginLua.cpp:659
virtual bool OnLogin(cClientHandle &a_Client, UInt32 a_ProtocolVersion, const AString &a_Username) override
Definition: PluginLua.cpp:559
virtual bool OnUpdatedSign(cWorld &a_World, int a_BlockX, int a_BlockY, int a_BlockZ, const AString &a_Line1, const AString &a_Line2, const AString &a_Line3, const AString &a_Line4, cPlayer *a_Player) override
Definition: PluginLua.cpp:938
virtual bool OnExploded(cWorld &a_World, double a_ExplosionSize, bool a_CanCauseFire, double a_X, double a_Y, double a_Z, eExplosionSource a_Source, void *a_SourceData) override
Definition: PluginLua.cpp:419
cLuaState m_LuaState
The plugin&#39;s Lua state.
Definition: PluginLua.h:173
virtual bool OnChunkGenerating(cWorld &a_World, int a_ChunkX, int a_ChunkZ, cChunkDesc *a_ChunkDesc) override
Definition: PluginLua.cpp:314
virtual bool OnExploding(cWorld &a_World, double &a_ExplosionSize, bool &a_CanCauseFire, double a_X, double a_Y, double a_Z, eExplosionSource a_Source, void *a_SourceData) override
Definition: PluginLua.cpp:459
cHookMap m_HookMap
Hooks that the plugin has registered.
Definition: PluginLua.h:176
std::vector< AString > AStringVector
Definition: StringUtils.h:14
virtual bool OnPlayerJoined(cPlayer &a_Player) override
Definition: PluginLua.cpp:650
virtual bool OnUpdatingSign(cWorld &a_World, int a_BlockX, int a_BlockY, int a_BlockZ, AString &a_Line1, AString &a_Line2, AString &a_Line3, AString &a_Line4, cPlayer *a_Player) override
Definition: PluginLua.cpp:952
virtual bool OnHopperPullingItem(cWorld &a_World, cHopperEntity &a_Hopper, int a_DstSlotNum, cBlockEntityWithItems &a_SrcEntity, int a_SrcSlotNum) override
Definition: PluginLua.cpp:508
cPlugin super
Definition: PluginLua.h:27
virtual bool OnKilled(cEntity &a_Victim, TakeDamageInfo &a_TDI, AString &a_DeathMessage) override
Definition: PluginLua.cpp:526
Definition: World.h:65
std::map< int, cLuaCallbacks > cHookMap
Maps hook types into arrays of Lua function references to call for each hook type.
Definition: PluginLua.h:169
virtual bool OnPlayerUsingBlock(cPlayer &a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override
Definition: PluginLua.cpp:784
virtual bool Load(void) override
Loads and initializes the plugin.
Definition: PluginLua.cpp:82
virtual bool OnPreCrafting(cPlayer &a_Player, cCraftingGrid &a_Grid, cCraftingRecipe &a_Recipe) override
Definition: PluginLua.cpp:842
virtual bool OnCollectingPickup(cPlayer &a_Player, cPickup &a_Pickup) override
Definition: PluginLua.cpp:341
virtual bool OnPlayerEating(cPlayer &a_Player) override
Definition: PluginLua.cpp:613
std::unique_ptr< cCallback > cCallbackPtr
Definition: LuaState.h:328
cOperation(cPluginLua &a_Plugin)
Definition: PluginLua.h:42
virtual bool OnSpawnedMonster(cWorld &a_World, cMonster &a_Monster) override
Definition: PluginLua.cpp:902
std::map< AString, AString > AStringMap
A string dictionary, used for key-value pairs.
Definition: StringUtils.h:18
virtual bool OnPluginsLoaded(void) override
Definition: PluginLua.cpp:811
virtual bool OnBlockToPickups(cWorld &a_World, Vector3i a_BlockPos, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, const cBlockEntity *a_BlockEntity, const cEntity *a_Digger, const cItem *a_Tool, cItems &a_Pickups) override
Definition: PluginLua.cpp:230
virtual bool OnPlayerFoodLevelChange(cPlayer &a_Player, int a_NewFoodLevel) override
Definition: PluginLua.cpp:622
Definition: Plugin.h:19
virtual bool OnChunkGenerated(cWorld &a_World, int a_ChunkX, int a_ChunkZ, cChunkDesc *a_ChunkDesc) override
Definition: PluginLua.cpp:305
virtual bool OnHopperPushingItem(cWorld &a_World, cHopperEntity &a_Hopper, int a_SrcSlotNum, cBlockEntityWithItems &a_DstEntity, int a_DstSlotNum) override
Definition: PluginLua.cpp:517
virtual bool OnPlayerUsingItem(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
Definition: PluginLua.cpp:793
static const cRet Return
Definition: LuaState.h:446
eExplosionSource
The source of an explosion.
Definition: BlockID.h:1202
cPluginLua(const AString &a_PluginDirectory, cDeadlockDetect &a_DeadlockDetect)
Definition: PluginLua.cpp:36
virtual bool OnProjectileHitEntity(cProjectileEntity &a_Projectile, cEntity &a_HitEntity) override
Definition: PluginLua.cpp:860
std::string AString
Definition: StringUtils.h:13
eBlockFace
Block face constants, used in PlayerDigging and PlayerBlockPlacement packets and bbox collision calc...
Definition: Defines.h:29
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
Definition: PluginLua.cpp:721
virtual bool OnPostCrafting(cPlayer &a_Player, cCraftingGrid &a_Grid, cCraftingRecipe &a_Recipe) override
Definition: PluginLua.cpp:833
virtual bool OnSpawningMonster(cWorld &a_World, cMonster &a_Monster) override
Definition: PluginLua.cpp:920
virtual bool OnSpawningEntity(cWorld &a_World, cEntity &a_Entity) override
Definition: PluginLua.cpp:911
virtual void Tick(float a_Dt) override
Definition: PluginLua.cpp:212
Provides a RAII-style locking for the LuaState.
Definition: LuaState.h:146
virtual bool OnHandshake(cClientHandle &a_Client, const AString &a_Username) override
Definition: PluginLua.cpp:499
bool CanAddOldStyleHook(int a_HookType)
Returns true if the plugin contains the function for the specified hook type, using the old-style reg...
Definition: PluginLua.cpp:1032
virtual bool OnWorldTick(cWorld &a_World, std::chrono::milliseconds a_Dt, std::chrono::milliseconds a_LastTickDurationMSec) override
Definition: PluginLua.cpp:1023
virtual bool OnChat(cPlayer &a_Player, AString &a_Message) override
Definition: PluginLua.cpp:272
virtual bool OnPlayerMoving(cPlayer &a_Player, const Vector3d &a_OldPosition, const Vector3d &a_NewPosition) override
Definition: PluginLua.cpp:668
Definition: Entity.h:73
virtual bool OnDisconnect(cClientHandle &a_Client, const AString &a_Reason) override
Definition: PluginLua.cpp:359
virtual void Unload(void) override
Unloads the plugin.
Definition: PluginLua.cpp:187
unsigned int UInt32
Definition: Globals.h:113
Represents a UI window.
Definition: Window.h:53
virtual bool OnPlayerUsedBlock(cPlayer &a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override
Definition: PluginLua.cpp:766
cPluginLua & m_Plugin
Definition: PluginLua.h:51
virtual bool OnTakeDamage(cEntity &a_Receiver, TakeDamageInfo &a_TakeDamageInfo) override
Definition: PluginLua.cpp:929
bool Call(FnT a_Fn, Args &&...a_Args)
Call a Lua function residing in the plugin.
Definition: PluginLua.h:159
virtual bool OnLoginForge(cClientHandle &a_Client, const AStringMap &a_Mods) override
Definition: PluginLua.cpp:568
virtual bool OnPlayerAnimation(cPlayer &a_Player, int a_Animation) override
Definition: PluginLua.cpp:577
virtual bool OnPlayerSpawned(cPlayer &a_Player) override
Definition: PluginLua.cpp:748
virtual bool OnEntityTeleport(cEntity &a_Entity, const Vector3d &a_OldPosition, const Vector3d &a_NewPosition) override
Definition: PluginLua.cpp:677
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
Definition: PluginLua.cpp:595
virtual bool OnEntityChangingWorld(cEntity &a_Entity, cWorld &a_World) override
Definition: PluginLua.cpp:377
virtual bool OnExecuteCommand(cPlayer *a_Player, const AStringVector &a_Split, const AString &a_EntireCommand, cPluginManager::CommandResult &a_Result) override
Definition: PluginLua.cpp:395
eSpreadSource
Definition: BlockID.h:1231
virtual bool OnPlayerFishing(cPlayer &a_Player, cItems &a_Reward) override
Definition: PluginLua.cpp:641
static const char * GetHookFnName(int a_HookType)
Returns the name of Lua function that should handle the specified hook type in the older (#121) API...
Definition: PluginLua.cpp:1062
Definition: Item.h:36
virtual bool OnPlayerPlacingBlock(cPlayer &a_Player, const sSetBlock &a_BlockChange) override
Definition: PluginLua.cpp:708
virtual bool OnPlayerBreakingBlock(cPlayer &a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, char a_BlockFace, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override
Definition: PluginLua.cpp:586
This class bridges a vector of cItem for safe access via Lua.
Definition: Item.h:234
virtual bool OnChunkUnloading(cWorld &a_World, int a_ChunkX, int a_ChunkZ) override
Definition: PluginLua.cpp:332
virtual bool OnPlayerDestroyed(cPlayer &a_Player) override
Definition: PluginLua.cpp:604
virtual bool OnBrewingCompleting(cWorld &a_World, cBrewingstandEntity &a_BrewingstandEntity) override
Definition: PluginLua.cpp:263
virtual bool OnPlayerUsedItem(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
Definition: PluginLua.cpp:775