<commit_before>/**
 * Copy of
 * https://github.com/matthewprenger/HelpFixer/blob/master/src/main/java/com/matthewprenger/helpfixer/HelpFixer.java
 * for FE specifically.
 */
package com.forgeessentials.compat;

import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import net.minecraft.command.CommandHelp;
import net.minecraft.command.CommandNotFoundException;
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.NumberInvalidException;
import net.minecraft.command.WrongUsageException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.event.ClickEvent;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.MathHelper;

/**
 * @author <NAME>
 *
 */
public class HelpFixer extends CommandHelp
{

    public static boolean hideWorldEditCommands = true;

    @Override
    @SuppressWarnings("unchecked")
    public List<ICommand> getSortedPossibleCommands(ICommandSender sender)
    {
        List<ICommand> list = MinecraftServer.getServer().getCommandManager().getPossibleCommands(sender);
        if (hideWorldEditCommands)
        {
            for (Iterator<ICommand> it = list.iterator(); it.hasNext();)
            {
                ICommand command = it.next();
                if (command.getClass().getName().startsWith("com.sk89q.worldedit") && !command.getCommandName().equals("/help"))
                    it.remove();
            }
        }
        // Ok there is some retard who thinks he should implement ICommand instead of extending CommandBase and then
        // fails to properly implement compareTo (it always returns 0).
        // So to prevent crashes from these kind of things, we just provide our own comparator
        Collections.sort(list, new Comparator<ICommand>() {
            @Override
            public int compare(ICommand o1, ICommand o2)
            {
                return o1.getCommandName().compareTo(o2.getCommandName());
            }
        });
        return list;
    }

    /**
     * Fix for retard mods who think they can just return null in {@link ICommand#getCommandUsage(ICommandSender)}
     */
    @Override
    @SuppressWarnings("unchecked")
    public void processCommand(ICommandSender sender, String[] args)
    {
        List<ICommand> commands = getSortedPossibleCommands(sender);
        byte cmdsPerPage = 7;
        int i = (commands.size() - 1) / cmdsPerPage;

        int startPage;
        try
        {
            startPage = args.length == 0 ? 0 : parseIntBounded(sender, args[0], 1, i + 1) - 1;
        }
        catch (NumberInvalidException e)
        {
            Map<String, ICommand> cmdMap = getCommands();
            ICommand cmd = cmdMap.get(args[0]);
            if (cmd != null)
            {
                String usage = cmd.getCommandUsage(sender);
                if (usage == null)
                    usage = "/" + cmd.getCommandName();
                throw new WrongUsageException(usage, new Object[0]);
            }
            else if (MathHelper.parseIntWithDefault(args[0], -1) != -1)
            {
                throw e;
            }
            throw new CommandNotFoundException();
        }

        int endIndex = Math.min((startPage + 1) * cmdsPerPage, commands.size());
        ChatComponentTranslation msg = new ChatComponentTranslation("commands.help.header", new Object[] { Integer.valueOf(startPage + 1),
                Integer.valueOf(i + 1) });
        msg.getChatStyle().setColor(EnumChatFormatting.DARK_GREEN);
        sender.addChatMessage(msg);

        for (int index = startPage * cmdsPerPage; index < endIndex; ++index)
        {
            ICommand cmd = commands.get(index);
            String usage = cmd.getCommandUsage(sender);
            if (usage == null)
                usage = "/" + cmd.getCommandName();
            ChatComponentTranslation msg2 = new ChatComponentTranslation(usage, new Object[0]);
            msg2.getChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/" + cmd.getCommandName() + " "));
            sender.addChatMessage(msg2);
        }

        if (startPage == 0 && sender instanceof EntityPlayer)
        {
            ChatComponentTranslation msg3 = new ChatComponentTranslation("commands.help.footer", new Object[0]);
            msg3.getChatStyle().setColor(EnumChatFormatting.GREEN);
            sender.addChatMessage(msg3);
        }
    }

}
<commit_msg>Fixed derp<commit_after>/**
 * Copy of
 * https://github.com/matthewprenger/HelpFixer/blob/master/src/main/java/com/matthewprenger/helpfixer/HelpFixer.java
 * for FE specifically.
 */
