summaryrefslogtreecommitdiffstats
path: root/MCServer/Plugins/APIDump/Hooks/OnPreCrafting.lua
blob: 5a5347310870fd8f0f7f769f0afdbc523a1fc139 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
return
{
	HOOK_PRE_CRAFTING =
	{
		CalledWhen = "Before the built-in recipes are checked.",
		DefaultFnName = "OnPreCrafting",  -- also used as pagename
		Desc = [[
			This hook is called when a {{cPlayer|player}} changes contents of their
			{{cCraftingGrid|crafting grid}}, before the built-in recipes are searched for a match by MCServer.
			Plugins may use this hook to provide a custom recipe.</p>
			<p>
			If you intend to tweak built-in recipes, use the {{OnPostCrafting|HOOK_POST_CRAFTING}} hook, because
			that will be called once the built-in recipe is matched.</p>
			<p>
			Also note a third hook, {{OnCraftingNoRecipe|HOOK_CRAFTING_NO_RECIPE}}, that is called when MCServer
			cannot find any built-in recipe for the given ingredients.
		]],
		Params =
		{
			{ Name = "Player", Type = "{{cPlayer}}", Notes = "The player who has changed their crafting grid contents" },
			{ Name = "Grid", Type = "{{cCraftingGrid}}", Notes = "The new crafting grid contents" },
			{ Name = "Recipe", Type = "{{cCraftingRecipe}}", Notes = "The recipe that Cuberite will use. Modify this object to change the recipe" },
		},
		Returns = [[
			If the function returns false or no value, other plugins' callbacks are called and then MCServer
			searches the built-in recipes. The Recipe output parameter is ignored in this case.</p>
			<p>
			If the function returns true, no other callbacks are called for this event and Cuberite uses the
			recipe stored in the Recipe output parameter.
		]],
	},  -- HOOK_PRE_CRAFTING
}