Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-14 20:10:05 +01:00
[ci skip] clear out test plugin
Dieser Commit ist enthalten in:
Ursprung
b8a0049207
Commit
b45ecc93c1
@ -1,85 +1,12 @@
|
|||||||
package io.papermc.testplugin;
|
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.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 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 {
|
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
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
this.getServer().getPluginManager().registerEvents(this, this);
|
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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren