<commit_before>package com.elmakers.mine.bukkit.magic;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.MemoryConfiguration;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.util.NumberConversions;
import org.bukkit.util.Vector;

import com.elmakers.mine.bukkit.api.magic.MageController;
import com.elmakers.mine.bukkit.api.magic.MagicProperties;
import com.elmakers.mine.bukkit.utility.ConfigurationUtils;
import com.elmakers.mine.bukkit.utility.InventoryUtils;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;

public class BaseMagicProperties implements MagicProperties {

    protected final @Nonnull MagicController controller;
    protected ConfigurationSection configuration = new MemoryConfiguration();

    public static final ImmutableSet<String> PROPERTY_KEYS = ImmutableSet.of(
            "active_spell", "active_brush", "alternate_spell", "alternate_spell2",
            "path", "template", "worn",
            "mana", "mana_regeneration", "mana_max", "mana_max_boost",
            "mana_regeneration_boost",
            "mana_per_damage", "reset_mana_on_activate",
            "bound", "has_uses", "uses", "upgrade", "indestructible", "use_mode",
            "undroppable", "boostable", "auto_absorb",
            "consume_reduction", "cost_reduction", "cooldown_reduction",
            "effect_bubbles", "effect_color",
            "effect_particle", "effect_particle_count", "effect_particle_data",
            "effect_particle_interval",
            "effect_particle_min_velocity",
            "effect_particle_radius", "effect_particle_offset",
            "effect_sound", "effect_sound_interval",
            "cast_spell", "cast_parameters", "cast_interval", "cast_interval_cost_free",
            "cast_min_velocity", "cast_velocity_direction", "cast_min_bowpull",
            "hotbar_count", "hotbar",
            "icon", "icon_inactive", "icon_inactive_delay", "mode",
            "active_effects", "cancel_effects_delay",
            "brush_mode", "currency_display",
            "keep", "locked", "quiet", "force", "rename",
            "rename_description",
            "power", "overrides",
            "protection", "potion_effects", "item_attributes",
            "brushes", "brush_inventory", "spells", "spell_inventory", "spell_levels",
            "powered", "protected", "heroes",
            "enchant_count", "max_enchant_count",
            "quick_cast", "left_click", "right_click", "drop", "swap",
            "block_fov", "block_chance", "block_reflect_chance", "block_mage_cooldown", "block_cooldown",
            "unique", "track", "invulnerable", "immortal", "inventory_rows", "cast_location",
            "earn_multiplier", "class", "classes",
            "consume_spell", "stack", "unstashable", "unmoveable", "attributes", "tags"
    );
<commit_msg>Add _sneak actions to auto-complete<commit_after>package com.elmakers.mine.bukkit.magic;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.MemoryConfiguration;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.util.NumberConversions;
import org.bukkit.util.Vector;

import com.elmakers.mine.bukkit.api.magic.MageController;
import com.elmakers.mine.bukkit.api.magic.MagicProperties;
import com.elmakers.mine.bukkit.utility.ConfigurationUtils;
import com.elmakers.mine.bukkit.utility.InventoryUtils;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;

public class BaseMagicProperties implements MagicProperties {

    protected final @Nonnull MagicController controller;
    protected ConfigurationSection configuration = new MemoryConfiguration();

    public static final ImmutableSet<String> PROPERTY_KEYS = ImmutableSet.of(
            "active_spell", "active_brush", "alternate_spell", "alternate_spell2",
            "path", "template", "worn",
            "mana", "mana_regeneration", "mana_max", "mana_max_boost",
            "mana_regeneration_boost",
            "mana_per_damage", "reset_mana_on_activate",
            "bound", "has_uses", "uses", "upgrade", "indestructible", "use_mode",
            "undroppable", "boostable", "auto_absorb",
            "consume_reduction", "cost_reduction", "cooldown_reduction",
            "effect_bubbles", "effect_color",
            "effect_particle", "effect_particle_count", "effect_particle_data",
            "effect_particle_interval",
            "effect_particle_min_velocity",
            "effect_particle_radius", "effect_particle_offset",
            "effect_sound", "effect_sound_interval",
            "cast_spell", "cast_parameters", "cast_interval", "cast_interval_cost_free",
            "cast_min_velocity", "cast_velocity_direction", "cast_min_bowpull",
            "hotbar_count", "hotbar",
            "icon", "icon_inactive", "icon_inactive_delay", "mode",
            "active_effects", "cancel_effects_delay",
            "brush_mode", "currency_display",
            "keep", "locked", "quiet", "force", "rename",
            "rename_description",
            "power", "overrides",
            "protection", "potion_effects", "item_attributes",
            "brushes", "brush_inventory", "spells", "spell_inventory", "spell_levels",
            "powered", "protected", "heroes",
            "enchant_count", "max_enchant_count",
            "quick_cast",
            "left_click", "right_click", "drop", "swap",
            "left_click_sneak", "right_click_sneak", "drop_sneak", "swap_sneak",
            "block_fov", "block_chance", "block_reflect_chance", "block_mage_cooldown", "block_cooldown",
            "unique", "track", "invulnerable", "immortal", "inventory_rows", "cast_location",
            "earn_multiplier", "class", "classes",
            "consume_spell", "stack", "unstashable", "unmoveable", "attributes", "tags"
    );

{'fraction_non_alphanumeric': 0.12817356516387138, 'fraction_numerical': 0.00030773965225419295, 'mean_word_length': 3.887218045112782, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, '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': '141599', 'n_tokens_mistral': 2006, 'n_tokens_neox': 1937, 'n_words': 338}