-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b8a0049
commit b45ecc9
Showing
1 changed file
with
0 additions
and
73 deletions.
There are no files selected for viewing
73 changes: 0 additions & 73 deletions
73
test-plugin/src/main/java/io/papermc/testplugin/TestPlugin.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,85 +1,12 @@ | ||
package io.papermc.testplugin; | ||
|
||
import io.papermc.paper.event.player.ChatEvent; | ||
import java.util.List; | ||
import org.bukkit.Material; | ||
import org.bukkit.NamespacedKey; | ||
import org.bukkit.event.EventHandler; | ||
import org.bukkit.event.Listener; | ||
import org.bukkit.event.player.PlayerJoinEvent; | ||
import org.bukkit.inventory.CookingRecipe; | ||
import org.bukkit.inventory.FurnaceRecipe; | ||
import org.bukkit.inventory.ItemStack; | ||
import org.bukkit.inventory.RecipeChoice; | ||
import org.bukkit.inventory.ShapedRecipe; | ||
import org.bukkit.inventory.ShapelessRecipe; | ||
import org.bukkit.persistence.PersistentDataType; | ||
import org.bukkit.plugin.java.JavaPlugin; | ||
|
||
import static net.kyori.adventure.text.Component.text; | ||
import static net.kyori.adventure.text.format.NamedTextColor.GOLD; | ||
import static net.kyori.adventure.text.format.Style.style; | ||
import static net.kyori.adventure.text.format.TextDecoration.ITALIC; | ||
|
||
public final class TestPlugin extends JavaPlugin implements Listener { | ||
|
||
static final NamespacedKey FURNACE_RECIPE_KEY = new NamespacedKey("test", "recipe"); | ||
static final NamespacedKey SHAPED_RECIPE_KEY = new NamespacedKey("test", "shaped_recipe"); | ||
static final NamespacedKey SHAPELESS_RECIPE_KEY = new NamespacedKey("test", "shapless_recipe"); | ||
|
||
static final NamespacedKey PDC_KEY = new NamespacedKey("test", "pdc_key"); | ||
|
||
static final ItemStack SOME_INGREDIENT = new ItemStack(Material.EMERALD); | ||
static { | ||
SOME_INGREDIENT.editMeta(meta -> { | ||
meta.getPersistentDataContainer().set(PDC_KEY, PersistentDataType.BOOLEAN, true); | ||
meta.lore(List.of(text("SPECIAL EMERALD", style(ITALIC.withState(false), GOLD)))); | ||
}); | ||
} | ||
|
||
@Override | ||
public void onEnable() { | ||
this.getServer().getPluginManager().registerEvents(this, this); | ||
|
||
final ItemStack furnaceInput = new ItemStack(Material.STICK); | ||
furnaceInput.editMeta(meta -> { | ||
meta.displayName(text("HELLO")); | ||
}); | ||
final CookingRecipe<?> recipe = new FurnaceRecipe(FURNACE_RECIPE_KEY, new ItemStack(Material.DIAMOND), new RecipeChoice.ExactChoice(furnaceInput), 0, 20); | ||
this.getServer().addRecipe(recipe); | ||
|
||
final ShapedRecipe shapedRecipe = new ShapedRecipe(SHAPED_RECIPE_KEY, new ItemStack(Material.NETHER_BRICK)); | ||
shapedRecipe.shape( | ||
"#$%", | ||
" @ ", | ||
" $ " | ||
); | ||
shapedRecipe.setIngredient('$', new RecipeChoice.ExactChoice(SOME_INGREDIENT)); | ||
shapedRecipe.setIngredient('#', new RecipeChoice.MaterialChoice(Material.OAK_PLANKS)); | ||
shapedRecipe.setIngredient('%', new RecipeChoice.ExactChoice(new ItemStack(SOME_INGREDIENT.getType()))); | ||
shapedRecipe.setIngredient('@', new RecipeChoice.MaterialChoice(SOME_INGREDIENT.getType())); | ||
this.getServer().addRecipe(shapedRecipe); | ||
|
||
final ShapelessRecipe shapelessRecipe = new ShapelessRecipe(SHAPELESS_RECIPE_KEY, new ItemStack(Material.DEEPSLATE)); | ||
for (int i = 0; i < 4; i++) { | ||
shapelessRecipe.addIngredient(new RecipeChoice.ExactChoice(SOME_INGREDIENT)); | ||
} | ||
shapelessRecipe.addIngredient(new RecipeChoice.MaterialChoice(Material.ICE)); | ||
shapelessRecipe.addIngredient(new RecipeChoice.MaterialChoice(SOME_INGREDIENT.getType())); | ||
this.getServer().addRecipe(shapelessRecipe); | ||
} | ||
|
||
@EventHandler | ||
public void onEvent(PlayerJoinEvent event) { | ||
event.getPlayer().discoverRecipe(FURNACE_RECIPE_KEY); | ||
event.getPlayer().discoverRecipe(SHAPED_RECIPE_KEY); | ||
event.getPlayer().discoverRecipe(SHAPELESS_RECIPE_KEY); | ||
} | ||
|
||
@EventHandler | ||
public void onEvent(ChatEvent event) { | ||
final ItemStack clone = SOME_INGREDIENT.clone(); | ||
clone.setAmount(64); | ||
event.getPlayer().getInventory().addItem(clone); | ||
} | ||
} |