<commit_before>package com.elmakers.mine.bukkit.api.wand;

import com.elmakers.mine.bukkit.api.block.MaterialAndData;
import com.elmakers.mine.bukkit.api.magic.Mage;

import java.util.Collection;
import java.util.Set;

public interface WandUpgradePath {
    public String getKey();
    public String getName();
    public MaterialAndData getIcon();
    public boolean requiresSpell(String spellKey);
    public boolean hasSpell(String spellKey);
    public String getDescription();
    public boolean hasPath(String pathName);
    public boolean hasUpgrade();
    public boolean checkUpgradeRequirements(Wand wand, Mage mage);
    public Set<String> getTags();
    public boolean hasTag(String tag);
    public boolean hasAnyTag(Collection<String> tagSet);
    public boolean hasAllTags(Collection<String> tagSet);
    public Set<String> getMissingTags(Collection<String> tagSet);
    public WandUpgradePath getUpgrade();
    public String translatePath(String path);
    public void upgrade(Wand wand, Mage mage);
    public void checkMigration(Wand wand);
    public Collection<String> getSpells();
    public Collection<String> getRequiredSpells();
    public boolean canEnchant(Wand wand);
    public boolean earnsSP();
}<commit_msg>Added extra_spells for a path for non-required spells.<commit_after>package com.elmakers.mine.bukkit.api.wand;

import com.elmakers.mine.bukkit.api.block.MaterialAndData;
import com.elmakers.mine.bukkit.api.magic.Mage;

import java.util.Collection;
import java.util.Set;

public interface WandUpgradePath {
    public String getKey();
    public String getName();
    public MaterialAndData getIcon();
    public boolean requiresSpell(String spellKey);
    public boolean hasSpell(String spellKey);
    public boolean hasExtraSpell(String spellKey);
    public String getDescription();
    public boolean hasPath(String pathName);
    public boolean hasUpgrade();
    public boolean checkUpgradeRequirements(Wand wand, Mage mage);
    public Set<String> getTags();
    public boolean hasTag(String tag);
    public boolean hasAnyTag(Collection<String> tagSet);
    public boolean hasAllTags(Collection<String> tagSet);
    public Set<String> getMissingTags(Collection<String> tagSet);
    public WandUpgradePath getUpgrade();
    public String translatePath(String path);
    public void upgrade(Wand wand, Mage mage);
    public void checkMigration(Wand wand);
    public Collection<String> getSpells();
    public Collection<String> getExtraSpells();
    public Collection<String> getRequiredSpells();
    public boolean canEnchant(Wand wand);
    public boolean earnsSP();
}
{'fraction_non_alphanumeric': 0.090283091048202, 'fraction_numerical': 0.0, 'mean_word_length': 4.929705215419501, 'pattern_counts': {'":': 0, '<': 18, '<?xml version=': 0, '>': 18, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '679494', 'n_tokens_mistral': 728, 'n_tokens_neox': 722, 'n_words': 204}