package com.forgeessentials.compat;

import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import net.minecraft.command.CommandHelp;
import net.minecraft.command.CommandNotFoundException;
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.NumberInvalidException;
import net.minecraft.command.WrongUsageException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.event.ClickEvent;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.MathHelper;

public class HelpFixer extends CommandHelp
{

    public static boolean hideWorldEditCommands = true;

    @Override
    @SuppressWarnings("unchecked")
    public List<ICommand> getSortedPossibleCommands(ICommandSender sender)
    {
        List<ICommand> list = MinecraftServer.getServer().getCommandManager().getPossibleCommands(sender);
        if (hideWorldEditCommands)
        {
            for (Iterator<ICommand> it = list.iterator(); it.hasNext();)
            {
                ICommand command = it.next();
                if (command.getClass().getName().startsWith("com.sk89q.worldedit") && !command.getCommandName().equals("/help"))
                    it.remove();
            }
        }
        // Ok there is some retard who thinks he should implement ICommand instead of extending CommandBase and then
        // fails to properly implement compareTo (it always returns 0).
        // So to prevent crashes from these kind of things, we just provide our own comparator
        Collections.sort(list, new Comparator<ICommand>() {
            @Override
            public int compare(ICommand o1, ICommand o2)
            {
                return o1.getCommandName().compareTo(o2.getCommandName());
            }
        });
        return list;
    }

    /**
     * Fix for retard mods who think they can just return null in {@link ICommand#getCommandUsage(ICommandSender)}
     */
    @Override
    @SuppressWarnings("unchecked")
    public void processCommand(ICommandSender sender, String[] args)
    {
        List<ICommand> commands = getSortedPossibleCommands(sender);
        byte cmdsPerPage = 7;
        int i = (commands.size() - 1) / cmdsPerPage;

        int startPage;
        try
        {
            startPage = args.length == 0 ? 0 : parseIntBounded(sender, args[0], 1, i + 1) - 1;
        }
        catch (NumberInvalidException e)
        {
            Map<String, ICommand> cmdMap = getCommands();
            ICommand cmd = cmdMap.get(args[0]);
            if (cmd != null)
            {
                String usage = cmd.getCommandUsage(sender);
                if (usage == null)
                    usage = "/" + cmd.getCommandName();
                throw new WrongUsageException(usage, new Object[0]);
            }
            else if (MathHelper.parseIntWithDefault(args[0], -1) != -1)
            {
                throw e;
            }
            throw new CommandNotFoundException();
        }

        int endIndex = Math.min((startPage + 1) * cmdsPerPage, commands.size());
        ChatComponentTranslation msg = new ChatComponentTranslation("commands.help.header", new Object[] { Integer.valueOf(startPage + 1),
                Integer.valueOf(i + 1) });
        msg.getChatStyle().setColor(EnumChatFormatting.DARK_GREEN);
        sender.addChatMessage(msg);

        for (int index = startPage * cmdsPerPage; index < endIndex; ++index)
        {
            ICommand cmd = commands.get(index);
            String usage = cmd.getCommandUsage(sender);
            if (usage == null)
                usage = "/" + cmd.getCommandName();
            ChatComponentTranslation msg2 = new ChatComponentTranslation(usage, new Object[0]);
            msg2.getChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/" + cmd.getCommandName() + " "));
            sender.addChatMessage(msg2);
        }

        if (startPage == 0 && sender instanceof EntityPlayer)
        {
            ChatComponentTranslation msg3 = new ChatComponentTranslation("commands.help.footer", new Object[0]);
            msg3.getChatStyle().setColor(EnumChatFormatting.GREEN);
            sender.addChatMessage(msg3);
        }
    }

}

{'fraction_non_alphanumeric': 0.10715835140997831, 'fraction_numerical': 0.006941431670281995, 'mean_word_length': 2.5181228538725677, 'pattern_counts': {'":': 0, '<': 18, '<?xml version=': 0, '>': 16, 'https://': 2, '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': '2365406', 'n_tokens_mistral': 2522, 'n_tokens_neox': 2519, 'n_words': 551}