@@ -46,6 +46,7 @@ import java.util.stream.Collectors;
|
||||
import javax.imageio.ImageIO;
|
||||
import jline.console.ConsoleReader;
|
||||
import net.minecraft.advancements.Advancement;
|
||||
import net.minecraft.advancements.AdvancementHolder;
|
||||
import net.minecraft.commands.CommandDispatcher;
|
||||
import net.minecraft.commands.CommandListenerWrapper;
|
||||
import net.minecraft.commands.arguments.ArgumentEntity;
|
||||
@@ -95,6 +96,7 @@ import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemWorldMap;
|
||||
import net.minecraft.world.item.crafting.IRecipe;
|
||||
import net.minecraft.world.item.crafting.RecipeCrafting;
|
||||
import net.minecraft.world.item.crafting.RecipeHolder;
|
||||
import net.minecraft.world.item.crafting.RecipeRepair;
|
||||
import net.minecraft.world.item.crafting.Recipes;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
@@ -187,6 +189,7 @@ import org.bukkit.craftbukkit.metadata.PlayerMetadataStore;
|
||||
import org.bukkit.craftbukkit.metadata.WorldMetadataStore;
|
||||
import org.bukkit.craftbukkit.packs.CraftDataPackManager;
|
||||
import org.bukkit.craftbukkit.potion.CraftPotionBrewer;
|
||||
import org.bukkit.craftbukkit.profile.CraftGameProfile;
|
||||
import org.bukkit.craftbukkit.profile.CraftPlayerProfile;
|
||||
import org.bukkit.craftbukkit.scheduler.CraftScheduler;
|
||||
import org.bukkit.craftbukkit.scoreboard.CraftCriteria;
|
||||
@@ -1319,7 +1322,7 @@ public final class CraftServer implements Server {
|
||||
public Recipe getRecipe(NamespacedKey recipeKey) {
|
||||
Preconditions.checkArgument(recipeKey != null, "NamespacedKey recipeKey cannot be null");
|
||||
|
||||
return getServer().getRecipeManager().byKey(CraftNamespacedKey.toMinecraft(recipeKey)).map(IRecipe::toBukkitRecipe).orElse(null);
|
||||
return getServer().getRecipeManager().byKey(CraftNamespacedKey.toMinecraft(recipeKey)).map(RecipeHolder::toBukkitRecipe).orElse(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1343,7 +1346,7 @@ public final class CraftServer implements Server {
|
||||
};
|
||||
InventoryCrafting inventoryCrafting = new TransientCraftingContainer(container, 3, 3);
|
||||
|
||||
return getNMSRecipe(craftingMatrix, inventoryCrafting, (CraftWorld) world).map(IRecipe::toBukkitRecipe).orElse(null);
|
||||
return getNMSRecipe(craftingMatrix, inventoryCrafting, (CraftWorld) world).map(RecipeHolder::toBukkitRecipe).orElse(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1359,20 +1362,20 @@ public final class CraftServer implements Server {
|
||||
InventoryCrafting inventoryCrafting = container.craftSlots;
|
||||
InventoryCraftResult craftResult = container.resultSlots;
|
||||
|
||||
Optional<RecipeCrafting> recipe = getNMSRecipe(craftingMatrix, inventoryCrafting, craftWorld);
|
||||
Optional<RecipeHolder<RecipeCrafting>> recipe = getNMSRecipe(craftingMatrix, inventoryCrafting, craftWorld);
|
||||
|
||||
// Generate the resulting ItemStack from the Crafting Matrix
|
||||
net.minecraft.world.item.ItemStack itemstack = net.minecraft.world.item.ItemStack.EMPTY;
|
||||
|
||||
if (recipe.isPresent()) {
|
||||
RecipeCrafting recipeCrafting = recipe.get();
|
||||
RecipeHolder<RecipeCrafting> recipeCrafting = recipe.get();
|
||||
if (craftResult.setRecipeUsed(craftWorld.getHandle(), craftPlayer.getHandle(), recipeCrafting)) {
|
||||
itemstack = recipeCrafting.assemble(inventoryCrafting, craftWorld.getHandle().registryAccess());
|
||||
itemstack = recipeCrafting.value().assemble(inventoryCrafting, craftWorld.getHandle().registryAccess());
|
||||
}
|
||||
}
|
||||
|
||||
// Call Bukkit event to check for matrix/result changes.
|
||||
net.minecraft.world.item.ItemStack result = CraftEventFactory.callPreCraftEvent(inventoryCrafting, craftResult, itemstack, container.getBukkitView(), recipe.orElse(null) instanceof RecipeRepair);
|
||||
net.minecraft.world.item.ItemStack result = CraftEventFactory.callPreCraftEvent(inventoryCrafting, craftResult, itemstack, container.getBukkitView(), recipe.map(RecipeHolder::toBukkitRecipe).orElse(null) instanceof RecipeRepair);
|
||||
|
||||
// Set the resulting matrix items
|
||||
for (int i = 0; i < craftingMatrix.length; i++) {
|
||||
@@ -1383,7 +1386,7 @@ public final class CraftServer implements Server {
|
||||
return CraftItemStack.asBukkitCopy(result);
|
||||
}
|
||||
|
||||
private Optional<RecipeCrafting> getNMSRecipe(ItemStack[] craftingMatrix, InventoryCrafting inventoryCrafting, CraftWorld world) {
|
||||
private Optional<RecipeHolder<RecipeCrafting>> getNMSRecipe(ItemStack[] craftingMatrix, InventoryCrafting inventoryCrafting, CraftWorld world) {
|
||||
Preconditions.checkArgument(craftingMatrix != null, "craftingMatrix must not be null");
|
||||
Preconditions.checkArgument(craftingMatrix.length == 9, "craftingMatrix must be an array of length 9");
|
||||
Preconditions.checkArgument(world != null, "world must not be null");
|
||||
@@ -1673,7 +1676,7 @@ public final class CraftServer implements Server {
|
||||
if (result == null) {
|
||||
result = offlinePlayers.get(id);
|
||||
if (result == null) {
|
||||
result = new CraftOfflinePlayer(this, new GameProfile(id, null));
|
||||
result = new CraftOfflinePlayer(this, new CraftGameProfile(id, null));
|
||||
offlinePlayers.put(id, result);
|
||||
}
|
||||
} else {
|
||||
@@ -2198,16 +2201,16 @@ public final class CraftServer implements Server {
|
||||
public org.bukkit.advancement.Advancement getAdvancement(NamespacedKey key) {
|
||||
Preconditions.checkArgument(key != null, "NamespacedKey key cannot be null");
|
||||
|
||||
Advancement advancement = console.getAdvancements().getAdvancement(CraftNamespacedKey.toMinecraft(key));
|
||||
return (advancement == null) ? null : advancement.bukkit;
|
||||
AdvancementHolder advancement = console.getAdvancements().get(CraftNamespacedKey.toMinecraft(key));
|
||||
return (advancement == null) ? null : advancement.toBukkit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator<org.bukkit.advancement.Advancement> advancementIterator() {
|
||||
return Iterators.unmodifiableIterator(Iterators.transform(console.getAdvancements().getAllAdvancements().iterator(), new Function<Advancement, org.bukkit.advancement.Advancement>() {
|
||||
return Iterators.unmodifiableIterator(Iterators.transform(console.getAdvancements().getAllAdvancements().iterator(), new Function<AdvancementHolder, org.bukkit.advancement.Advancement>() {
|
||||
@Override
|
||||
public org.bukkit.advancement.Advancement apply(Advancement advancement) {
|
||||
return advancement.bukkit;
|
||||
public org.bukkit.advancement.Advancement apply(AdvancementHolder advancement) {
|
||||
return advancement.toBukkit();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user