Difference between revisions of "Plugin API"
Jump to navigation
Jump to search
Example plugin structure: | Example plugin structure: | ||
| − | < | + | <pre><nowiki> |
| − | + | #include <stdio.h> | |
| − | + | #include <stdlib.h> | |
| − | + | #include <time.h> | |
| − | + | #include <string.h> | |
| − | + | #include <cstdlib> | |
| − | + | #include <iostream> | |
| − | + | ||
| − | + | #define MINESERVER_C_API | |
| − | + | #include "../src/plugin_api.h" | |
| − | + | #include "../src/logtype.h" | |
| − | + | ||
| + | #define PLUGIN_VERSION 1.0 | ||
| + | double pluginVersion = PLUGIN_VERSION; | ||
| + | |||
| + | #define PLUGIN_NAME "pressurplate" | ||
| + | const char* pluginName = PLUGIN_NAME; | ||
| + | |||
| + | const char* logSource = "plugin.screen"; | ||
| + | mineserver_pointer_struct* mineserver; | ||
| + | |||
| + | PLUGIN_API_EXPORT void CALLCONVERSION pressurplate_init(mineserver_pointer_struct* mineserver_temp) | ||
| + | { | ||
| + | mineserver = mineserver_temp; | ||
| + | |||
| + | if (mineserver->plugin.getPluginVersion(pluginName) > 0) | ||
{ | { | ||
| − | mineserver | + | mineserver->logger.log(LogType::LOG_INFO, logSource, "The " PLUGIN_NAME " plugin is already loaded"); |
| − | + | return; | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
| − | + | ||
| + | mineserver->logger.log(LogType::LOG_INFO, logSource, "Loaded " PLUGIN_NAME); | ||
| + | mineserver->plugin.setPluginVersion(pluginName, pluginVersion); | ||
| + | |||
| + | } | ||
| + | |||
| + | |||
| + | PLUGIN_API_EXPORT void CALLCONVERSION pressurplate_shutdown(void) | ||
| + | { | ||
| + | if (mineserver->plugin.getPluginVersion(pluginName) <= 0) | ||
{ | { | ||
| − | + | mineserver->logger.log(LogType::LOG_INFO, logSource, PLUGIN_NAME " is not loaded!"); | |
| − | + | return; | |
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
| − | + | mineserver->logger.log(LogType::LOG_INFO, logSource, PLUGIN_NAME " has been unloaded!"); | |
| − | + | } | |
| − | |||
| + | </nowiki> | ||
| + | </pre> | ||
| + | ==Available functions== | ||
===Mineserver=== | ===Mineserver=== | ||
====Chat==== | ====Chat==== | ||
| + | {{APIFunct2|sendmsgTo|user|const char*|Username in null Terminated char array|msg|const char*|Message in null terminated char array|bool, telling it the user was found|Sends a message to specified ''user''}} | ||
| + | {{APIFunct1|sendmsg|msg|const char*|Message in null terminated char array|bool, telling it the user was found|Sends a message to all players, except they are in DND mode}} | ||
| + | |||
| + | {{APIFunct1|sendUserList|user|const char*|User in null terminated char array|bool, telling it the user was found|Sends the playerlist to ''user''}} | ||
| + | |||
| + | ====Screen==== | ||
| + | |||
| + | {{APIFunctVoid|log|msg|const char*|Message in null terminated char array|Prints message to server window}} | ||
| + | |||
| + | ====Map==== | ||
| + | |||
| + | {{APIFunct6|createPickupSpawn|x|int|x-coordinate|y|int|y-coordinate|z|int|z-coordinate|conut|int|How many to spawn(1-64)|health|int|item health. 0 is max health, max value depends on the item|user|const char*|Username|void|Spawns an item at (x,y,z) with type,count and health specified. If "user" is set, he will not be able to pick up the item right away to make it possible to throw stuff away.}} | ||
| + | |||
| + | {{APIFunct1|setTime|timeValue|int|value between 0 and 2400|bool|Sets server time to ''timeValue''}} | ||
| + | |||
{| class="wikitable" | {| class="wikitable" | ||
|- class="row0" | |- class="row0" | ||
! class="col3" | Parameter info | ! class="col3" | Parameter info | ||
|- class="row1" | |- class="row1" | ||
| − | | class="col0" rowspan=" | + | | class="col0" rowspan="3" | '''getSpawn''' |
| − | | class="col1" | | + | | class="col1" | x |
| − | | class="col2" | | + | | class="col2" | int* |
| − | | class="col3" | | + | | class="col3" | x-coordinate |
|- class="row2" | |- class="row2" | ||
| − | | class="col1" | | + | | class="col1" | y |
| − | | class="col2" | | + | | class="col2" | int* |
| − | | class="col3" | | + | | class="col3" | y-coordinate |
| + | |- class="row3" | ||
| + | | class="col1" | z | ||
| + | | class="col2" | int* | ||
| + | | class="col3" | z-coordinate | ||
|- class="row4" | |- class="row4" | ||
| − | + | ! class="col0" | Return value | |
| − | | class=" | + | | class="col1 rightalign" colspan="3" | void |
| − | |||
|- class="row5" | |- class="row5" | ||
| − | | class=" | + | | class="col0" colspan="4" | Gets server spawn position |
| − | + | |} | |
| − | + | ||
| + | {| class="wikitable" | ||
| + | |- class="row0" | ||
| + | ! class="col0" | Function | ||
| + | ! class="col1" | Parameter name | ||
| + | ! class="col2" | Parameter type | ||
| + | ! class="col3" | Parameter info | ||
| + | |- class="row1" | ||
| + | | class="col0" rowspan="5" | '''getBlock''' | ||
| + | | class="col1" | x | ||
| + | | class="col2" | int | ||
| + | | class="col3" | x-coordinate | ||
| + | |- class="row2" | ||
| + | | class="col1" | y | ||
| + | | class="col2" | int | ||
| + | | class="col3" | y-coordinate | ||
| + | |- class="row3" | ||
| + | | class="col1" | z | ||
| + | | class="col2" | int | ||
| + | | class="col3" | z-coordinate | ||
| + | |- class="row4" | ||
| + | | class="col1" | type | ||
| + | | class="col2" | unsigned char* | ||
| + | | class="col3" | block type | ||
| + | |- class="row5" | ||
| + | | class="col1" | meta | ||
| + | | class="col2" | unsigned char* | ||
| + | | class="col3" | block metadata | ||
|- class="row6" | |- class="row6" | ||
! class="col0" | Return value | ! class="col0" | Return value | ||
| − | | class="col1 rightalign" colspan="3" | bool | + | | class="col1 rightalign" colspan="3" | bool |
| + | |- class="row7" | ||
| + | | class="col0" colspan="4" | Get block type and metadata (absolute block coordinates) in first world (id 0) | ||
|} | |} | ||
! class="col3" | Parameter info | ! class="col3" | Parameter info | ||
|- class="row1" | |- class="row1" | ||
| − | | class="col0" rowspan=" | + | | class="col0" rowspan="6" | '''getBlockW''' |
| − | | class="col1" | | + | | class="col1" | x |
| − | | class="col2" | | + | | class="col2" | int |
| − | | class="col3" | | + | | class="col3" | x-coordinate |
|- class="row2" | |- class="row2" | ||
| − | | class="col1" | | + | | class="col1" | y |
| − | | class="col2" | | + | | class="col2" | int |
| − | | class="col3" | | + | | class="col3" | y-coordinate |
|- class="row3" | |- class="row3" | ||
| + | | class="col1" | z | ||
| + | | class="col2" | int | ||
| + | | class="col3" | z-coordinate | ||
| + | |- class="row4" | ||
| + | | class="col1" | w | ||
| + | | class="col2" | int | ||
| + | | class="col3" | World ID | ||
| + | |- class="row5" | ||
| + | | class="col1" | type | ||
| + | | class="col2" | unsigned char* | ||
| + | | class="col3" | block type | ||
| + | |- class="row6" | ||
| + | | class="col1" | meta | ||
| + | | class="col2" | unsigned char* | ||
| + | | class="col3" | block metadata | ||
| + | |- class="row7" | ||
! class="col0" | Return value | ! class="col0" | Return value | ||
| − | | class="col1 rightalign" colspan="3" | bool | + | | class="col1 rightalign" colspan="3" | bool |
| + | |- class="row8" | ||
| + | | class="col0" colspan="4" | Gets block type and metadata (absolute block coordinates) | ||
|} | |} | ||
| − | + | {| class="wikitable" | |
| + | |- class="row0" | ||
| + | ! class="col0" | Function | ||
| + | ! class="col1" | Parameter name | ||
| + | ! class="col2" | Parameter type | ||
| + | ! class="col3" | Parameter info | ||
| + | |- class="row1" | ||
| + | | class="col0" rowspan="5" | '''setBlock''' | ||
| + | | class="col1" | x | ||
| + | | class="col2" | int | ||
| + | | class="col3" | x-coordinate | ||
| + | |- class="row2" | ||
| + | | class="col1" | y | ||
| + | | class="col2" | int | ||
| + | | class="col3" | y-coordinate | ||
| + | |- class="row3" | ||
| + | | class="col1" | z | ||
| + | | class="col2" | int | ||
| + | | class="col3" | z-coordinate | ||
| + | |- class="row4" | ||
| + | | class="col1" | type | ||
| + | | class="col2" | unsigned char | ||
| + | | class="col3" | block type | ||
| + | |- class="row5" | ||
| + | | class="col1" | meta | ||
| + | | class="col2" | unsigned char | ||
| + | | class="col3" | block metadata | ||
| + | |- class="row6" | ||
| + | ! class="col0" | Return value | ||
| + | | class="col1 rightalign" colspan="3" | bool | ||
| + | |- class="row7" | ||
| + | | class="col0" colspan="4" | Set block type and metadata (absolute block coordinates) | ||
| + | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
| − | |- | + | |- class="row0" |
| − | ! Function | + | ! class="col0" | Function |
| − | ! | + | ! class="col1" | Parameter name |
| − | ! | + | ! class="col2" | Parameter type |
| − | + | ! class="col3" | Parameter info | |
| − | + | |- class="row1" | |
| − | | | + | | class="col0" rowspan="6" | '''setBlockW''' |
| − | | | + | | class="col1" | x |
| − | + | | class="col2" | int | |
| − | | | + | | class="col3" | x-coordinate |
| + | |- class="row2" | ||
| + | | class="col1" | y | ||
| + | | class="col2" | int | ||
| + | | class="col3" | y-coordinate | ||
| + | |- class="row3" | ||
| + | | class="col1" | z | ||
| + | | class="col2" | int | ||
| + | | class="col3" | z-coordinate | ||
| + | |- class="row4" | ||
| + | | class="col1" | w | ||
| + | | class="col2" | int | ||
| + | | class="col3" | World ID | ||
| + | |- class="row5" | ||
| + | | class="col1" | type | ||
| + | | class="col2" | unsigned char* | ||
| + | | class="col3" | block type | ||
| + | |- class="row6" | ||
| + | | class="col1" | meta | ||
| + | | class="col2" | unsigned char* | ||
| + | | class="col3" | block metadata | ||
| + | |- class="row7" | ||
| + | ! class="col0" | Return value | ||
| + | | class="col1 rightalign" colspan="3" | bool | ||
| + | |- class="row8" | ||
| + | | class="col0" colspan="4" | Sets block type and metadata (absolute block coordinates) | ||
|} | |} | ||
| + | {| class="wikitable" | ||
| + | |- class="row0" | ||
| + | ! class="col0" | Function | ||
| + | ! class="col1" | Parameter name | ||
| + | ! class="col2" | Parameter type | ||
| + | ! class="col3" | Parameter info | ||
| + | |- class="row1" | ||
| + | | class="col0" rowspan="5" | '''setSpawn''' | ||
| + | | class="col1" | x | ||
| + | | class="col2" | int | ||
| + | | class="col3" | x-coordinate | ||
| + | |- class="row2" | ||
| + | | class="col1" | y | ||
| + | | class="col2" | int | ||
| + | | class="col3" | y-coordinate | ||
| + | |- class="row3" | ||
| + | | class="col1" | z | ||
| + | | class="col2" | int | ||
| + | | class="col3" | z-coordinate | ||
| + | |- class="row4" | ||
| + | ! class="col0" | Return value | ||
| + | | class="col1 rightalign" colspan="3" | bool | ||
| + | |- class="row5" | ||
| + | | class="col0" colspan="4" | Set spawn to x, y, z (absolute coordinates) | ||
| + | |} | ||
| − | + | {{APIFunctVoid|saveWholeMap| |void| |Saves the whole map to disk}} | |
| + | {{APIFunct2|getMapData_block|x|int|x-coordinate|z|int|z-coordinate|unsigned char*| }} | ||
| + | |||
| + | {{APIFunct2|getMapData_meta|x|int|x-coordinate|z|int|z-coordinate|unsigned char*| }} | ||
| + | |||
| + | {{APIFunct2|getMapData_skylight|x|int|x-coordinate|z|int|z-coordinate|unsigned char*| }} | ||
| + | |||
| + | {{APIFunct2|getMapData_blocklight|x|int|x-coordinate|z|int|z-coordinate|unsigned char*| }} | ||
| + | |||
| + | ====User Functions==== | ||
| + | |||
| + | {{APIFunct1|toggleDND|user|const char*|Username in null terminated char array|bool, indicates if user was found|Toggles the DND (Do not Disturb)-Mode of a ''user''}} | ||
| + | |||
| + | {{APIFunct7|getPosition|user|const char*|Username in null terminated char array|x|double*|x-coordinate|y|double*|y-coordinate|z|double*|z-coordinate|yaw|float*|yaw-Value|pitch|float*|pitch-Value|*stance|double|stance-Value|bool, true if user has been found|Finds a player and stores its info in the referenced variables}} | ||
| + | |||
| + | {{APIFunct8|getPosition|user|const char*|Username in null terminated char array|x|double*|x-coordinate|y|double*|y-coordinate|z|double*|z-coordinate|w|int*|World ID|yaw|float*|yaw-Value|pitch|float*|pitch-Value| *stance|double|stance-Value|bool, true if user has been found|Finds a player and stores its info in the referenced variables}} | ||
| + | |||
| + | {{APIFunct4|teleport|user|const char*|Username in null terminated char array|x|double*|x-coordinate|y|double*|y-coordinate|z|double*|z-coordinate|bool, true if user was found|Teleports a ''user'' to ''x'',''y'',''z''}} | ||
| + | |||
| + | {{APIFunct5|teleport|user|const char*|Username in null terminated char array|x|double*|x-coordinate|y|double*|y-coordinate|z|double*|z-coordinate|map|int|Map ID|bool, true if user was found|Teleports a ''user'' to ''x'',''y'',''z'' on ''map''}} | ||
| + | |||
| + | {{APIFunct2|setHealth|user|const char*|Username in null terminated char array|userHealth|int|Health of ''user''. Must not be greater than 20.|bool, true if user is not null|Sets the health of a ''user''.}} | ||
| + | |||
| + | {{APIFunct1|getHealth|user|const char*|Username in null terminated char array|int, player's health|Gets the health of a ''user''}} | ||
| + | |||
| + | {{APIFunct1|no paramters| | |int, number of players online|Gets the number of players online}} | ||
| + | |||
| + | {{APIFunct4|getItemInHand|user|const char*|Username in null terminated char array|*type|int|Type of item|*meta|int|Health of item|*quant|int|quantity of item|bool, true if user was found|Gets the item in the hand of ''user''}} | ||
| + | |||
| + | {{APIFunct4|setItemInHand|user|const char*|Username in null terminated char array|type|int|Type of item|meta|int|Health of item|quant|int|quantity of item, must not be greater than 64|bool, true if user was found|Sets the item in the hand of ''user''}} | ||
| + | |||
| + | {{APIFunct4|addItem|user|const char*|Username in null terminated char array|type|int|Type of item|meta|int|Health of item|quant|int|quantity of item, must not be greater than 64|bool, true if user was found|Adds the ''item'' to the ''user'''s inventory}} | ||
| + | |||
| + | {{APIFunct4|hasItem|user|const char*|Username in null terminated char array|type|int|Type of item|meta|int|Health of item|quant|int|quantity of item, must not be greater than 64|bool, true if the item is in Users inventory. Chests are unchecked.|Checks if ''item'' is in ''user'''s inventory}} | ||
| + | |||
| + | {{APIFunct4|delItem|user|const char*|Username in null terminated char array|type|int|Type of item|meta|int|Health of item|quant|int|quantity of item, must not be greater than 64|bool, true if user was found|Delets the ''item'' ''quantity'' times from the ''user'''s inventory. Chests are untouched.}} | ||
| + | |||
| + | {{APIFunct1|kick|user|const char*|Username in null terminated char array|bool, true if user is found|Kicks ''user'' with standard reason "You have been kicked"}} | ||
| + | |||
| + | ====Config wrapper functions==== | ||
| + | {{APIFunct1|has|name|const char*|name of the config string|bool, true if config string was found|Checks if the config string ''name'' exists in the configuration file}} | ||
| + | |||
| + | {{APIFunct1|iData|name|const char*|name of the config string|int|Gets integer data from configuration string ''name''}} | ||
| + | |||
| + | {{APIFunct1|lData|name|const char*|name of the config string|int64_t|Gets long (int64_t) data from configuration string ''name''}} | ||
| + | |||
| + | {{APIFunct1|fData|name|const char*|name of the config string|float|Gets float data from configuration string ''name''}} | ||
| + | |||
| + | {{APIFunct1|dData|name|const char*|name of the config string|double|Gets double data from configuration string ''name''}} | ||
| + | |||
| + | {{APIFunct1|sData|name|const char*|name of the config string|const char*|Gets string (char*) data from configuration string ''name''}} | ||
| + | |||
| + | {{APIFunct1|bData|name|const char*|name of the config string|bool|Gets bool data from configuration string ''name''}} | ||
| + | |||
| + | ====Mobs==== | ||
| + | |||
| + | ====Permissions==== | ||
| + | |||
| + | {{APIFunct1|setAdmin|name|const char*|Username in null terminated char array|bool, true if user was found|Makes ''user'' to a server administrator, providing him with full permissions.}} | ||
| + | |||
| + | {{APIFunct1|setOp|name|const char*|Username in null terminated char array|bool, true if user was found|Makes ''user'' to a server Operator}} | ||
| + | |||
| + | {{APIFunct1|setMember|name|const char*|Username in null terminated char array|bool, true if user was found|Makes ''user'' to a regular member}} | ||
| + | |||
| + | {{APIFunct1|setGuest|name|const char*|Username in null terminated char array|bool, true if user was found|Makes ''user'' to a guest}} | ||
| + | |||
| + | {{APIFunct1|isAdmin|name|const char*|Username in null terminated char array|bool, true if user is admin|Checks, if ''user'' is a server administrator}} | ||
| + | |||
| + | {{APIFunct1|isOp|name|const char*|Username in null terminated char array|bool, true if user is operator|Checks, if ''user'' is a server Operator}} | ||
| + | |||
| + | {{APIFunct1|isMember|name|const char*|Username in null terminated char array|bool, true if user is member|Checks, if ''user'' is a regular member}} | ||
| + | |||
| + | {{APIFunct1|Guest|name|const char*|Username in null terminated char array|bool, true if user is guest|Checks, if ''user'' is a guest}} | ||
| + | |||
| + | ==Available callbacks== | ||
| + | |||
{| class="wikitable" | {| class="wikitable" | ||
| − | |- | + | |- class="row0" |
| − | ! | + | ! class="col0" | Name |
| − | ! | + | ! class="col1" | Parameter name |
| − | ! | + | ! class="col2" | Parameter type |
| − | + | ! class="col3" | Parameter info | |
| − | + | |- class="row1" | |
| − | | | + | | class="col0" rowspan="1" | '''Timer200''' |
| − | | | + | | class="col1" | no params |
| − | + | | class="col2" | | |
| − | | | + | | class="col3" | |
| − | |- | + | |- class="row2" |
| − | | | + | ! class="col0" | Return value |
| − | | | + | | class="col1 rightalign" colspan="3" | bool, isn't used |
| − | + | |- class="row3" | |
| − | + | | class="col0" colspan="4" | 200ms timer callback | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|} | |} | ||
| − | + | {| class="wikitable" | |
| + | |- class="row0" | ||
| + | ! class="col0" | Name | ||
| + | ! class="col1" | Parameter name | ||
| + | ! class="col2" | Parameter type | ||
| + | ! class="col3" | Parameter info | ||
| + | |- class="row1" | ||
| + | | class="col0" rowspan="1" | '''Timer1000''' | ||
| + | | class="col1" | no params | ||
| + | | class="col2" | | ||
| + | | class="col3" | | ||
| + | |- class="row2" | ||
| + | ! class="col0" | Return value | ||
| + | | class="col1 rightalign" colspan="3" | bool, isn't used | ||
| + | |- class="row3" | ||
| + | | class="col0" colspan="4" | 1000ms (1s) timer callback | ||
| + | |} | ||
| + | {| class="wikitable" | ||
| + | |- class="row0" | ||
| + | ! class="col0" | Name | ||
| + | ! class="col1" | Parameter name | ||
| + | ! class="col2" | Parameter type | ||
| + | ! class="col3" | Parameter info | ||
| + | |- class="row1" | ||
| + | | class="col0" rowspan="1" | '''Timer10000''' | ||
| + | | class="col1" | no params | ||
| + | | class="col2" | | ||
| + | | class="col3" | | ||
| + | |- class="row2" | ||
| + | ! class="col0" | Return value | ||
| + | | class="col1 rightalign" colspan="3" | bool, isn't used | ||
| + | |- class="row3" | ||
| + | | class="col0" colspan="4" | 10s timer callback | ||
| + | |} | ||
{| class="wikitable" | {| class="wikitable" | ||
| − | |- | + | |- class="row0" |
| − | ! Name | + | ! class="col0" | Name |
| − | ! | + | ! class="col1" | Parameter name |
| − | ! | + | ! class="col2" | Parameter type |
| − | + | ! class="col3" | Parameter info | |
| − | + | |- class="row1" | |
| − | | | + | | class="col0" rowspan="3" | '''PlayerChatPre''' |
| − | | | + | | class="col1" | user |
| − | + | | class="col2" | const char* | |
| − | | | + | | class="col3" | Username in null terminated char array |
| − | |- | + | |- class="row2" |
| − | | | + | | class="col1" | timestamp |
| − | | | + | | class="col2" | size_t |
| − | | | + | | class="col3" | time of the message |
| − | |- | + | |- class="row2" |
| − | | | + | | class="col1" | msg |
| − | + | | class="col2" | const char* | |
| − | | | + | | class="col3" | Message in null terminated char array |
| − | + | |- class="row3" | |
| − | | | + | ! class="col0" | Return value |
| − | + | | class="col1 rightalign" colspan="3" | bool | |
| − | + | |- class="row4" | |
| + | | class="col0" colspan="4" | called on chat message processing, returning false will terminate the callback. | ||
|} | |} | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- class="row0" | ||
| + | ! class="col0" | Name | ||
| + | ! class="col1" | Parameter name | ||
| + | ! class="col2" | Parameter type | ||
| + | ! class="col3" | Parameter info | ||
| + | |- class="row1" | ||
| + | | class="col0" rowspan="4" | '''PlayerChatCommand''' | ||
| + | | class="col1" | user | ||
| + | | class="col2" | const char* | ||
| + | | class="col3" | Username in null terminated char array | ||
| + | |- class="row2" | ||
| + | | class="col1" | command | ||
| + | | class="col2" | const char* | ||
| + | | class="col3" | command | ||
| + | |- class="row2" | ||
| + | | class="col1" | argc | ||
| + | | class="col2" | int | ||
| + | | class="col3" | argument count | ||
| + | |- class="row3" | ||
| + | | class="col1" | arguments | ||
| + | | class="col2" | const char** | ||
| + | | class="col3" | list of arguments | ||
| + | |- class="row4" | ||
| + | ! class="col0" | Return value | ||
| + | | class="col1 rightalign" colspan="3" | bool | ||
| + | |- class="row5" | ||
| + | | class="col0" colspan="4" | called when chat command is used | ||
| + | |} | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- class="row0" | ||
| + | ! class="col0" | Name | ||
| + | ! class="col1" | Parameter name | ||
| + | ! class="col2" | Parameter type | ||
| + | ! class="col3" | Parameter info | ||
| + | |- class="row1" | ||
| + | | class="col0" rowspan="6" | '''BlockPlacePre''' | ||
| + | | class="col1" | user | ||
| + | | class="col2" | const char* | ||
| + | | class="col3" | Username in char array | ||
| + | |- class="row2" | ||
| + | | class="col1" | x | ||
| + | | class="col2" | int32_t | ||
| + | | class="col3" | x-coord | ||
| + | |- class="row3" | ||
| + | | class="col1" | y | ||
| + | | class="col2" | int8_t | ||
| + | | class="col3" | y-coord | ||
| + | |- class="row4" | ||
| + | | class="col1" | z | ||
| + | | class="col2" | int32_t | ||
| + | | class="col3" | z-coord | ||
| + | |- class="row5" | ||
| + | | class="col1" | block | ||
| + | | class="col2" | int16_t | ||
| + | | class="col3" | block type | ||
| + | |- class="row6" | ||
| + | | class="col1" | direction | ||
| + | | class="col2" | int8_t | ||
| + | | class="col3" | placement direction | ||
| + | |- class="row7" | ||
| + | ! class="col0" | Return value | ||
| + | | class="col1 rightalign" colspan="3" | bool | ||
| + | |- class="row8" | ||
| + | | class="col0" colspan="4" | called on block placement, returning false will prevent block placement and terminate callback. | ||
| + | |} | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- class="row0" | ||
| + | ! class="col0" | Name | ||
| + | ! class="col1" | Parameter name | ||
| + | ! class="col2" | Parameter type | ||
| + | ! class="col3" | Parameter info | ||
| + | |- class="row1" | ||
| + | | class="col0" rowspan="4" | '''BlockBreakPre''' | ||
| + | | class="col1" | user | ||
| + | | class="col2" | const char* | ||
| + | | class="col3" | Username in char array | ||
| + | |- class="row2" | ||
| + | | class="col1" | x | ||
| + | | class="col2" | int | ||
| + | | class="col3" | x-coord | ||
| + | |- class="row3" | ||
| + | | class="col1" | y | ||
| + | | class="col2" | int | ||
| + | | class="col3" | y-coord | ||
| + | |- class="row4" | ||
| + | | class="col1" | z | ||
| + | | class="col2" | int | ||
| + | | class="col3" | z-coord | ||
| + | |- class="row5" | ||
| + | ! class="col0" | Return value | ||
| + | | class="col1 rightalign" colspan="3" | bool | ||
| + | |- class="row6" | ||
| + | | class="col0" colspan="4" | called on block break, returning false will prevent block breaking and terminate callback. | ||
| + | |} | ||
| + | |||
| + | |||
| + | ToDo: | ||
| + | |||
| + | setHook("PlayerLoginPre", new Hook2<bool,const char*,char***>); | ||
| + | setHook("PlayerLoginPost", new Hook1<bool,const char*>); | ||
| + | setHook("PlayerNickPost", new Hook2<bool,const char*,const char*>); | ||
| + | setHook("PlayerKickPost", new Hook2<bool,const char*,const char*>); | ||
| + | setHook("PlayerQuitPost", new Hook1<bool,const char*>); | ||
| + | setHook("PlayerChatPost", new Hook3<bool,const char*,time_t,const char*>); | ||
| + | setHook("PlayerArmSwing", new Hook1<bool,const char*>); | ||
| + | setHook("PlayerDamagePre", new Hook3<bool,const char*,const char*,int>); | ||
| + | setHook("PlayerDamagePost", new Hook3<bool,const char*,const char*,int>); | ||
| + | setHook("PlayerDisconnect", new Hook3<bool,const char*,uint32,uint16>); | ||
| + | setHook("PlayerDiggingStarted", new Hook4<bool,const char*,sint32,sint8,sint32>); | ||
| + | setHook("PlayerDigging", new Hook4<bool,const char*,sint32,sint8,sint32>); | ||
| + | setHook("PlayerDiggingStopped", new Hook4<bool,const char*,sint32,sint8,sint32>); | ||
| + | setHook("BlockBreakPre", new Hook4<bool,const char*,sint32,sint8,sint32>); | ||
| + | setHook("BlockBreakPost", new Hook4<bool,const char*,sint32,sint8,sint32>); | ||
| + | setHook("BlockNeighbourBreak", new Hook7<bool,const char*,sint32,sint8,sint32,sint32,sint8,sint32>); | ||
| + | setHook("BlockPlacePre", new Hook5<bool,const char*,sint32,sint8,sint32,sint16>); | ||
| + | setHook("BlockPlacePost", new Hook5<bool,const char*,sint32,sint8,sint32,sint16>); | ||
| + | setHook("BlockNeighbourPlace", new Hook7<bool,const char*,sint32,sint8,sint32,sint32,sint8,sint32>); | ||
| + | setHook("BlockReplacePost", new Hook6<bool,const char*,sint32,sint8,sint32,sint16,sint16>); | ||
| + | setHook("BlockNeighbourReplace", new Hook9<bool,const char*,sint32,sint8,sint32,sint32,sint8,sint32,sint16,sint16>); | ||
