diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/CustomFishingProvider.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/CustomFishingProvider.java index e32e03631..ead100754 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/CustomFishingProvider.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/CustomFishingProvider.java @@ -4,20 +4,28 @@ import net.momirealms.craftengine.core.item.ExternalItemProvider; import net.momirealms.craftengine.core.item.ItemBuildContext; import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; import net.momirealms.customfishing.api.mechanic.context.Context; +import net.momirealms.customfishing.api.mechanic.context.ContextKeys; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.Nullable; +import java.util.Optional; + public class CustomFishingProvider implements ExternalItemProvider { @Override public String plugin() { return "CustomFishing"; } + @SuppressWarnings("UnstableApiUsage") @Nullable @Override public ItemStack build(String id, ItemBuildContext context) { - return BukkitCustomFishingPlugin.getInstance().getItemManager() - .buildInternal(Context.player(((Player) context.player().platformPlayer())), id); + Context ctx = Context.player( + (Player) Optional.ofNullable(context.player()) + .map(net.momirealms.craftengine.core.entity.player.Player::platformPlayer) + .orElse(null) + ); + return BukkitCustomFishingPlugin.getInstance().getItemManager().buildInternal(ctx.arg(ContextKeys.ID, id), id); } }