Basic Operations

Create context

Player player = Bukkit.getPlayer("player");
Context<Player> context = Context.player(player);
// You can create it with null, but please be careful not to use it in any place 
// where a player is needed, such as checking permissions, sending messages
Context<Player> context = Context.player(null);

Get plugin instance

BukkitCustomFishingPlugin api = BukkitCustomFishingPlugin.getInstance()

Build an item instance

ItemStack itemStack = api.getItemManager().buildInternal(context, "rubbish");

Get effect modifier

Optional<EffectModifier> optional = api.getEffectManager().getEffectModifier("beginner_rod", MechanicType.ROD);
if (optional.isPresent()) {
    EffectModifier modifier = optional.get();
}

Create new effect instance

Apply the modifier

Get the loot at a certain location

Convert loot into an itemStack

Get the itemStack from FishingLootSpawnEvent