Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion global.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ se-s: "<#$se-s>"

slv-rank: "![[emoji:/other/hall-of-fame/support/slv.png|Silver]]"
gld-rank: "![[emoji:/other/hall-of-fame/support/gld.png|Gold]]"
dmd-rank: "![[emoji:/other/hall-of-fame/support/dmd.png|Diamond]]"
dmd-rank: "![[emoji:/other/hall-of-fame/support/dmd.png|Diamond]]"
2 changes: 2 additions & 0 deletions wiki/events/ServerEvents/en.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
title: "ServerEvents"
description: "Server Events"
Empty file.
2 changes: 2 additions & 0 deletions wiki/events/ServerEvents/recipes/en.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
title: "ServerEvents.recipes"
description: "Server Events Recipes event handler"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
2 changes: 2 additions & 0 deletions wiki/events/ServerEvents/recipes/event-fields/custom/meta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
5 changes: 5 additions & 0 deletions wiki/events/ServerEvents/recipes/event-fields/en.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
title: "Event fields"
description: "List of all Event fields for `ServerEvents.recipes`"

intro: "This is a list of all event fields for `ServerEvents.recipes`. It's possible that not all event fields are listed here, but this list will be updated regularly."
click: "Click on event field to open its class and see information, fields, and methods."
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
2 changes: 2 additions & 0 deletions wiki/events/ServerEvents/recipes/event-fields/meta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
2 changes: 2 additions & 0 deletions wiki/events/ServerEvents/recipes/event-fields/page.kubedoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{intro}
{click}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
2 changes: 2 additions & 0 deletions wiki/events/ServerEvents/recipes/event-fields/remove/meta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
2 changes: 2 additions & 0 deletions wiki/events/ServerEvents/recipes/event-fields/shaped/meta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
37 changes: 37 additions & 0 deletions wiki/events/ServerEvents/recipes/event-fields/shapeless/en.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
title: "Shapeless"
description: ""

ingredient: "`[js]Ingredient`"

ingredient-item-wrappable: |
- A string representing an item (`[js]'minecraft:stone'`),
- A string representing a tag (`[js]'#minecraft:logs'`)
- A string representing a mod (`[js]'@minecraft'`)
- A string representing a creative mod tab (`[js]`),
- A [`[js]RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) - the resulting `[js]Ingredient` is any item whose ID matches a given regular expression,
- An `[js]ItemStack`,
- An object: `[js]{ item: ItemStack }` where `[js]ItemStack` stands for anything wrappable to an `[js]ItemStack`

ingredient-item-multi-wrappable: |
- A string representing both item and count (`[js]'2x minecraft:stone'`)
- An object: `[js]{ item: ItemStack, count: number }` where `[js]ItemStack` stands for anything wrappable to an `[js]ItemStack` and `[js]number` stands for any integer number
{ingredient-item-wrapable}

itemstack: "`[js]ItemStack`"

# There may be a string wrappable into an item with NBT, but unsure what the syntax for that is.

itemstack-wrappable: |
- A string representing an item (`[js]'minecraft:stone'`)
- A string representing both item and count (`[js]'2x minecraft:stone'`)
- An object:
```js
{
item: Item, // or anything wrappable to Item
count: number, // integer number
nbt: CompoundTag, // or anything wrappable to CompoundTag
}
```

item-wrappable: |
- A string representing an item (`[js]'minecraft:stone'`)
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
The `[js]shapeless` method of `[js]event` creates a new shapeless recipe.

# Syntax

```js
ServerEvents.recipes(event => {
event.shapeless(result, ingredients)
})
```

# Parameters
- `result`:
An {itemstack} or anything wrappable into an {itemstack}, that is:
- A string representing an item (`[js]'minecraft:stone'`)
- A string representing both item and count (`[js]'2x minecraft:stone'`)
- An object:
```js
{
item: Item, // or anything wrappable to Item
count: number, // integer number
nbt: CompoundTag, // or anything wrappable to CompoundTag
}
```

- `ingredients`:
An array of `[js]Ingredient`s or anything wrappable into `[js]Ingredient`s, that is:
- A string representing both item and count (`[js]'2x minecraft:stone'`)
- An object: `[js]{ item: ItemStack, count: number }` where `[js]ItemStack` stands for anything wrappable to an `[js]ItemStack` and `[js]number` stands for any integer number
- A string representing an item (`[js]'minecraft:stone'`),
- A string representing a tag (`[js]'#minecraft:logs'`)
- A string representing a mod (`[js]'@minecraft'`)
- A string representing a creative mod tab (`[js]`),
- A [`[js]RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) - the resulting `[js]Ingredient` is any item whose ID matches a given regular expression,
- An `[js]ItemStack`,
- An object: `[js]{ item: ItemStack }` where `[js]ItemStack` stands for anything wrappable to an `[js]ItemStack`

# Return value
A new recipe.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
2 changes: 2 additions & 0 deletions wiki/events/ServerEvents/recipes/event-fields/stage/meta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
2 changes: 2 additions & 0 deletions wiki/events/ServerEvents/recipes/event-fields/takeId/meta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
script: "server"
see-also: "$ServerEvents/recipes"
57 changes: 57 additions & 0 deletions wiki/events/ServerEvents/recipes/page.kubedoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
The `[js]ServerEvents.recipes` event handler handles recipe addition and removal.

