mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 23:38:25 +01:00
79720eaf85
This fixes a confusing issue where doing 'merchant.setRecipes(merchant.getRecipes());' would clear the merchants recipes, as the implementation of getRecipes is guavas Lists.transform wrapped in Collections.unmodifiableList, and the implementation of setRecipes clears the backing list before adding the elements of the provided list to the backing list. The javadoc for the getRecipes method says 'an immutable list of trades', so this patch makes the javadoc correct.
19 lines
1.4 KiB
Diff
19 lines
1.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
|
|
Date: Wed, 10 Feb 2021 14:53:36 -0800
|
|
Subject: [PATCH] Merchant#getRecipes should return an immutable list
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchant.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchant.java
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchant.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMerchant.java
|
|
@@ -0,0 +0,0 @@ public class CraftMerchant implements Merchant {
|
|
|
|
@Override
|
|
public List<MerchantRecipe> getRecipes() {
|
|
- return Collections.unmodifiableList(Lists.transform(merchant.getOffers(), new Function<net.minecraft.server.MerchantRecipe, MerchantRecipe>() {
|
|
+ return com.google.common.collect.ImmutableList.copyOf(Lists.transform(merchant.getOffers(), new Function<net.minecraft.server.MerchantRecipe, MerchantRecipe>() { // Paper - javadoc says 'an immutable list of trades' - not 'an unmodifiable view of a list of trades'. fixes issue with setRecipes(getRecipes())
|
|
@Override
|
|
public MerchantRecipe apply(net.minecraft.server.MerchantRecipe recipe) {
|
|
return recipe.asBukkit();
|