# Syntax
```js
ServerEvents.recipes(handler)
ServerEvents.recipes(event => {
// ...
})
```

# Parameters

- `[js]handler`: A callback function which gets executed when the event is fired. Return value is discarded.
The function is called with the following parameters:

- `[js]event`: Contains [event fields](#event-fields) that (???)

# Event Fields
## Unique to this event
- [[/events/ServerEvents/recipes/event-fields/addRecipe|`[js]event.addRecipe`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/addedRecipes|`[js]event.addedRecipes`]]: Contains the list of all added recipes.
- [[/events/ServerEvents/recipes/event-fields/blasting|`[js]event.blasting`]]: Creates a new recipe for the Blast Furnace.
- [[/events/ServerEvents/recipes/event-fields/campfireCooking|`[js]event.campfireCooking`]]: Creates a new recipe for the Campfire.
- [[/events/ServerEvents/recipes/event-fields/containsRecipe|`[js]event.containsRecipe`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/countRecipes|`[js]event.countRecipes`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/custom|`[js]event.custom`]]: Creates an arbitrary JSON recipe.
- [[/events/ServerEvents/recipes/event-fields/customFilter|`[js]event.customFilter`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/failedCount|`[js]event.failedCount`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/findRecipeIds|`[js]event.findRecipeIds`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/findRecipes|`[js]event.findRecipes`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/forEachRecipe|`[js]event.forEachRecipe`]]: Executes a provided function for each recipe that matches a given filter.
- [[/events/ServerEvents/recipes/event-fields/getRecipeFunction|`[js]event.getRecipeFunction`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/getRecipes|`[js]event.getRecipes`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/itemErrors|`[js]event.itemErrors`]] ==Setter only==: TODO
- [[/events/ServerEvents/recipes/event-fields/originalRecipes|`[js]event.originalRecipes`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/printAllTypes|`[js]event.printAllTypes`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/printExamples|`[js]event.printExamples`]]: A function, that prints example recipes into the game console.
- [[/events/ServerEvents/recipes/event-fields/printTypes|`[js]event.printTypes`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/recipeStream|`[js]event.recipeStream`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/recipes|`[js]event.recipes`]]: A map, that contains recipe types for various mods. Addons may add new recipe types here.
- [[/events/ServerEvents/recipes/event-fields/remove|`[js]event.remove`]]: A function, that removes all recipes that match a given filter.
- [[/events/ServerEvents/recipes/event-fields/replaceInput|`[js]event.replaceInput`]]: A function, that replaces inputs of all recipes that match a given filter.
- [[/events/ServerEvents/recipes/event-fields/replaceOutput|`[js]event.replaceOutput`]]: A function, that replaces inputs of all recipes that match a given filter.
- [[/events/ServerEvents/recipes/event-fields/shaped|`[js]event.shaped`]]: A function, that creates a new shaped crafting recipe.
- [[/events/ServerEvents/recipes/event-fields/shapeless|`[js]event.shapeless`]]: A function, that creates a new shapeless crafting recipe.
- [[/events/ServerEvents/recipes/event-fields/smelting|`[js]event.smelting`]]: A function, that creates a new Furnace smelting recipe.
- [[/events/ServerEvents/recipes/event-fields/smithing|`[js]event.smithing`]]: A function that creates a new Smithing Table smithing recipe.
- [[/events/ServerEvents/recipes/event-fields/smithingTrim|`[js]event.smithingTrim`]]: A function that creates a new Smithing Table smithing recipe for applying an Armor Trim.
- [[/events/ServerEvents/recipes/event-fields/smoking|`[js]event.smoking`]]: A function, that creates a new Smoker smoking recipe.
- [[/events/ServerEvents/recipes/event-fields/stage|`[js]event.stage`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/stonecutting|`[js]event.stonecutting`]]: A function, that creates a new Stonecutter stonecutting recipe.
- [[/events/ServerEvents/recipes/event-fields/takeId|`[js]event.takeId`]]: TODO
- [[/events/ServerEvents/recipes/event-fields/takenIds|`[js]event.takenIds`]]: TODO
## Common to all events
- `[js]event.cancel`: Cancels the event with a given exit value. Execution will be stopped **immediately**.
- `[js]event.exit`: Stops the event with default exit value. Execution will be stopped **immediately**.
- `[js]event.success`: Stops the event as a success with the given exit value. Execution will be stopped **immediately**.
Empty file added wiki/events/meta.yml
Empty file.
18 changes: 18 additions & 0 deletions wiki/tutorials/recipes/page.kubedoc
Original file line number Diff line number Diff line change
Expand Up @@ -297,3 +297,21 @@ ServerEvents.recipes(event => {
## Looping

In addition to helper functions, you can also loop through an array to perform an action on every item in the array.

```js
ServerEvents.recipes(event => {
// There's a useful built-in array that contains all the dye colors.
// It can be looped over using `forEach`, so you don't need to specify a separate recipe for each color!
Color.DYE.forEach(color => {
event.shapeless(`kubejs:${color}_clay`, ['minecraft:clay', `minecraft:${color}_dye`])
})

// You can also create your own arrays...
const metals = ['iron', 'copper', 'gold', 'netherite']
// ... and loop over them the same way!
metals.forEach(metal => {
event.shapeless(`kubejs:${metal}_plate`, [`minecraft:${metal}_ingot`, 'kubejs:hammer'])
.damageIngredient('kubejs:hammer')
})
})
```