// ==================================================================
// This file is part of Player API.
//
// Player API is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// Player API is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License and the GNU General Public License along with Player API.
// If not, see <http://www.gnu.org/licenses/>.
// ==================================================================
package api.player.client;
import java.io.*;
import java.text.*;
import java.util.*;
import java.util.logging.*;
import java.lang.reflect.*;
public final class ClientPlayerAPI
{
private final static Class<?>[] Class = new Class[] { ClientPlayerAPI.class };
private final static Class<?>[] Classes = new Class[] { ClientPlayerAPI.class, String.class };
private static boolean isCreated;
private static final Logger logger = Logger.getLogger("ClientPlayerAPI");
private static void log(String text)
{
System.out.println(text);
logger.fine(text);
}
public static void register(String id, Class<?> baseClass)
{
register(id, baseClass, null);
}
public static void register(String id, Class<?> baseClass, ClientPlayerBaseSorting baseSorting)
{
try
{
register(baseClass, id, baseSorting);
}
catch(RuntimeException exception)
{
if(id != null)
log("Client Player: failed to register id '" + id + "'");
else
log("Client Player: failed to register ClientPlayerBase");
throw exception;
}
}
private static void register(Class<?> baseClass, String id, ClientPlayerBaseSorting baseSorting)
{
if(!isCreated)
{
try
{
Method mandatory = net.minecraft.client.entity.EntityPlayerSP.class.getMethod("getClientPlayerBase", String.class);
if (mandatory.getReturnType() != ClientPlayerBase.class)
throw new NoSuchMethodException(ClientPlayerBase.class.getName() + " " + net.minecraft.client.entity.EntityPlayerSP.class.getName() + ".getClientPlayerBase(" + String.class.getName() + ")");
}
catch(NoSuchMethodException exception)
{
String[] errorMessageParts = new String[]
{
"========================================",
"The API \"Client Player\" version " + api.player.forge.PlayerAPIPlugin.Version + " of the mod \"Player API Core " + api.player.forge.PlayerAPIPlugin.Version + "\" can not be created!",
"----------------------------------------",
"Mandatory member method \"{0} getClientPlayerBase({3})\" not found in class \"{1}\".",
"There are three scenarios this can happen:",
"* Minecraft Forge is missing a Player API Core which Minecraft version matches its own.",
" Download and install the latest Player API Core for the Minecraft version you were trying to run.",
"* The code of the class \"{2}\" of Player API Core has been modified beyond recognition by another Minecraft Forge coremod.",
" Try temporary deinstallation of other core mods to find the culprit and deinstall it permanently to fix this specific problem.",
"* Player API Core has not been installed correctly.",
" Deinstall Player API Core and install it again following the installation instructions in the readme file.",
"========================================"
};
String baseEntityPlayerSPClassName = ClientPlayerBase.class.getName();
String targetClassName = net.minecraft.client.entity.EntityPlayerSP.class.getName();
String targetClassFileName = targetClassName.replace(".", File.separator);
String stringClassName = String.class.getName();
for(int i=0; i<errorMessageParts.length; i++)
errorMessageParts[i] = MessageFormat.format(errorMessageParts[i], baseEntityPlayerSPClassName, targetClassName, targetClassFileName, stringClassName);
for(String errorMessagePart : errorMessageParts)
logger.severe(errorMessagePart);
for(String errorMessagePart : errorMessageParts)
System.err.println(errorMessagePart);
String errorMessage = "\n\n";
for(String errorMessagePart : errorMessageParts)
errorMessage += "\t" + errorMessagePart + "\n";
throw new RuntimeException(errorMessage, exception);
}
log("Client Player " + api.player.forge.PlayerAPIPlugin.Version + " Created");
isCreated = true;
}
if(id == null)
throw new NullPointerException("Argument 'id' can not be null");
if(baseClass == null)
throw new NullPointerException("Argument 'baseClass' can not be null");
Constructor<?> allreadyRegistered = allBaseConstructors.get(id);
if(allreadyRegistered != null)
throw new IllegalArgumentException("The class '" + baseClass.getName() + "' can not be registered with the id '" + id + "' because the class '" + allreadyRegistered.getDeclaringClass().getName() + "' has allready been registered with the same id");
Constructor<?> baseConstructor;
try
{
baseConstructor = baseClass.getDeclaredConstructor(Classes);
}
catch (Throwable t)
{
try
{
baseConstructor = baseClass.getDeclaredConstructor(Class);
}
catch(Throwable s)
{
throw new IllegalArgumentException("Can not find necessary constructor with one argument of type '" + ClientPlayerAPI.class.getName() + "' and eventually a second argument of type 'String' in the class '" + baseClass.getName() + "'", t);
}
}
allBaseConstructors.put(id, baseConstructor);
if(baseSorting != null)
{
addSorting(id, allBaseBeforeLocalConstructingSuperiors, baseSorting.getBeforeLocalConstructingSuperiors());
addSorting(id, allBaseBeforeLocalConstructingInferiors, baseSorting.getBeforeLocalConstructingInferiors());
addSorting(id, allBaseAfterLocalConstructingSuperiors, baseSorting.getAfterLocalConstructingSuperiors());
addSorting(id, allBaseAfterLocalConstructingInferiors, baseSorting.getAfterLocalConstructingInferiors());
addDynamicSorting(id, allBaseBeforeDynamicSuperiors, baseSorting.getDynamicBeforeSuperiors());
addDynamicSorting(id, allBaseBeforeDynamicInferiors, baseSorting.getDynamicBeforeInferiors());
addDynamicSorting(id, allBaseOverrideDynamicSuperiors, baseSorting.getDynamicOverrideSuperiors());
addDynamicSorting(id, allBaseOverrideDynamicInferiors, baseSorting.getDynamicOverrideInferiors());
addDynamicSorting(id, allBaseAfterDynamicSuperiors, baseSorting.getDynamicAfterSuperiors());
addDynamicSorting(id, allBaseAfterDynamicInferiors, baseSorting.getDynamicAfterInferiors());
addSorting(id, allBaseBeforeAddExhaustionSuperiors, baseSorting.getBeforeAddExhaustionSuperiors());
addSorting(id, allBaseBeforeAddExhaustionInferiors, baseSorting.getBeforeAddExhaustionInferiors());
addSorting(id, allBaseOverrideAddExhaustionSuperiors, baseSorting.getOverrideAddExhaustionSuperiors());
addSorting(id, allBaseOverrideAddExhaustionInferiors, baseSorting.getOverrideAddExhaustionInferiors());
addSorting(id, allBaseAfterAddExhaustionSuperiors, baseSorting.getAfterAddExhaustionSuperiors());
addSorting(id, allBaseAfterAddExhaustionInferiors, baseSorting.getAfterAddExhaustionInferiors());
addSorting(id, allBaseBeforeAddMovementStatSuperiors, baseSorting.getBeforeAddMovementStatSuperiors());
addSorting(id, allBaseBeforeAddMovementStatInferiors, baseSorting.getBeforeAddMovementStatInferiors());
addSorting(id, allBaseOverrideAddMovementStatSuperiors, baseSorting.getOverrideAddMovementStatSuperiors());
addSorting(id, allBaseOverrideAddMovementStatInferiors, baseSorting.getOverrideAddMovementStatInferiors());
addSorting(id, allBaseAfterAddMovementStatSuperiors, baseSorting.getAfterAddMovementStatSuperiors());
addSorting(id, allBaseAfterAddMovementStatInferiors, baseSorting.getAfterAddMovementStatInferiors());
addSorting(id, allBaseBeforeAddStatSuperiors, baseSorting.getBeforeAddStatSuperiors());
addSorting(id, allBaseBeforeAddStatInferiors, baseSorting.getBeforeAddStatInferiors());
addSorting(id, allBaseOverrideAddStatSuperiors, baseSorting.getOverrideAddStatSuperiors());
addSorting(id, allBaseOverrideAddStatInferiors, baseSorting.getOverrideAddStatInferiors());
addSorting(id, allBaseAfterAddStatSuperiors, baseSorting.getAfterAddStatSuperiors());
addSorting(id, allBaseAfterAddStatInferiors, baseSorting.getAfterAddStatInferiors());
addSorting(id, allBaseBeforeAttackEntityFromSuperiors, baseSorting.getBeforeAttackEntityFromSuperiors());
addSorting(id, allBaseBeforeAttackEntityFromInferiors, baseSorting.getBeforeAttackEntityFromInferiors());
addSorting(id, allBaseOverrideAttackEntityFromSuperiors, baseSorting.getOverrideAttackEntityFromSuperiors());
addSorting(id, allBaseOverrideAttackEntityFromInferiors, baseSorting.getOverrideAttackEntityFromInferiors());
addSorting(id, allBaseAfterAttackEntityFromSuperiors, baseSorting.getAfterAttackEntityFromSuperiors());
addSorting(id, allBaseAfterAttackEntityFromInferiors, baseSorting.getAfterAttackEntityFromInferiors());
addSorting(id, allBaseBeforeAttackTargetEntityWithCurrentItemSuperiors, baseSorting.getBeforeAttackTargetEntityWithCurrentItemSuperiors());
addSorting(id, allBaseBeforeAttackTargetEntityWithCurrentItemInferiors, baseSorting.getBeforeAttackTargetEntityWithCurrentItemInferiors());
addSorting(id, allBaseOverrideAttackTargetEntityWithCurrentItemSuperiors, baseSorting.getOverrideAttackTargetEntityWithCurrentItemSuperiors());
addSorting(id, allBaseOverrideAttackTargetEntityWithCurrentItemInferiors, baseSorting.getOverrideAttackTargetEntityWithCurrentItemInferiors());
addSorting(id, allBaseAfterAttackTargetEntityWithCurrentItemSuperiors, baseSorting.getAfterAttackTargetEntityWithCurrentItemSuperiors());
addSorting(id, allBaseAfterAttackTargetEntityWithCurrentItemInferiors, baseSorting.getAfterAttackTargetEntityWithCurrentItemInferiors());
addSorting(id, allBaseBeforeCanBreatheUnderwaterSuperiors, baseSorting.getBeforeCanBreatheUnderwaterSuperiors());
addSorting(id, allBaseBeforeCanBreatheUnderwaterInferiors, baseSorting.getBeforeCanBreatheUnderwaterInferiors());
addSorting(id, allBaseOverrideCanBreatheUnderwaterSuperiors, baseSorting.getOverrideCanBreatheUnderwaterSuperiors());
addSorting(id, allBaseOverrideCanBreatheUnderwaterInferiors, baseSorting.getOverrideCanBreatheUnderwaterInferiors());
addSorting(id, allBaseAfterCanBreatheUnderwaterSuperiors, baseSorting.getAfterCanBreatheUnderwaterSuperiors());
addSorting(id, allBaseAfterCanBreatheUnderwaterInferiors, baseSorting.getAfterCanBreatheUnderwaterInferiors());
addSorting(id, allBaseBeforeCanHarvestBlockSuperiors, baseSorting.getBeforeCanHarvestBlockSuperiors());
addSorting(id, allBaseBeforeCanHarvestBlockInferiors, baseSorting.getBeforeCanHarvestBlockInferiors());
addSorting(id, allBaseOverrideCanHarvestBlockSuperiors, baseSorting.getOverrideCanHarvestBlockSuperiors());
addSorting(id, allBaseOverrideCanHarvestBlockInferiors, baseSorting.getOverrideCanHarvestBlockInferiors());
addSorting(id, allBaseAfterCanHarvestBlockSuperiors, baseSorting.getAfterCanHarvestBlockSuperiors());
addSorting(id, allBaseAfterCanHarvestBlockInferiors, baseSorting.getAfterCanHarvestBlockInferiors());
addSorting(id, allBaseBeforeCanPlayerEditSuperiors, baseSorting.getBeforeCanPlayerEditSuperiors());
addSorting(id, allBaseBeforeCanPlayerEditInferiors, baseSorting.getBeforeCanPlayerEditInferiors());
addSorting(id, allBaseOverrideCanPlayerEditSuperiors, baseSorting.getOverrideCanPlayerEditSuperiors());
addSorting(id, allBaseOverrideCanPlayerEditInferiors, baseSorting.getOverrideCanPlayerEditInferiors());
addSorting(id, allBaseAfterCanPlayerEditSuperiors, baseSorting.getAfterCanPlayerEditSuperiors());
addSorting(id, allBaseAfterCanPlayerEditInferiors, baseSorting.getAfterCanPlayerEditInferiors());
addSorting(id, allBaseBeforeCanTriggerWalkingSuperiors, baseSorting.getBeforeCanTriggerWalkingSuperiors());
addSorting(id, allBaseBeforeCanTriggerWalkingInferiors, baseSorting.getBeforeCanTriggerWalkingInferiors());
addSorting(id, allBaseOverrideCanTriggerWalkingSuperiors, baseSorting.getOverrideCanTriggerWalkingSuperiors());
addSorting(id, allBaseOverrideCanTriggerWalkingInferiors, baseSorting.getOverrideCanTriggerWalkingInferiors());
addSorting(id, allBaseAfterCanTriggerWalkingSuperiors, baseSorting.getAfterCanTriggerWalkingSuperiors());
addSorting(id, allBaseAfterCanTriggerWalkingInferiors, baseSorting.getAfterCanTriggerWalkingInferiors());
addSorting(id, allBaseBeforeCloseScreenSuperiors, baseSorting.getBeforeCloseScreenSuperiors());
addSorting(id, allBaseBeforeCloseScreenInferiors, baseSorting.getBeforeCloseScreenInferiors());
addSorting(id, allBaseOverrideCloseScreenSuperiors, baseSorting.getOverrideCloseScreenSuperiors());
addSorting(id, allBaseOverrideCloseScreenInferiors, baseSorting.getOverrideCloseScreenInferiors());
addSorting(id, allBaseAfterCloseScreenSuperiors, baseSorting.getAfterCloseScreenSuperiors());
addSorting(id, allBaseAfterCloseScreenInferiors, baseSorting.getAfterCloseScreenInferiors());
addSorting(id, allBaseBeforeDamageEntitySuperiors, baseSorting.getBeforeDamageEntitySuperiors());
addSorting(id, allBaseBeforeDamageEntityInferiors, baseSorting.getBeforeDamageEntityInferiors());
addSorting(id, allBaseOverrideDamageEntitySuperiors, baseSorting.getOverrideDamageEntitySuperiors());
addSorting(id, allBaseOverrideDamageEntityInferiors, baseSorting.getOverrideDamageEntityInferiors());
addSorting(id, allBaseAfterDamageEntitySuperiors, baseSorting.getAfterDamageEntitySuperiors());
addSorting(id, allBaseAfterDamageEntityInferiors, baseSorting.getAfterDamageEntityInferiors());
addSorting(id, allBaseBeforeDisplayGuiSuperiors, baseSorting.getBeforeDisplayGuiSuperiors());
addSorting(id, allBaseBeforeDisplayGuiInferiors, baseSorting.getBeforeDisplayGuiInferiors());
addSorting(id, allBaseOverrideDisplayGuiSuperiors, baseSorting.getOverrideDisplayGuiSuperiors());
addSorting(id, allBaseOverrideDisplayGuiInferiors, baseSorting.getOverrideDisplayGuiInferiors());
addSorting(id, allBaseAfterDisplayGuiSuperiors, baseSorting.getAfterDisplayGuiSuperiors());
addSorting(id, allBaseAfterDisplayGuiInferiors, baseSorting.getAfterDisplayGuiInferiors());
addSorting(id, allBaseBeforeDisplayGUIChestSuperiors, baseSorting.getBeforeDisplayGUIChestSuperiors());
addSorting(id, allBaseBeforeDisplayGUIChestInferiors, baseSorting.getBeforeDisplayGUIChestInferiors());
addSorting(id, allBaseOverrideDisplayGUIChestSuperiors, baseSorting.getOverrideDisplayGUIChestSuperiors());
addSorting(id, allBaseOverrideDisplayGUIChestInferiors, baseSorting.getOverrideDisplayGUIChestInferiors());
addSorting(id, allBaseAfterDisplayGUIChestSuperiors, baseSorting.getAfterDisplayGUIChestSuperiors());
addSorting(id, allBaseAfterDisplayGUIChestInferiors, baseSorting.getAfterDisplayGUIChestInferiors());
addSorting(id, allBaseBeforeDropItemSuperiors, baseSorting.getBeforeDropItemSuperiors());
addSorting(id, allBaseBeforeDropItemInferiors, baseSorting.getBeforeDropItemInferiors());
addSorting(id, allBaseOverrideDropItemSuperiors, baseSorting.getOverrideDropItemSuperiors());
addSorting(id, allBaseOverrideDropItemInferiors, baseSorting.getOverrideDropItemInferiors());
addSorting(id, allBaseAfterDropItemSuperiors, baseSorting.getAfterDropItemSuperiors());
addSorting(id, allBaseAfterDropItemInferiors, baseSorting.getAfterDropItemInferiors());
addSorting(id, allBaseBeforeDropOneItemSuperiors, baseSorting.getBeforeDropOneItemSuperiors());
addSorting(id, allBaseBeforeDropOneItemInferiors, baseSorting.getBeforeDropOneItemInferiors());
addSorting(id, allBaseOverrideDropOneItemSuperiors, baseSorting.getOverrideDropOneItemSuperiors());
addSorting(id, allBaseOverrideDropOneItemInferiors, baseSorting.getOverrideDropOneItemInferiors());
addSorting(id, allBaseAfterDropOneItemSuperiors, baseSorting.getAfterDropOneItemSuperiors());
addSorting(id, allBaseAfterDropOneItemInferiors, baseSorting.getAfterDropOneItemInferiors());
addSorting(id, allBaseBeforeDropPlayerItemWithRandomChoiceSuperiors, baseSorting.getBeforeDropPlayerItemWithRandomChoiceSuperiors());
addSorting(id, allBaseBeforeDropPlayerItemWithRandomChoiceInferiors, baseSorting.getBeforeDropPlayerItemWithRandomChoiceInferiors());
addSorting(id, allBaseOverrideDropPlayerItemWithRandomChoiceSuperiors, baseSorting.getOverrideDropPlayerItemWithRandomChoiceSuperiors());
addSorting(id, allBaseOverrideDropPlayerItemWithRandomChoiceInferiors, baseSorting.getOverrideDropPlayerItemWithRandomChoiceInferiors());
addSorting(id, allBaseAfterDropPlayerItemWithRandomChoiceSuperiors, baseSorting.getAfterDropPlayerItemWithRandomChoiceSuperiors());
addSorting(id, allBaseAfterDropPlayerItemWithRandomChoiceInferiors, baseSorting.getAfterDropPlayerItemWithRandomChoiceInferiors());
addSorting(id, allBaseBeforeFallSuperiors, baseSorting.getBeforeFallSuperiors());
addSorting(id, allBaseBeforeFallInferiors, baseSorting.getBeforeFallInferiors());
addSorting(id, allBaseOverrideFallSuperiors, baseSorting.getOverrideFallSuperiors());
addSorting(id, allBaseOverrideFallInferiors, baseSorting.getOverrideFallInferiors());
addSorting(id, allBaseAfterFallSuperiors, baseSorting.getAfterFallSuperiors());
addSorting(id, allBaseAfterFallInferiors, baseSorting.getAfterFallInferiors());
addSorting(id, allBaseBeforeGetAIMoveSpeedSuperiors, baseSorting.getBeforeGetAIMoveSpeedSuperiors());
addSorting(id, allBaseBeforeGetAIMoveSpeedInferiors, baseSorting.getBeforeGetAIMoveSpeedInferiors());
addSorting(id, allBaseOverrideGetAIMoveSpeedSuperiors, baseSorting.getOverrideGetAIMoveSpeedSuperiors());
addSorting(id, allBaseOverrideGetAIMoveSpeedInferiors, baseSorting.getOverrideGetAIMoveSpeedInferiors());
addSorting(id, allBaseAfterGetAIMoveSpeedSuperiors, baseSorting.getAfterGetAIMoveSpeedSuperiors());
addSorting(id, allBaseAfterGetAIMoveSpeedInferiors, baseSorting.getAfterGetAIMoveSpeedInferiors());
addSorting(id, allBaseBeforeGetBedOrientationInDegreesSuperiors, baseSorting.getBeforeGetBedOrientationInDegreesSuperiors());
addSorting(id, allBaseBeforeGetBedOrientationInDegreesInferiors, baseSorting.getBeforeGetBedOrientationInDegreesInferiors());
addSorting(id, allBaseOverrideGetBedOrientationInDegreesSuperiors, baseSorting.getOverrideGetBedOrientationInDegreesSuperiors());
addSorting(id, allBaseOverrideGetBedOrientationInDegreesInferiors, baseSorting.getOverrideGetBedOrientationInDegreesInferiors());
addSorting(id, allBaseAfterGetBedOrientationInDegreesSuperiors, baseSorting.getAfterGetBedOrientationInDegreesSuperiors());
addSorting(id, allBaseAfterGetBedOrientationInDegreesInferiors, baseSorting.getAfterGetBedOrientationInDegreesInferiors());
addSorting(id, allBaseBeforeGetBrightnessSuperiors, baseSorting.getBeforeGetBrightnessSuperiors());
addSorting(id, allBaseBeforeGetBrightnessInferiors, baseSorting.getBeforeGetBrightnessInferiors());
addSorting(id, allBaseOverrideGetBrightnessSuperiors, baseSorting.getOverrideGetBrightnessSuperiors());
addSorting(id, allBaseOverrideGetBrightnessInferiors, baseSorting.getOverrideGetBrightnessInferiors());
addSorting(id, allBaseAfterGetBrightnessSuperiors, baseSorting.getAfterGetBrightnessSuperiors());
addSorting(id, allBaseAfterGetBrightnessInferiors, baseSorting.getAfterGetBrightnessInferiors());
addSorting(id, allBaseBeforeGetBrightnessForRenderSuperiors, baseSorting.getBeforeGetBrightnessForRenderSuperiors());
addSorting(id, allBaseBeforeGetBrightnessForRenderInferiors, baseSorting.getBeforeGetBrightnessForRenderInferiors());
addSorting(id, allBaseOverrideGetBrightnessForRenderSuperiors, baseSorting.getOverrideGetBrightnessForRenderSuperiors());
addSorting(id, allBaseOverrideGetBrightnessForRenderInferiors, baseSorting.getOverrideGetBrightnessForRenderInferiors());
addSorting(id, allBaseAfterGetBrightnessForRenderSuperiors, baseSorting.getAfterGetBrightnessForRenderSuperiors());
addSorting(id, allBaseAfterGetBrightnessForRenderInferiors, baseSorting.getAfterGetBrightnessForRenderInferiors());
addSorting(id, allBaseBeforeGetBreakSpeedSuperiors, baseSorting.getBeforeGetBreakSpeedSuperiors());
addSorting(id, allBaseBeforeGetBreakSpeedInferiors, baseSorting.getBeforeGetBreakSpeedInferiors());
addSorting(id, allBaseOverrideGetBreakSpeedSuperiors, baseSorting.getOverrideGetBreakSpeedSuperiors());
addSorting(id, allBaseOverrideGetBreakSpeedInferiors, baseSorting.getOverrideGetBreakSpeedInferiors());
addSorting(id, allBaseAfterGetBreakSpeedSuperiors, baseSorting.getAfterGetBreakSpeedSuperiors());
addSorting(id, allBaseAfterGetBreakSpeedInferiors, baseSorting.getAfterGetBreakSpeedInferiors());
addSorting(id, allBaseBeforeGetDistanceSqSuperiors, baseSorting.getBeforeGetDistanceSqSuperiors());
addSorting(id, allBaseBeforeGetDistanceSqInferiors, baseSorting.getBeforeGetDistanceSqInferiors());
addSorting(id, allBaseOverrideGetDistanceSqSuperiors, baseSorting.getOverrideGetDistanceSqSuperiors());
addSorting(id, allBaseOverrideGetDistanceSqInferiors, baseSorting.getOverrideGetDistanceSqInferiors());
addSorting(id, allBaseAfterGetDistanceSqSuperiors, baseSorting.getAfterGetDistanceSqSuperiors());
addSorting(id, allBaseAfterGetDistanceSqInferiors, baseSorting.getAfterGetDistanceSqInferiors());
addSorting(id, allBaseBeforeGetDistanceSqToEntitySuperiors, baseSorting.getBeforeGetDistanceSqToEntitySuperiors());
addSorting(id, allBaseBeforeGetDistanceSqToEntityInferiors, baseSorting.getBeforeGetDistanceSqToEntityInferiors());
addSorting(id, allBaseOverrideGetDistanceSqToEntitySuperiors, baseSorting.getOverrideGetDistanceSqToEntitySuperiors());
addSorting(id, allBaseOverrideGetDistanceSqToEntityInferiors, baseSorting.getOverrideGetDistanceSqToEntityInferiors());
addSorting(id, allBaseAfterGetDistanceSqToEntitySuperiors, baseSorting.getAfterGetDistanceSqToEntitySuperiors());
addSorting(id, allBaseAfterGetDistanceSqToEntityInferiors, baseSorting.getAfterGetDistanceSqToEntityInferiors());
addSorting(id, allBaseBeforeGetFovModifierSuperiors, baseSorting.getBeforeGetFovModifierSuperiors());
addSorting(id, allBaseBeforeGetFovModifierInferiors, baseSorting.getBeforeGetFovModifierInferiors());
addSorting(id, allBaseOverrideGetFovModifierSuperiors, baseSorting.getOverrideGetFovModifierSuperiors());
addSorting(id, allBaseOverrideGetFovModifierInferiors, baseSorting.getOverrideGetFovModifierInferiors());
addSorting(id, allBaseAfterGetFovModifierSuperiors, baseSorting.getAfterGetFovModifierSuperiors());
addSorting(id, allBaseAfterGetFovModifierInferiors, baseSorting.getAfterGetFovModifierInferiors());
addSorting(id, allBaseBeforeGetHurtSoundSuperiors, baseSorting.getBeforeGetHurtSoundSuperiors());
addSorting(id, allBaseBeforeGetHurtSoundInferiors, baseSorting.getBeforeGetHurtSoundInferiors());
addSorting(id, allBaseOverrideGetHurtSoundSuperiors, baseSorting.getOverrideGetHurtSoundSuperiors());
addSorting(id, allBaseOverrideGetHurtSoundInferiors, baseSorting.getOverrideGetHurtSoundInferiors());
addSorting(id, allBaseAfterGetHurtSoundSuperiors, baseSorting.getAfterGetHurtSoundSuperiors());
addSorting(id, allBaseAfterGetHurtSoundInferiors, baseSorting.getAfterGetHurtSoundInferiors());
addSorting(id, allBaseBeforeGetNameSuperiors, baseSorting.getBeforeGetNameSuperiors());
addSorting(id, allBaseBeforeGetNameInferiors, baseSorting.getBeforeGetNameInferiors());
addSorting(id, allBaseOverrideGetNameSuperiors, baseSorting.getOverrideGetNameSuperiors());
addSorting(id, allBaseOverrideGetNameInferiors, baseSorting.getOverrideGetNameInferiors());
addSorting(id, allBaseAfterGetNameSuperiors, baseSorting.getAfterGetNameSuperiors());
addSorting(id, allBaseAfterGetNameInferiors, baseSorting.getAfterGetNameInferiors());
addSorting(id, allBaseBeforeGetSleepTimerSuperiors, baseSorting.getBeforeGetSleepTimerSuperiors());
addSorting(id, allBaseBeforeGetSleepTimerInferiors, baseSorting.getBeforeGetSleepTimerInferiors());
addSorting(id, allBaseOverrideGetSleepTimerSuperiors, baseSorting.getOverrideGetSleepTimerSuperiors());
addSorting(id, allBaseOverrideGetSleepTimerInferiors, baseSorting.getOverrideGetSleepTimerInferiors());
addSorting(id, allBaseAfterGetSleepTimerSuperiors, baseSorting.getAfterGetSleepTimerSuperiors());
addSorting(id, allBaseAfterGetSleepTimerInferiors, baseSorting.getAfterGetSleepTimerInferiors());
addSorting(id, allBaseBeforeHandleWaterMovementSuperiors, baseSorting.getBeforeHandleWaterMovementSuperiors());
addSorting(id, allBaseBeforeHandleWaterMovementInferiors, baseSorting.getBeforeHandleWaterMovementInferiors());
addSorting(id, allBaseOverrideHandleWaterMovementSuperiors, baseSorting.getOverrideHandleWaterMovementSuperiors());
addSorting(id, allBaseOverrideHandleWaterMovementInferiors, baseSorting.getOverrideHandleWaterMovementInferiors());
addSorting(id, allBaseAfterHandleWaterMovementSuperiors, baseSorting.getAfterHandleWaterMovementSuperiors());
addSorting(id, allBaseAfterHandleWaterMovementInferiors, baseSorting.getAfterHandleWaterMovementInferiors());
addSorting(id, allBaseBeforeHealSuperiors, baseSorting.getBeforeHealSuperiors());
addSorting(id, allBaseBeforeHealInferiors, baseSorting.getBeforeHealInferiors());
addSorting(id, allBaseOverrideHealSuperiors, baseSorting.getOverrideHealSuperiors());
addSorting(id, allBaseOverrideHealInferiors, baseSorting.getOverrideHealInferiors());
addSorting(id, allBaseAfterHealSuperiors, baseSorting.getAfterHealSuperiors());
addSorting(id, allBaseAfterHealInferiors, baseSorting.getAfterHealInferiors());
addSorting(id, allBaseBeforeIsEntityInsideOpaqueBlockSuperiors, baseSorting.getBeforeIsEntityInsideOpaqueBlockSuperiors());
addSorting(id, allBaseBeforeIsEntityInsideOpaqueBlockInferiors, baseSorting.getBeforeIsEntityInsideOpaqueBlockInferiors());
addSorting(id, allBaseOverrideIsEntityInsideOpaqueBlockSuperiors, baseSorting.getOverrideIsEntityInsideOpaqueBlockSuperiors());
addSorting(id, allBaseOverrideIsEntityInsideOpaqueBlockInferiors, baseSorting.getOverrideIsEntityInsideOpaqueBlockInferiors());
addSorting(id, allBaseAfterIsEntityInsideOpaqueBlockSuperiors, baseSorting.getAfterIsEntityInsideOpaqueBlockSuperiors());
addSorting(id, allBaseAfterIsEntityInsideOpaqueBlockInferiors, baseSorting.getAfterIsEntityInsideOpaqueBlockInferiors());
addSorting(id, allBaseBeforeIsInWaterSuperiors, baseSorting.getBeforeIsInWaterSuperiors());
addSorting(id, allBaseBeforeIsInWaterInferiors, baseSorting.getBeforeIsInWaterInferiors());
addSorting(id, allBaseOverrideIsInWaterSuperiors, baseSorting.getOverrideIsInWaterSuperiors());
addSorting(id, allBaseOverrideIsInWaterInferiors, baseSorting.getOverrideIsInWaterInferiors());
addSorting(id, allBaseAfterIsInWaterSuperiors, baseSorting.getAfterIsInWaterSuperiors());
addSorting(id, allBaseAfterIsInWaterInferiors, baseSorting.getAfterIsInWaterInferiors());
addSorting(id, allBaseBeforeIsInsideOfMaterialSuperiors, baseSorting.getBeforeIsInsideOfMaterialSuperiors());
addSorting(id, allBaseBeforeIsInsideOfMaterialInferiors, baseSorting.getBeforeIsInsideOfMaterialInferiors());
addSorting(id, allBaseOverrideIsInsideOfMaterialSuperiors, baseSorting.getOverrideIsInsideOfMaterialSuperiors());
addSorting(id, allBaseOverrideIsInsideOfMaterialInferiors, baseSorting.getOverrideIsInsideOfMaterialInferiors());
addSorting(id, allBaseAfterIsInsideOfMaterialSuperiors, baseSorting.getAfterIsInsideOfMaterialSuperiors());
addSorting(id, allBaseAfterIsInsideOfMaterialInferiors, baseSorting.getAfterIsInsideOfMaterialInferiors());
addSorting(id, allBaseBeforeIsOnLadderSuperiors, baseSorting.getBeforeIsOnLadderSuperiors());
addSorting(id, allBaseBeforeIsOnLadderInferiors, baseSorting.getBeforeIsOnLadderInferiors());
addSorting(id, allBaseOverrideIsOnLadderSuperiors, baseSorting.getOverrideIsOnLadderSuperiors());
addSorting(id, allBaseOverrideIsOnLadderInferiors, baseSorting.getOverrideIsOnLadderInferiors());
addSorting(id, allBaseAfterIsOnLadderSuperiors, baseSorting.getAfterIsOnLadderSuperiors());
addSorting(id, allBaseAfterIsOnLadderInferiors, baseSorting.getAfterIsOnLadderInferiors());
addSorting(id, allBaseBeforeIsPlayerSleepingSuperiors, baseSorting.getBeforeIsPlayerSleepingSuperiors());
addSorting(id, allBaseBeforeIsPlayerSleepingInferiors, baseSorting.getBeforeIsPlayerSleepingInferiors());
addSorting(id, allBaseOverrideIsPlayerSleepingSuperiors, baseSorting.getOverrideIsPlayerSleepingSuperiors());
addSorting(id, allBaseOverrideIsPlayerSleepingInferiors, baseSorting.getOverrideIsPlayerSleepingInferiors());
addSorting(id, allBaseAfterIsPlayerSleepingSuperiors, baseSorting.getAfterIsPlayerSleepingSuperiors());
addSorting(id, allBaseAfterIsPlayerSleepingInferiors, baseSorting.getAfterIsPlayerSleepingInferiors());
addSorting(id, allBaseBeforeIsSneakingSuperiors, baseSorting.getBeforeIsSneakingSuperiors());
addSorting(id, allBaseBeforeIsSneakingInferiors, baseSorting.getBeforeIsSneakingInferiors());
addSorting(id, allBaseOverrideIsSneakingSuperiors, baseSorting.getOverrideIsSneakingSuperiors());
addSorting(id, allBaseOverrideIsSneakingInferiors, baseSorting.getOverrideIsSneakingInferiors());
addSorting(id, allBaseAfterIsSneakingSuperiors, baseSorting.getAfterIsSneakingSuperiors());
addSorting(id, allBaseAfterIsSneakingInferiors, baseSorting.getAfterIsSneakingInferiors());
addSorting(id, allBaseBeforeIsSprintingSuperiors, baseSorting.getBeforeIsSprintingSuperiors());
addSorting(id, allBaseBeforeIsSprintingInferiors, baseSorting.getBeforeIsSprintingInferiors());
addSorting(id, allBaseOverrideIsSprintingSuperiors, baseSorting.getOverrideIsSprintingSuperiors());
addSorting(id, allBaseOverrideIsSprintingInferiors, baseSorting.getOverrideIsSprintingInferiors());
addSorting(id, allBaseAfterIsSprintingSuperiors, baseSorting.getAfterIsSprintingSuperiors());
addSorting(id, allBaseAfterIsSprintingInferiors, baseSorting.getAfterIsSprintingInferiors());
addSorting(id, allBaseBeforeJumpSuperiors, baseSorting.getBeforeJumpSuperiors());
addSorting(id, allBaseBeforeJumpInferiors, baseSorting.getBeforeJumpInferiors());
addSorting(id, allBaseOverrideJumpSuperiors, baseSorting.getOverrideJumpSuperiors());
addSorting(id, allBaseOverrideJumpInferiors, baseSorting.getOverrideJumpInferiors());
addSorting(id, allBaseAfterJumpSuperiors, baseSorting.getAfterJumpSuperiors());
addSorting(id, allBaseAfterJumpInferiors, baseSorting.getAfterJumpInferiors());
addSorting(id, allBaseBeforeKnockBackSuperiors, baseSorting.getBeforeKnockBackSuperiors());
addSorting(id, allBaseBeforeKnockBackInferiors, baseSorting.getBeforeKnockBackInferiors());
addSorting(id, allBaseOverrideKnockBackSuperiors, baseSorting.getOverrideKnockBackSuperiors());
addSorting(id, allBaseOverrideKnockBackInferiors, baseSorting.getOverrideKnockBackInferiors());
addSorting(id, allBaseAfterKnockBackSuperiors, baseSorting.getAfterKnockBackSuperiors());
addSorting(id, allBaseAfterKnockBackInferiors, baseSorting.getAfterKnockBackInferiors());
addSorting(id, allBaseBeforeMoveEntitySuperiors, baseSorting.getBeforeMoveEntitySuperiors());
addSorting(id, allBaseBeforeMoveEntityInferiors, baseSorting.getBeforeMoveEntityInferiors());
addSorting(id, allBaseOverrideMoveEntitySuperiors, baseSorting.getOverrideMoveEntitySuperiors());
addSorting(id, allBaseOverrideMoveEntityInferiors, baseSorting.getOverrideMoveEntityInferiors());
addSorting(id, allBaseAfterMoveEntitySuperiors, baseSorting.getAfterMoveEntitySuperiors());
addSorting(id, allBaseAfterMoveEntityInferiors, baseSorting.getAfterMoveEntityInferiors());
addSorting(id, allBaseBeforeMoveEntityWithHeadingSuperiors, baseSorting.getBeforeMoveEntityWithHeadingSuperiors());
addSorting(id, allBaseBeforeMoveEntityWithHeadingInferiors, baseSorting.getBeforeMoveEntityWithHeadingInferiors());
addSorting(id, allBaseOverrideMoveEntityWithHeadingSuperiors, baseSorting.getOverrideMoveEntityWithHeadingSuperiors());
addSorting(id, allBaseOverrideMoveEntityWithHeadingInferiors, baseSorting.getOverrideMoveEntityWithHeadingInferiors());
addSorting(id, allBaseAfterMoveEntityWithHeadingSuperiors, baseSorting.getAfterMoveEntityWithHeadingSuperiors());
addSorting(id, allBaseAfterMoveEntityWithHeadingInferiors, baseSorting.getAfterMoveEntityWithHeadingInferiors());
addSorting(id, allBaseBeforeMoveFlyingSuperiors, baseSorting.getBeforeMoveFlyingSuperiors());
addSorting(id, allBaseBeforeMoveFlyingInferiors, baseSorting.getBeforeMoveFlyingInferiors());
addSorting(id, allBaseOverrideMoveFlyingSuperiors, baseSorting.getOverrideMoveFlyingSuperiors());
addSorting(id, allBaseOverrideMoveFlyingInferiors, baseSorting.getOverrideMoveFlyingInferiors());
addSorting(id, allBaseAfterMoveFlyingSuperiors, baseSorting.getAfterMoveFlyingSuperiors());
addSorting(id, allBaseAfterMoveFlyingInferiors, baseSorting.getAfterMoveFlyingInferiors());
addSorting(id, allBaseBeforeOnDeathSuperiors, baseSorting.getBeforeOnDeathSuperiors());
addSorting(id, allBaseBeforeOnDeathInferiors, baseSorting.getBeforeOnDeathInferiors());
addSorting(id, allBaseOverrideOnDeathSuperiors, baseSorting.getOverrideOnDeathSuperiors());
addSorting(id, allBaseOverrideOnDeathInferiors, baseSorting.getOverrideOnDeathInferiors());
addSorting(id, allBaseAfterOnDeathSuperiors, baseSorting.getAfterOnDeathSuperiors());
addSorting(id, allBaseAfterOnDeathInferiors, baseSorting.getAfterOnDeathInferiors());
addSorting(id, allBaseBeforeOnLivingUpdateSuperiors, baseSorting.getBeforeOnLivingUpdateSuperiors());
addSorting(id, allBaseBeforeOnLivingUpdateInferiors, baseSorting.getBeforeOnLivingUpdateInferiors());
addSorting(id, allBaseOverrideOnLivingUpdateSuperiors, baseSorting.getOverrideOnLivingUpdateSuperiors());
addSorting(id, allBaseOverrideOnLivingUpdateInferiors, baseSorting.getOverrideOnLivingUpdateInferiors());
addSorting(id, allBaseAfterOnLivingUpdateSuperiors, baseSorting.getAfterOnLivingUpdateSuperiors());
addSorting(id, allBaseAfterOnLivingUpdateInferiors, baseSorting.getAfterOnLivingUpdateInferiors());
addSorting(id, allBaseBeforeOnKillEntitySuperiors, baseSorting.getBeforeOnKillEntitySuperiors());
addSorting(id, allBaseBeforeOnKillEntityInferiors, baseSorting.getBeforeOnKillEntityInferiors());
addSorting(id, allBaseOverrideOnKillEntitySuperiors, baseSorting.getOverrideOnKillEntitySuperiors());
addSorting(id, allBaseOverrideOnKillEntityInferiors, baseSorting.getOverrideOnKillEntityInferiors());
addSorting(id, allBaseAfterOnKillEntitySuperiors, baseSorting.getAfterOnKillEntitySuperiors());
addSorting(id, allBaseAfterOnKillEntityInferiors, baseSorting.getAfterOnKillEntityInferiors());
addSorting(id, allBaseBeforeOnStruckByLightningSuperiors, baseSorting.getBeforeOnStruckByLightningSuperiors());
addSorting(id, allBaseBeforeOnStruckByLightningInferiors, baseSorting.getBeforeOnStruckByLightningInferiors());
addSorting(id, allBaseOverrideOnStruckByLightningSuperiors, baseSorting.getOverrideOnStruckByLightningSuperiors());
addSorting(id, allBaseOverrideOnStruckByLightningInferiors, baseSorting.getOverrideOnStruckByLightningInferiors());
addSorting(id, allBaseAfterOnStruckByLightningSuperiors, baseSorting.getAfterOnStruckByLightningSuperiors());
addSorting(id, allBaseAfterOnStruckByLightningInferiors, baseSorting.getAfterOnStruckByLightningInferiors());
addSorting(id, allBaseBeforeOnUpdateSuperiors, baseSorting.getBeforeOnUpdateSuperiors());
addSorting(id, allBaseBeforeOnUpdateInferiors, baseSorting.getBeforeOnUpdateInferiors());
addSorting(id, allBaseOverrideOnUpdateSuperiors, baseSorting.getOverrideOnUpdateSuperiors());
addSorting(id, allBaseOverrideOnUpdateInferiors, baseSorting.getOverrideOnUpdateInferiors());
addSorting(id, allBaseAfterOnUpdateSuperiors, baseSorting.getAfterOnUpdateSuperiors());
addSorting(id, allBaseAfterOnUpdateInferiors, baseSorting.getAfterOnUpdateInferiors());
addSorting(id, allBaseBeforePlayStepSoundSuperiors, baseSorting.getBeforePlayStepSoundSuperiors());
addSorting(id, allBaseBeforePlayStepSoundInferiors, baseSorting.getBeforePlayStepSoundInferiors());
addSorting(id, allBaseOverridePlayStepSoundSuperiors, baseSorting.getOverridePlayStepSoundSuperiors());
addSorting(id, allBaseOverridePlayStepSoundInferiors, baseSorting.getOverridePlayStepSoundInferiors());
addSorting(id, allBaseAfterPlayStepSoundSuperiors, baseSorting.getAfterPlayStepSoundSuperiors());
addSorting(id, allBaseAfterPlayStepSoundInferiors, baseSorting.getAfterPlayStepSoundInferiors());
addSorting(id, allBaseBeforePushOutOfBlocksSuperiors, baseSorting.getBeforePushOutOfBlocksSuperiors());
addSorting(id, allBaseBeforePushOutOfBlocksInferiors, baseSorting.getBeforePushOutOfBlocksInferiors());
addSorting(id, allBaseOverridePushOutOfBlocksSuperiors, baseSorting.getOverridePushOutOfBlocksSuperiors());
addSorting(id, allBaseOverridePushOutOfBlocksInferiors, baseSorting.getOverridePushOutOfBlocksInferiors());
addSorting(id, allBaseAfterPushOutOfBlocksSuperiors, baseSorting.getAfterPushOutOfBlocksSuperiors());
addSorting(id, allBaseAfterPushOutOfBlocksInferiors, baseSorting.getAfterPushOutOfBlocksInferiors());
addSorting(id, allBaseBeforeRayTraceSuperiors, baseSorting.getBeforeRayTraceSuperiors());
addSorting(id, allBaseBeforeRayTraceInferiors, baseSorting.getBeforeRayTraceInferiors());
addSorting(id, allBaseOverrideRayTraceSuperiors, baseSorting.getOverrideRayTraceSuperiors());
addSorting(id, allBaseOverrideRayTraceInferiors, baseSorting.getOverrideRayTraceInferiors());
addSorting(id, allBaseAfterRayTraceSuperiors, baseSorting.getAfterRayTraceSuperiors());
addSorting(id, allBaseAfterRayTraceInferiors, baseSorting.getAfterRayTraceInferiors());
addSorting(id, allBaseBeforeReadEntityFromNBTSuperiors, baseSorting.getBeforeReadEntityFromNBTSuperiors());
addSorting(id, allBaseBeforeReadEntityFromNBTInferiors, baseSorting.getBeforeReadEntityFromNBTInferiors());
addSorting(id, allBaseOverrideReadEntityFromNBTSuperiors, baseSorting.getOverrideReadEntityFromNBTSuperiors());
addSorting(id, allBaseOverrideReadEntityFromNBTInferiors, baseSorting.getOverrideReadEntityFromNBTInferiors());
addSorting(id, allBaseAfterReadEntityFromNBTSuperiors, baseSorting.getAfterReadEntityFromNBTSuperiors());
addSorting(id, allBaseAfterReadEntityFromNBTInferiors, baseSorting.getAfterReadEntityFromNBTInferiors());
addSorting(id, allBaseBeforeRespawnPlayerSuperiors, baseSorting.getBeforeRespawnPlayerSuperiors());
addSorting(id, allBaseBeforeRespawnPlayerInferiors, baseSorting.getBeforeRespawnPlayerInferiors());
addSorting(id, allBaseOverrideRespawnPlayerSuperiors, baseSorting.getOverrideRespawnPlayerSuperiors());
addSorting(id, allBaseOverrideRespawnPlayerInferiors, baseSorting.getOverrideRespawnPlayerInferiors());
addSorting(id, allBaseAfterRespawnPlayerSuperiors, baseSorting.getAfterRespawnPlayerSuperiors());
addSorting(id, allBaseAfterRespawnPlayerInferiors, baseSorting.getAfterRespawnPlayerInferiors());
addSorting(id, allBaseBeforeSetDeadSuperiors, baseSorting.getBeforeSetDeadSuperiors());
addSorting(id, allBaseBeforeSetDeadInferiors, baseSorting.getBeforeSetDeadInferiors());
addSorting(id, allBaseOverrideSetDeadSuperiors, baseSorting.getOverrideSetDeadSuperiors());
addSorting(id, allBaseOverrideSetDeadInferiors, baseSorting.getOverrideSetDeadInferiors());
addSorting(id, allBaseAfterSetDeadSuperiors, baseSorting.getAfterSetDeadSuperiors());
addSorting(id, allBaseAfterSetDeadInferiors, baseSorting.getAfterSetDeadInferiors());
addSorting(id, allBaseBeforeSetPlayerSPHealthSuperiors, baseSorting.getBeforeSetPlayerSPHealthSuperiors());
addSorting(id, allBaseBeforeSetPlayerSPHealthInferiors, baseSorting.getBeforeSetPlayerSPHealthInferiors());
addSorting(id, allBaseOverrideSetPlayerSPHealthSuperiors, baseSorting.getOverrideSetPlayerSPHealthSuperiors());
addSorting(id, allBaseOverrideSetPlayerSPHealthInferiors, baseSorting.getOverrideSetPlayerSPHealthInferiors());
addSorting(id, allBaseAfterSetPlayerSPHealthSuperiors, baseSorting.getAfterSetPlayerSPHealthSuperiors());
addSorting(id, allBaseAfterSetPlayerSPHealthInferiors, baseSorting.getAfterSetPlayerSPHealthInferiors());
addSorting(id, allBaseBeforeSetPositionAndRotationSuperiors, baseSorting.getBeforeSetPositionAndRotationSuperiors());
addSorting(id, allBaseBeforeSetPositionAndRotationInferiors, baseSorting.getBeforeSetPositionAndRotationInferiors());
addSorting(id, allBaseOverrideSetPositionAndRotationSuperiors, baseSorting.getOverrideSetPositionAndRotationSuperiors());
addSorting(id, allBaseOverrideSetPositionAndRotationInferiors, baseSorting.getOverrideSetPositionAndRotationInferiors());
addSorting(id, allBaseAfterSetPositionAndRotationSuperiors, baseSorting.getAfterSetPositionAndRotationSuperiors());
addSorting(id, allBaseAfterSetPositionAndRotationInferiors, baseSorting.getAfterSetPositionAndRotationInferiors());
addSorting(id, allBaseBeforeSetSneakingSuperiors, baseSorting.getBeforeSetSneakingSuperiors());
addSorting(id, allBaseBeforeSetSneakingInferiors, baseSorting.getBeforeSetSneakingInferiors());
addSorting(id, allBaseOverrideSetSneakingSuperiors, baseSorting.getOverrideSetSneakingSuperiors());
addSorting(id, allBaseOverrideSetSneakingInferiors, baseSorting.getOverrideSetSneakingInferiors());
addSorting(id, allBaseAfterSetSneakingSuperiors, baseSorting.getAfterSetSneakingSuperiors());
addSorting(id, allBaseAfterSetSneakingInferiors, baseSorting.getAfterSetSneakingInferiors());
addSorting(id, allBaseBeforeSetSprintingSuperiors, baseSorting.getBeforeSetSprintingSuperiors());
addSorting(id, allBaseBeforeSetSprintingInferiors, baseSorting.getBeforeSetSprintingInferiors());
addSorting(id, allBaseOverrideSetSprintingSuperiors, baseSorting.getOverrideSetSprintingSuperiors());
addSorting(id, allBaseOverrideSetSprintingInferiors, baseSorting.getOverrideSetSprintingInferiors());
addSorting(id, allBaseAfterSetSprintingSuperiors, baseSorting.getAfterSetSprintingSuperiors());
addSorting(id, allBaseAfterSetSprintingInferiors, baseSorting.getAfterSetSprintingInferiors());
addSorting(id, allBaseBeforeTrySleepSuperiors, baseSorting.getBeforeTrySleepSuperiors());
addSorting(id, allBaseBeforeTrySleepInferiors, baseSorting.getBeforeTrySleepInferiors());
addSorting(id, allBaseOverrideTrySleepSuperiors, baseSorting.getOverrideTrySleepSuperiors());
addSorting(id, allBaseOverrideTrySleepInferiors, baseSorting.getOverrideTrySleepInferiors());
addSorting(id, allBaseAfterTrySleepSuperiors, baseSorting.getAfterTrySleepSuperiors());
addSorting(id, allBaseAfterTrySleepInferiors, baseSorting.getAfterTrySleepInferiors());
addSorting(id, allBaseBeforeSwingItemSuperiors, baseSorting.getBeforeSwingItemSuperiors());
addSorting(id, allBaseBeforeSwingItemInferiors, baseSorting.getBeforeSwingItemInferiors());
addSorting(id, allBaseOverrideSwingItemSuperiors, baseSorting.getOverrideSwingItemSuperiors());
addSorting(id, allBaseOverrideSwingItemInferiors, baseSorting.getOverrideSwingItemInferiors());
addSorting(id, allBaseAfterSwingItemSuperiors, baseSorting.getAfterSwingItemSuperiors());
addSorting(id, allBaseAfterSwingItemInferiors, baseSorting.getAfterSwingItemInferiors());
addSorting(id, allBaseBeforeUpdateEntityActionStateSuperiors, baseSorting.getBeforeUpdateEntityActionStateSuperiors());
addSorting(id, allBaseBeforeUpdateEntityActionStateInferiors, baseSorting.getBeforeUpdateEntityActionStateInferiors());
addSorting(id, allBaseOverrideUpdateEntityActionStateSuperiors, baseSorting.getOverrideUpdateEntityActionStateSuperiors());
addSorting(id, allBaseOverrideUpdateEntityActionStateInferiors, baseSorting.getOverrideUpdateEntityActionStateInferiors());
addSorting(id, allBaseAfterUpdateEntityActionStateSuperiors, baseSorting.getAfterUpdateEntityActionStateSuperiors());
addSorting(id, allBaseAfterUpdateEntityActionStateInferiors, baseSorting.getAfterUpdateEntityActionStateInferiors());
addSorting(id, allBaseBeforeUpdateRiddenSuperiors, baseSorting.getBeforeUpdateRiddenSuperiors());
addSorting(id, allBaseBeforeUpdateRiddenInferiors, baseSorting.getBeforeUpdateRiddenInferiors());
addSorting(id, allBaseOverrideUpdateRiddenSuperiors, baseSorting.getOverrideUpdateRiddenSuperiors());
addSorting(id, allBaseOverrideUpdateRiddenInferiors, baseSorting.getOverrideUpdateRiddenInferiors());
addSorting(id, allBaseAfterUpdateRiddenSuperiors, baseSorting.getAfterUpdateRiddenSuperiors());
addSorting(id, allBaseAfterUpdateRiddenInferiors, baseSorting.getAfterUpdateRiddenInferiors());
addSorting(id, allBaseBeforeWakeUpPlayerSuperiors, baseSorting.getBeforeWakeUpPlayerSuperiors());
addSorting(id, allBaseBeforeWakeUpPlayerInferiors, baseSorting.getBeforeWakeUpPlayerInferiors());
addSorting(id, allBaseOverrideWakeUpPlayerSuperiors, baseSorting.getOverrideWakeUpPlayerSuperiors());
addSorting(id, allBaseOverrideWakeUpPlayerInferiors, baseSorting.getOverrideWakeUpPlayerInferiors());
addSorting(id, allBaseAfterWakeUpPlayerSuperiors, baseSorting.getAfterWakeUpPlayerSuperiors());
addSorting(id, allBaseAfterWakeUpPlayerInferiors, baseSorting.getAfterWakeUpPlayerInferiors());
addSorting(id, allBaseBeforeWriteEntityToNBTSuperiors, baseSorting.getBeforeWriteEntityToNBTSuperiors());
addSorting(id, allBaseBeforeWriteEntityToNBTInferiors, baseSorting.getBeforeWriteEntityToNBTInferiors());
addSorting(id, allBaseOverrideWriteEntityToNBTSuperiors, baseSorting.getOverrideWriteEntityToNBTSuperiors());
addSorting(id, allBaseOverrideWriteEntityToNBTInferiors, baseSorting.getOverrideWriteEntityToNBTInferiors());
addSorting(id, allBaseAfterWriteEntityToNBTSuperiors, baseSorting.getAfterWriteEntityToNBTSuperiors());
addSorting(id, allBaseAfterWriteEntityToNBTInferiors, baseSorting.getAfterWriteEntityToNBTInferiors());
}
addMethod(id, baseClass, beforeLocalConstructingHookTypes, "beforeLocalConstructing", net.minecraft.client.Minecraft.class, net.minecraft.world.World.class, net.minecraft.client.network.NetHandlerPlayClient.class, net.minecraft.stats.StatFileWriter.class);
addMethod(id, baseClass, afterLocalConstructingHookTypes, "afterLocalConstructing", net.minecraft.client.Minecraft.class, net.minecraft.world.World.class, net.minecraft.client.network.NetHandlerPlayClient.class, net.minecraft.stats.StatFileWriter.class);
addMethod(id, baseClass, beforeAddExhaustionHookTypes, "beforeAddExhaustion", float.class);
addMethod(id, baseClass, overrideAddExhaustionHookTypes, "addExhaustion", float.class);
addMethod(id, baseClass, afterAddExhaustionHookTypes, "afterAddExhaustion", float.class);
addMethod(id, baseClass, beforeAddMovementStatHookTypes, "beforeAddMovementStat", double.class, double.class, double.class);
addMethod(id, baseClass, overrideAddMovementStatHookTypes, "addMovementStat", double.class, double.class, double.class);
addMethod(id, baseClass, afterAddMovementStatHookTypes, "afterAddMovementStat", double.class, double.class, double.class);
addMethod(id, baseClass, beforeAddStatHookTypes, "beforeAddStat", net.minecraft.stats.StatBase.class, int.class);
addMethod(id, baseClass, overrideAddStatHookTypes, "addStat", net.minecraft.stats.StatBase.class, int.class);
addMethod(id, baseClass, afterAddStatHookTypes, "afterAddStat", net.minecraft.stats.StatBase.class, int.class);
addMethod(id, baseClass, beforeAttackEntityFromHookTypes, "beforeAttackEntityFrom", net.minecraft.util.DamageSource.class, float.class);
addMethod(id, baseClass, overrideAttackEntityFromHookTypes, "attackEntityFrom", net.minecraft.util.DamageSource.class, float.class);
addMethod(id, baseClass, afterAttackEntityFromHookTypes, "afterAttackEntityFrom", net.minecraft.util.DamageSource.class, float.class);
addMethod(id, baseClass, beforeAttackTargetEntityWithCurrentItemHookTypes, "beforeAttackTargetEntityWithCurrentItem", net.minecraft.entity.Entity.class);
addMethod(id, baseClass, overrideAttackTargetEntityWithCurrentItemHookTypes, "attackTargetEntityWithCurrentItem", net.minecraft.entity.Entity.class);
addMethod(id, baseClass, afterAttackTargetEntityWithCurrentItemHookTypes, "afterAttackTargetEntityWithCurrentItem", net.minecraft.entity.Entity.class);
addMethod(id, baseClass, beforeCanBreatheUnderwaterHookTypes, "beforeCanBreatheUnderwater");
addMethod(id, baseClass, overrideCanBreatheUnderwaterHookTypes, "canBreatheUnderwater");
addMethod(id, baseClass, afterCanBreatheUnderwaterHookTypes, "afterCanBreatheUnderwater");
addMethod(id, baseClass, beforeCanHarvestBlockHookTypes, "beforeCanHarvestBlock", net.minecraft.block.Block.class);
addMethod(id, baseClass, overrideCanHarvestBlockHookTypes, "canHarvestBlock", net.minecraft.block.Block.class);
addMethod(id, baseClass, afterCanHarvestBlockHookTypes, "afterCanHarvestBlock", net.minecraft.block.Block.class);
addMethod(id, baseClass, beforeCanPlayerEditHookTypes, "beforeCanPlayerEdit", net.minecraft.util.BlockPos.class, net.minecraft.util.EnumFacing.class, net.minecraft.item.ItemStack.class);
addMethod(id, baseClass, overrideCanPlayerEditHookTypes, "canPlayerEdit", net.minecraft.util.BlockPos.class, net.minecraft.util.EnumFacing.class, net.minecraft.item.ItemStack.class);
addMethod(id, baseClass, afterCanPlayerEditHookTypes, "afterCanPlayerEdit", net.minecraft.util.BlockPos.class, net.minecraft.util.EnumFacing.class, net.minecraft.item.ItemStack.class);
addMethod(id, baseClass, beforeCanTriggerWalkingHookTypes, "beforeCanTriggerWalking");
addMethod(id, baseClass, overrideCanTriggerWalkingHookTypes, "canTriggerWalking");
addMethod(id, baseClass, afterCanTriggerWalkingHookTypes, "afterCanTriggerWalking");
addMethod(id, baseClass, beforeCloseScreenHookTypes, "beforeCloseScreen");
addMethod(id, baseClass, overrideCloseScreenHookTypes, "closeScreen");
addMethod(id, baseClass, afterCloseScreenHookTypes, "afterCloseScreen");
addMethod(id, baseClass, beforeDamageEntityHookTypes, "beforeDamageEntity", net.minecraft.util.DamageSource.class, float.class);
addMethod(id, baseClass, overrideDamageEntityHookTypes, "damageEntity", net.minecraft.util.DamageSource.class, float.class);
addMethod(id, baseClass, afterDamageEntityHookTypes, "afterDamageEntity", net.minecraft.util.DamageSource.class, float.class);
addMethod(id, baseClass, beforeDisplayGuiHookTypes, "beforeDisplayGui", net.minecraft.world.IInteractionObject.class);
addMethod(id, baseClass, overrideDisplayGuiHookTypes, "displayGui", net.minecraft.world.IInteractionObject.class);
addMethod(id, baseClass, afterDisplayGuiHookTypes, "afterDisplayGui", net.minecraft.world.IInteractionObject.class);
addMethod(id, baseClass, beforeDisplayGUIChestHookTypes, "beforeDisplayGUIChest", net.minecraft.inventory.IInventory.class);
addMethod(id, baseClass, overrideDisplayGUIChestHookTypes, "displayGUIChest", net.minecraft.inventory.IInventory.class);
addMethod(id, baseClass, afterDisplayGUIChestHookTypes, "afterDisplayGUIChest", net.minecraft.inventory.IInventory.class);
addMethod(id, baseClass, beforeDropItemHookTypes, "beforeDropItem", net.minecraft.item.ItemStack.class, boolean.class, boolean.class);
addMethod(id, baseClass, overrideDropItemHookTypes, "dropItem", net.minecraft.item.ItemStack.class, boolean.class, boolean.class);
addMethod(id, baseClass, afterDropItemHookTypes, "afterDropItem", net.minecraft.item.ItemStack.class, boolean.class, boolean.class);
addMethod(id, baseClass, beforeDropOneItemHookTypes, "beforeDropOneItem", boolean.class);
addMethod(id, baseClass, overrideDropOneItemHookTypes, "dropOneItem", boolean.class);
addMethod(id, baseClass, afterDropOneItemHookTypes, "afterDropOneItem", boolean.class);
addMethod(id, baseClass, beforeDropPlayerItemWithRandomChoiceHookTypes, "beforeDropPlayerItemWithRandomChoice", net.minecraft.item.ItemStack.class, boolean.class);
addMethod(id, baseClass, overrideDropPlayerItemWithRandomChoiceHookTypes, "dropPlayerItemWithRandomChoice", net.minecraft.item.ItemStack.class, boolean.class);
addMethod(id, baseClass, afterDropPlayerItemWithRandomChoiceHookTypes, "afterDropPlayerItemWithRandomChoice", net.minecraft.item.ItemStack.class, boolean.class);
addMethod(id, baseClass, beforeFallHookTypes, "beforeFall", float.class, float.class);
addMethod(id, baseClass, overrideFallHookTypes, "fall", float.class, float.class);
addMethod(id, baseClass, afterFallHookTypes, "afterFall", float.class, float.class);
addMethod(id, baseClass, beforeGetAIMoveSpeedHookTypes, "beforeGetAIMoveSpeed");
addMethod(id, baseClass, overrideGetAIMoveSpeedHookTypes, "getAIMoveSpeed");
addMethod(id, baseClass, afterGetAIMoveSpeedHookTypes, "afterGetAIMoveSpeed");
addMethod(id, baseClass, beforeGetBedOrientationInDegreesHookTypes, "beforeGetBedOrientationInDegrees");
addMethod(id, baseClass, overrideGetBedOrientationInDegreesHookTypes, "getBedOrientationInDegrees");
addMethod(id, baseClass, afterGetBedOrientationInDegreesHookTypes, "afterGetBedOrientationInDegrees");
addMethod(id, baseClass, beforeGetBrightnessHookTypes, "beforeGetBrightness", float.class);
addMethod(id, baseClass, overrideGetBrightnessHookTypes, "getBrightness", float.class);
addMethod(id, baseClass, afterGetBrightnessHookTypes, "afterGetBrightness", float.class);
addMethod(id, baseClass, beforeGetBrightnessForRenderHookTypes, "beforeGetBrightnessForRender", float.class);
addMethod(id, baseClass, overrideGetBrightnessForRenderHookTypes, "getBrightnessForRender", float.class);
addMethod(id, baseClass, afterGetBrightnessForRenderHookTypes, "afterGetBrightnessForRender", float.class);
addMethod(id, baseClass, beforeGetBreakSpeedHookTypes, "beforeGetBreakSpeed", net.minecraft.block.state.IBlockState.class, net.minecraft.util.BlockPos.class);
addMethod(id, baseClass, overrideGetBreakSpeedHookTypes, "getBreakSpeed", net.minecraft.block.state.IBlockState.class, net.minecraft.util.BlockPos.class);
addMethod(id, baseClass, afterGetBreakSpeedHookTypes, "afterGetBreakSpeed", net.minecraft.block.state.IBlockState.class, net.minecraft.util.BlockPos.class);
addMethod(id, baseClass, beforeGetDistanceSqHookTypes, "beforeGetDistanceSq", double.class, double.class, double.class);
addMethod(id, baseClass, overrideGetDistanceSqHookTypes, "getDistanceSq", double.class, double.class, double.class);
addMethod(id, baseClass, afterGetDistanceSqHookTypes, "afterGetDistanceSq", double.class, double.class, double.class);
addMethod(id, baseClass, beforeGetDistanceSqToEntityHookTypes, "beforeGetDistanceSqToEntity", net.minecraft.entity.Entity.class);
addMethod(id, baseClass, overrideGetDistanceSqToEntityHookTypes, "getDistanceSqToEntity", net.minecraft.entity.Entity.class);
addMethod(id, baseClass, afterGetDistanceSqToEntityHookTypes, "afterGetDistanceSqToEntity", net.minecraft.entity.Entity.class);
addMethod(id, baseClass, beforeGetFovModifierHookTypes, "beforeGetFovModifier");
addMethod(id, baseClass, overrideGetFovModifierHookTypes, "getFovModifier");
addMethod(id, baseClass, afterGetFovModifierHookTypes, "afterGetFovModifier");
addMethod(id, baseClass, beforeGetHurtSoundHookTypes, "beforeGetHurtSound");
addMethod(id, baseClass, overrideGetHurtSoundHookTypes, "getHurtSound");
addMethod(id, baseClass, afterGetHurtSoundHookTypes, "afterGetHurtSound");
addMethod(id, baseClass, beforeGetNameHookTypes, "beforeGetName");
addMethod(id, baseClass, overrideGetNameHookTypes, "getName");
addMethod(id, baseClass, afterGetNameHookTypes, "afterGetName");
addMethod(id, baseClass, beforeGetSleepTimerHookTypes, "beforeGetSleepTimer");
addMethod(id, baseClass, overrideGetSleepTimerHookTypes, "getSleepTimer");
addMethod(id, baseClass, afterGetSleepTimerHookTypes, "afterGetSleepTimer");
addMethod(id, baseClass, beforeHandleWaterMovementHookTypes, "beforeHandleWaterMovement");
addMethod(id, baseClass, overrideHandleWaterMovementHookTypes, "handleWaterMovement");
addMethod(id, baseClass, afterHandleWaterMovementHookTypes, "afterHandleWaterMovement");
addMethod(id, baseClass, beforeHealHookTypes, "beforeHeal", float.class);
addMethod(id, baseClass, overrideHealHookTypes, "heal", float.class);
addMethod(id, baseClass, afterHealHookTypes, "afterHeal", float.class);
addMethod(id, baseClass, beforeIsEntityInsideOpaqueBlockHookTypes, "beforeIsEntityInsideOpaqueBlock");
addMethod(id, baseClass, overrideIsEntityInsideOpaqueBlockHookTypes, "isEntityInsideOpaqueBlock");
addMethod(id, baseClass, afterIsEntityInsideOpaqueBlockHookTypes, "afterIsEntityInsideOpaqueBlock");
addMethod(id, baseClass, beforeIsInWaterHookTypes, "beforeIsInWater");
addMethod(id, baseClass, overrideIsInWaterHookTypes, "isInWater");
addMethod(id, baseClass, afterIsInWaterHookTypes, "afterIsInWater");
addMethod(id, baseClass, beforeIsInsideOfMaterialHookTypes, "beforeIsInsideOfMaterial", net.minecraft.block.material.Material.class);
addMethod(id, baseClass, overrideIsInsideOfMaterialHookTypes, "isInsideOfMaterial", net.minecraft.block.material.Material.class);
addMethod(id, baseClass, afterIsInsideOfMaterialHookTypes, "afterIsInsideOfMaterial", net.minecraft.block.material.Material.class);
addMethod(id, baseClass, beforeIsOnLadderHookTypes, "beforeIsOnLadder");
addMethod(id, baseClass, overrideIsOnLadderHookTypes, "isOnLadder");
addMethod(id, baseClass, afterIsOnLadderHookTypes, "afterIsOnLadder");
addMethod(id, baseClass, beforeIsPlayerSleepingHookTypes, "beforeIsPlayerSleeping");
addMethod(id, baseClass, overrideIsPlayerSleepingHookTypes, "isPlayerSleeping");
addMethod(id, baseClass, afterIsPlayerSleepingHookTypes, "afterIsPlayerSleeping");
addMethod(id, baseClass, beforeIsSneakingHookTypes, "beforeIsSneaking");
addMethod(id, baseClass, overrideIsSneakingHookTypes, "isSneaking");
addMethod(id, baseClass, afterIsSneakingHookTypes, "afterIsSneaking");
addMethod(id, baseClass, beforeIsSprintingHookTypes, "beforeIsSprinting");
addMethod(id, baseClass, overrideIsSprintingHookTypes, "isSprinting");
addMethod(id, baseClass, afterIsSprintingHookTypes, "afterIsSprinting");
addMethod(id, baseClass, beforeJumpHookTypes, "beforeJump");
addMethod(id, baseClass, overrideJumpHookTypes, "jump");
addMethod(id, baseClass, afterJumpHookTypes, "afterJump");
addMethod(id, baseClass, beforeKnockBackHookTypes, "beforeKnockBack", net.minecraft.entity.Entity.class, float.class, double.class, double.class);
addMethod(id, baseClass, overrideKnockBackHookTypes, "knockBack", net.minecraft.entity.Entity.class, float.class, double.class, double.class);
addMethod(id, baseClass, afterKnockBackHookTypes, "afterKnockBack", net.minecraft.entity.Entity.class, float.class, double.class, double.class);
addMethod(id, baseClass, beforeMoveEntityHookTypes, "beforeMoveEntity", double.class, double.class, double.class);
addMethod(id, baseClass, overrideMoveEntityHookTypes, "moveEntity", double.class, double.class, double.class);
addMethod(id, baseClass, afterMoveEntityHookTypes, "afterMoveEntity", double.class, double.class, double.class);
addMethod(id, baseClass, beforeMoveEntityWithHeadingHookTypes, "beforeMoveEntityWithHeading", float.class, float.class);
addMethod(id, baseClass, overrideMoveEntityWithHeadingHookTypes, "moveEntityWithHeading", float.class, float.class);
addMethod(id, baseClass, afterMoveEntityWithHeadingHookTypes, "afterMoveEntityWithHeading", float.class, float.class);
addMethod(id, baseClass, beforeMoveFlyingHookTypes, "beforeMoveFlying", float.class, float.class, float.class);
addMethod(id, baseClass, overrideMoveFlyingHookTypes, "moveFlying", float.class, float.class, float.class);
addMethod(id, baseClass, afterMoveFlyingHookTypes, "afterMoveFlying", float.class, float.class, float.class);
addMethod(id, baseClass, beforeOnDeathHookTypes, "beforeOnDeath", net.minecraft.util.DamageSource.class);
addMethod(id, baseClass, overrideOnDeathHookTypes, "onDeath", net.minecraft.util.DamageSource.class);
addMethod(id, baseClass, afterOnDeathHookTypes, "afterOnDeath", net.minecraft.util.DamageSource.class);
addMethod(id, baseClass, beforeOnLivingUpdateHookTypes, "beforeOnLivingUpdate");
addMethod(id, baseClass, overrideOnLivingUpdateHookTypes, "onLivingUpdate");
addMethod(id, baseClass, afterOnLivingUpdateHookTypes, "afterOnLivingUpdate");
addMethod(id, baseClass, beforeOnKillEntityHookTypes, "beforeOnKillEntity", net.minecraft.entity.EntityLivingBase.class);
addMethod(id, baseClass, overrideOnKillEntityHookTypes, "onKillEntity", net.minecraft.entity.EntityLivingBase.class);
addMethod(id, baseClass, afterOnKillEntityHookTypes, "afterOnKillEntity", net.minecraft.entity.EntityLivingBase.class);
addMethod(id, baseClass, beforeOnStruckByLightningHookTypes, "beforeOnStruckByLightning", net.minecraft.entity.effect.EntityLightningBolt.class);
addMethod(id, baseClass, overrideOnStruckByLightningHookTypes, "onStruckByLightning", net.minecraft.entity.effect.EntityLightningBolt.class);
addMethod(id, baseClass, afterOnStruckByLightningHookTypes, "afterOnStruckByLightning", net.minecraft.entity.effect.EntityLightningBolt.class);
addMethod(id, baseClass, beforeOnUpdateHookTypes, "beforeOnUpdate");
addMethod(id, baseClass, overrideOnUpdateHookTypes, "onUpdate");
addMethod(id, baseClass, afterOnUpdateHookTypes, "afterOnUpdate");
addMethod(id, baseClass, beforePlayStepSoundHookTypes, "beforePlayStepSound", net.minecraft.util.BlockPos.class, net.minecraft.block.Block.class);
addMethod(id, baseClass, overridePlayStepSoundHookTypes, "playStepSound", net.minecraft.util.BlockPos.class, net.minecraft.block.Block.class);
addMethod(id, baseClass, afterPlayStepSoundHookTypes, "afterPlayStepSound", net.minecraft.util.BlockPos.class, net.minecraft.block.Block.class);
addMethod(id, baseClass, beforePushOutOfBlocksHookTypes, "beforePushOutOfBlocks", double.class, double.class, double.class);
addMethod(id, baseClass, overridePushOutOfBlocksHookTypes, "pushOutOfBlocks", double.class, double.class, double.class);
addMethod(id, baseClass, afterPushOutOfBlocksHookTypes, "afterPushOutOfBlocks", double.class, double.class, double.class);
addMethod(id, baseClass, beforeRayTraceHookTypes, "beforeRayTrace", double.class, float.class);
addMethod(id, baseClass, overrideRayTraceHookTypes, "rayTrace", double.class, float.class);
addMethod(id, baseClass, afterRayTraceHookTypes, "afterRayTrace", double.class, float.class);
addMethod(id, baseClass, beforeReadEntityFromNBTHookTypes, "beforeReadEntityFromNBT", net.minecraft.nbt.NBTTagCompound.class);
addMethod(id, baseClass, overrideReadEntityFromNBTHookTypes, "readEntityFromNBT", net.minecraft.nbt.NBTTagCompound.class);
addMethod(id, baseClass, afterReadEntityFromNBTHookTypes, "afterReadEntityFromNBT", net.minecraft.nbt.NBTTagCompound.class);
addMethod(id, baseClass, beforeRespawnPlayerHookTypes, "beforeRespawnPlayer");
addMethod(id, baseClass, overrideRespawnPlayerHookTypes, "respawnPlayer");
addMethod(id, baseClass, afterRespawnPlayerHookTypes, "afterRespawnPlayer");
addMethod(id, baseClass, beforeSetDeadHookTypes, "beforeSetDead");
addMethod(id, baseClass, overrideSetDeadHookTypes, "setDead");
addMethod(id, baseClass, afterSetDeadHookTypes, "afterSetDead");
addMethod(id, baseClass, beforeSetPlayerSPHealthHookTypes, "beforeSetPlayerSPHealth", float.class);
addMethod(id, baseClass, overrideSetPlayerSPHealthHookTypes, "setPlayerSPHealth", float.class);
addMethod(id, baseClass, afterSetPlayerSPHealthHookTypes, "afterSetPlayerSPHealth", float.class);
addMethod(id, baseClass, beforeSetPositionAndRotationHookTypes, "beforeSetPositionAndRotation", double.class, double.class, double.class, float.class, float.class);
addMethod(id, baseClass, overrideSetPositionAndRotationHookTypes, "setPositionAndRotation", double.class, double.class, double.class, float.class, float.class);
addMethod(id, baseClass, afterSetPositionAndRotationHookTypes, "afterSetPositionAndRotation", double.class, double.class, double.class, float.class, float.class);
addMethod(id, baseClass, beforeSetSneakingHookTypes, "beforeSetSneaking", boolean.class);
addMethod(id, baseClass, overrideSetSneakingHookTypes, "setSneaking", boolean.class);
addMethod(id, baseClass, afterSetSneakingHookTypes, "afterSetSneaking", boolean.class);
addMethod(id, baseClass, beforeSetSprintingHookTypes, "beforeSetSprinting", boolean.class);
addMethod(id, baseClass, overrideSetSprintingHookTypes, "setSprinting", boolean.class);
addMethod(id, baseClass, afterSetSprintingHookTypes, "afterSetSprinting", boolean.class);
addMethod(id, baseClass, beforeTrySleepHookTypes, "beforeTrySleep", net.minecraft.util.BlockPos.class);
addMethod(id, baseClass, overrideTrySleepHookTypes, "trySleep", net.minecraft.util.BlockPos.class);
addMethod(id, baseClass, afterTrySleepHookTypes, "afterTrySleep", net.minecraft.util.BlockPos.class);
addMethod(id, baseClass, beforeSwingItemHookTypes, "beforeSwingItem");
addMethod(id, baseClass, overrideSwingItemHookTypes, "swingItem");
addMethod(id, baseClass, afterSwingItemHookTypes, "afterSwingItem");
addMethod(id, baseClass, beforeUpdateEntityActionStateHookTypes, "beforeUpdateEntityActionState");
addMethod(id, baseClass, overrideUpdateEntityActionStateHookTypes, "updateEntityActionState");
addMethod(id, baseClass, afterUpdateEntityActionStateHookTypes, "afterUpdateEntityActionState");
addMethod(id, baseClass, beforeUpdateRiddenHookTypes, "beforeUpdateRidden");
addMethod(id, baseClass, overrideUpdateRiddenHookTypes, "updateRidden");
addMethod(id, baseClass, afterUpdateRiddenHookTypes, "afterUpdateRidden");
addMethod(id, baseClass, beforeWakeUpPlayerHookTypes, "beforeWakeUpPlayer", boolean.class, boolean.class, boolean.class);
addMethod(id, baseClass, overrideWakeUpPlayerHookTypes, "wakeUpPlayer", boolean.class, boolean.class, boolean.class);
addMethod(id, baseClass, afterWakeUpPlayerHookTypes, "afterWakeUpPlayer", boolean.class, boolean.class, boolean.class);
addMethod(id, baseClass, beforeWriteEntityToNBTHookTypes, "beforeWriteEntityToNBT", net.minecraft.nbt.NBTTagCompound.class);
addMethod(id, baseClass, overrideWriteEntityToNBTHookTypes, "writeEntityToNBT", net.minecraft.nbt.NBTTagCompound.class);
addMethod(id, baseClass, afterWriteEntityToNBTHookTypes, "afterWriteEntityToNBT", net.minecraft.nbt.NBTTagCompound.class);
addDynamicMethods(id, baseClass);
addDynamicKeys(id, baseClass, beforeDynamicHookMethods, beforeDynamicHookTypes);
addDynamicKeys(id, baseClass, overrideDynamicHookMethods, overrideDynamicHookTypes);
addDynamicKeys(id, baseClass, afterDynamicHookMethods, afterDynamicHookTypes);
initialize();
for(IClientPlayerAPI instance : getAllInstancesList())
instance.getClientPlayerAPI().attachClientPlayerBase(id);
System.out.println("Client Player: registered " + id);
logger.fine("Client Player: registered class '" + baseClass.getName() + "' with id '" + id + "'");
initialized = false;
}
public static boolean unregister(String id)
{
if(id == null)
return false;
Constructor<?> constructor = allBaseConstructors.remove(id);
if(constructor == null)
return false;
for(IClientPlayerAPI instance : getAllInstancesList())
instance.getClientPlayerAPI().detachClientPlayerBase(id);
beforeLocalConstructingHookTypes.remove(id);
afterLocalConstructingHookTypes.remove(id);
allBaseBeforeAddExhaustionSuperiors.remove(id);
allBaseBeforeAddExhaustionInferiors.remove(id);
allBaseOverrideAddExhaustionSuperiors.remove(id);
allBaseOverrideAddExhaustionInferiors.remove(id);
allBaseAfterAddExhaustionSuperiors.remove(id);
allBaseAfterAddExhaustionInferiors.remove(id);
beforeAddExhaustionHookTypes.remove(id);
overrideAddExhaustionHookTypes.remove(id);
afterAddExhaustionHookTypes.remove(id);
allBaseBeforeAddMovementStatSuperiors.remove(id);
allBaseBeforeAddMovementStatInferiors.remove(id);
allBaseOverrideAddMovementStatSuperiors.remove(id);
allBaseOverrideAddMovementStatInferiors.remove(id);
allBaseAfterAddMovementStatSuperiors.remove(id);
allBaseAfterAddMovementStatInferiors.remove(id);
beforeAddMovementStatHookTypes.remove(id);
overrideAddMovementStatHookTypes.remove(id);
afterAddMovementStatHookTypes.remove(id);
allBaseBeforeAddStatSuperiors.remove(id);
allBaseBeforeAddStatInferiors.remove(id);
allBaseOverrideAddStatSuperiors.remove(id);
allBaseOverrideAddStatInferiors.remove(id);
allBaseAfterAddStatSuperiors.remove(id);
allBaseAfterAddStatInferiors.remove(id);
beforeAddStatHookTypes.remove(id);
overrideAddStatHookTypes.remove(id);
afterAddStatHookTypes.remove(id);
allBaseBeforeAttackEntityFromSuperiors.remove(id);
allBaseBeforeAttackEntityFromInferiors.remove(id);
allBaseOverrideAttackEntityFromSuperiors.remove(id);
allBaseOverrideAttackEntityFromInferiors.remove(id);
allBaseAfterAttackEntityFromSuperiors.remove(id);
allBaseAfterAttackEntityFromInferiors.remove(id);
beforeAttackEntityFromHookTypes.remove(id);
overrideAttackEntityFromHookTypes.remove(id);
afterAttackEntityFromHookTypes.remove(id);
allBaseBeforeAttackTargetEntityWithCurrentItemSuperiors.remove(id);
allBaseBeforeAttackTargetEntityWithCurrentItemInferiors.remove(id);
allBaseOverrideAttackTargetEntityWithCurrentItemSuperiors.remove(id);
allBaseOverrideAttackTargetEntityWithCurrentItemInferiors.remove(id);
allBaseAfterAttackTargetEntityWithCurrentItemSuperiors.remove(id);
allBaseAfterAttackTargetEntityWithCurrentItemInferiors.remove(id);
beforeAttackTargetEntityWithCurrentItemHookTypes.remove(id);
overrideAttackTargetEntityWithCurrentItemHookTypes.remove(id);
afterAttackTargetEntityWithCurrentItemHookTypes.remove(id);
allBaseBeforeCanBreatheUnderwaterSuperiors.remove(id);
allBaseBeforeCanBreatheUnderwaterInferiors.remove(id);
allBaseOverrideCanBreatheUnderwaterSuperiors.remove(id);
allBaseOverrideCanBreatheUnderwaterInferiors.remove(id);
allBaseAfterCanBreatheUnderwaterSuperiors.remove(id);
allBaseAfterCanBreatheUnderwaterInferiors.remove(id);
beforeCanBreatheUnderwaterHookTypes.remove(id);
overrideCanBreatheUnderwaterHookTypes.remove(id);
afterCanBreatheUnderwaterHookTypes.remove(id);
allBaseBeforeCanHarvestBlockSuperiors.remove(id);
allBaseBeforeCanHarvestBlockInferiors.remove(id);
allBaseOverrideCanHarvestBlockSuperiors.remove(id);
allBaseOverrideCanHarvestBlockInferiors.remove(id);
allBaseAfterCanHarvestBlockSuperiors.remove(id);
allBaseAfterCanHarvestBlockInferiors.remove(id);
beforeCanHarvestBlockHookTypes.remove(id);
overrideCanHarvestBlockHookTypes.remove(id);
afterCanHarvestBlockHookTypes.remove(id);
allBaseBeforeCanPlayerEditSuperiors.remove(id);
allBaseBeforeCanPlayerEditInferiors.remove(id);
allBaseOverrideCanPlayerEditSuperiors.remove(id);
allBaseOverrideCanPlayerEditInferiors.remove(id);
allBaseAfterCanPlayerEditSuperiors.remove(id);
allBaseAfterCanPlayerEditInferiors.remove(id);
beforeCanPlayerEditHookTypes.remove(id);
overrideCanPlayerEditHookTypes.remove(id);
afterCanPlayerEditHookTypes.remove(id);
allBaseBeforeCanTriggerWalkingSuperiors.remove(id);
allBaseBeforeCanTriggerWalkingInferiors.remove(id);
allBaseOverrideCanTriggerWalkingSuperiors.remove(id);
allBaseOverrideCanTriggerWalkingInferiors.remove(id);
allBaseAfterCanTriggerWalkingSuperiors.remove(id);
allBaseAfterCanTriggerWalkingInferiors.remove(id);
beforeCanTriggerWalkingHookTypes.remove(id);
overrideCanTriggerWalkingHookTypes.remove(id);
afterCanTriggerWalkingHookTypes.remove(id);
allBaseBeforeCloseScreenSuperiors.remove(id);
allBaseBeforeCloseScreenInferiors.remove(id);
allBaseOverrideCloseScreenSuperiors.remove(id);
allBaseOverrideCloseScreenInferiors.remove(id);
allBaseAfterCloseScreenSuperiors.remove(id);
allBaseAfterCloseScreenInferiors.remove(id);
beforeCloseScreenHookTypes.remove(id);
overrideCloseScreenHookTypes.remove(id);
afterCloseScreenHookTypes.remove(id);
allBaseBeforeDamageEntitySuperiors.remove(id);
allBaseBeforeDamageEntityInferiors.remove(id);
allBaseOverrideDamageEntitySuperiors.remove(id);
allBaseOverrideDamageEntityInferiors.remove(id);
allBaseAfterDamageEntitySuperiors.remove(id);
allBaseAfterDamageEntityInferiors.remove(id);
beforeDamageEntityHookTypes.remove(id);
overrideDamageEntityHookTypes.remove(id);
afterDamageEntityHookTypes.remove(id);
allBaseBeforeDisplayGuiSuperiors.remove(id);
allBaseBeforeDisplayGuiInferiors.remove(id);
allBaseOverrideDisplayGuiSuperiors.remove(id);
allBaseOverrideDisplayGuiInferiors.remove(id);
allBaseAfterDisplayGuiSuperiors.remove(id);
allBaseAfterDisplayGuiInferiors.remove(id);
beforeDisplayGuiHookTypes.remove(id);
overrideDisplayGuiHookTypes.remove(id);
afterDisplayGuiHookTypes.remove(id);
allBaseBeforeDisplayGUIChestSuperiors.remove(id);
allBaseBeforeDisplayGUIChestInferiors.remove(id);
allBaseOverrideDisplayGUIChestSuperiors.remove(id);
allBaseOverrideDisplayGUIChestInferiors.remove(id);
allBaseAfterDisplayGUIChestSuperiors.remove(id);
allBaseAfterDisplayGUIChestInferiors.remove(id);
beforeDisplayGUIChestHookTypes.remove(id);
overrideDisplayGUIChestHookTypes.remove(id);
afterDisplayGUIChestHookTypes.remove(id);
allBaseBeforeDropItemSuperiors.remove(id);
allBaseBeforeDropItemInferiors.remove(id);
allBaseOverrideDropItemSuperiors.remove(id);
allBaseOverrideDropItemInferiors.remove(id);
allBaseAfterDropItemSuperiors.remove(id);
allBaseAfterDropItemInferiors.remove(id);
beforeDropItemHookTypes.remove(id);
overrideDropItemHookTypes.remove(id);
afterDropItemHookTypes.remove(id);
allBaseBeforeDropOneItemSuperiors.remove(id);
allBaseBeforeDropOneItemInferiors.remove(id);
allBaseOverrideDropOneItemSuperiors.remove(id);
allBaseOverrideDropOneItemInferiors.remove(id);
allBaseAfterDropOneItemSuperiors.remove(id);
allBaseAfterDropOneItemInferiors.remove(id);
beforeDropOneItemHookTypes.remove(id);
overrideDropOneItemHookTypes.remove(id);
afterDropOneItemHookTypes.remove(id);
allBaseBeforeDropPlayerItemWithRandomChoiceSuperiors.remove(id);
allBaseBeforeDropPlayerItemWithRandomChoiceInferiors.remove(id);
allBaseOverrideDropPlayerItemWithRandomChoiceSuperiors.remove(id);
allBaseOverrideDropPlayerItemWithRandomChoiceInferiors.remove(id);
allBaseAfterDropPlayerItemWithRandomChoiceSuperiors.remove(id);
allBaseAfterDropPlayerItemWithRandomChoiceInferiors.remove(id);
beforeDropPlayerItemWithRandomChoiceHookTypes.remove(id);
overrideDropPlayerItemWithRandomChoiceHookTypes.remove(id);
afterDropPlayerItemWithRandomChoiceHookTypes.remove(id);
allBaseBeforeFallSuperiors.remove(id);
allBaseBeforeFallInferiors.remove(id);
allBaseOverrideFallSuperiors.remove(id);
allBaseOverrideFallInferiors.remove(id);
allBaseAfterFallSuperiors.remove(id);
allBaseAfterFallInferiors.remove(id);
beforeFallHookTypes.remove(id);
overrideFallHookTypes.remove(id);
afterFallHookTypes.remove(id);
allBaseBeforeGetAIMoveSpeedSuperiors.remove(id);
allBaseBeforeGetAIMoveSpeedInferiors.remove(id);
allBaseOverrideGetAIMoveSpeedSuperiors.remove(id);
allBaseOverrideGetAIMoveSpeedInferiors.remove(id);
allBaseAfterGetAIMoveSpeedSuperiors.remove(id);
allBaseAfterGetAIMoveSpeedInferiors.remove(id);
beforeGetAIMoveSpeedHookTypes.remove(id);
overrideGetAIMoveSpeedHookTypes.remove(id);
afterGetAIMoveSpeedHookTypes.remove(id);
allBaseBeforeGetBedOrientationInDegreesSuperiors.remove(id);
allBaseBeforeGetBedOrientationInDegreesInferiors.remove(id);
allBaseOverrideGetBedOrientationInDegreesSuperiors.remove(id);
allBaseOverrideGetBedOrientationInDegreesInferiors.remove(id);
allBaseAfterGetBedOrientationInDegreesSuperiors.remove(id);
allBaseAfterGetBedOrientationInDegreesInferiors.remove(id);
beforeGetBedOrientationInDegreesHookTypes.remove(id);
overrideGetBedOrientationInDegreesHookTypes.remove(id);
afterGetBedOrientationInDegreesHookTypes.remove(id);
allBaseBeforeGetBrightnessSuperiors.remove(id);
allBaseBeforeGetBrightnessInferiors.remove(id);
allBaseOverrideGetBrightnessSuperiors.remove(id);
allBaseOverrideGetBrightnessInferiors.remove(id);
allBaseAfterGetBrightnessSuperiors.remove(id);
allBaseAfterGetBrightnessInferiors.remove(id);
beforeGetBrightnessHookTypes.remove(id);
overrideGetBrightnessHookTypes.remove(id);
afterGetBrightnessHookTypes.remove(id);
allBaseBeforeGetBrightnessForRenderSuperiors.remove(id);
allBaseBeforeGetBrightnessForRenderInferiors.remove(id);
allBaseOverrideGetBrightnessForRenderSuperiors.remove(id);
allBaseOverrideGetBrightnessForRenderInferiors.remove(id);
allBaseAfterGetBrightnessForRenderSuperiors.remove(id);
allBaseAfterGetBrightnessForRenderInferiors.remove(id);
beforeGetBrightnessForRenderHookTypes.remove(id);
overrideGetBrightnessForRenderHookTypes.remove(id);
afterGetBrightnessForRenderHookTypes.remove(id);
allBaseBeforeGetBreakSpeedSuperiors.remove(id);
allBaseBeforeGetBreakSpeedInferiors.remove(id);
allBaseOverrideGetBreakSpeedSuperiors.remove(id);
allBaseOverrideGetBreakSpeedInferiors.remove(id);
allBaseAfterGetBreakSpeedSuperiors.remove(id);
allBaseAfterGetBreakSpeedInferiors.remove(id);
beforeGetBreakSpeedHookTypes.remove(id);
overrideGetBreakSpeedHookTypes.remove(id);
afterGetBreakSpeedHookTypes.remove(id);
allBaseBeforeGetDistanceSqSuperiors.remove(id);
allBaseBeforeGetDistanceSqInferiors.remove(id);
allBaseOverrideGetDistanceSqSuperiors.remove(id);
allBaseOverrideGetDistanceSqInferiors.remove(id);
allBaseAfterGetDistanceSqSuperiors.remove(id);
allBaseAfterGetDistanceSqInferiors.remove(id);
beforeGetDistanceSqHookTypes.remove(id);
overrideGetDistanceSqHookTypes.remove(id);
afterGetDistanceSqHookTypes.remove(id);
allBaseBeforeGetDistanceSqToEntitySuperiors.remove(id);
allBaseBeforeGetDistanceSqToEntityInferiors.remove(id);
allBaseOverrideGetDistanceSqToEntitySuperiors.remove(id);
allBaseOverrideGetDistanceSqToEntityInferiors.remove(id);
allBaseAfterGetDistanceSqToEntitySuperiors.remove(id);
allBaseAfterGetDistanceSqToEntityInferiors.remove(id);
beforeGetDistanceSqToEntityHookTypes.remove(id);
overrideGetDistanceSqToEntityHookTypes.remove(id);
afterGetDistanceSqToEntityHookTypes.remove(id);
allBaseBeforeGetFovModifierSuperiors.remove(id);
allBaseBeforeGetFovModifierInferiors.remove(id);
allBaseOverrideGetFovModifierSuperiors.remove(id);
allBaseOverrideGetFovModifierInferiors.remove(id);
allBaseAfterGetFovModifierSuperiors.remove(id);
allBaseAfterGetFovModifierInferiors.remove(id);
beforeGetFovModifierHookTypes.remove(id);
overrideGetFovModifierHookTypes.remove(id);
afterGetFovModifierHookTypes.remove(id);
allBaseBeforeGetHurtSoundSuperiors.remove(id);
allBaseBeforeGetHurtSoundInferiors.remove(id);
allBaseOverrideGetHurtSoundSuperiors.remove(id);
allBaseOverrideGetHurtSoundInferiors.remove(id);
allBaseAfterGetHurtSoundSuperiors.remove(id);
allBaseAfterGetHurtSoundInferiors.remove(id);
beforeGetHurtSoundHookTypes.remove(id);
overrideGetHurtSoundHookTypes.remove(id);
afterGetHurtSoundHookTypes.remove(id);
allBaseBeforeGetNameSuperiors.remove(id);
allBaseBeforeGetNameInferiors.remove(id);
allBaseOverrideGetNameSuperiors.remove(id);
allBaseOverrideGetNameInferiors.remove(id);
allBaseAfterGetNameSuperiors.remove(id);
allBaseAfterGetNameInferiors.remove(id);
beforeGetNameHookTypes.remove(id);
overrideGetNameHookTypes.remove(id);
afterGetNameHookTypes.remove(id);
allBaseBeforeGetSleepTimerSuperiors.remove(id);
allBaseBeforeGetSleepTimerInferiors.remove(id);
allBaseOverrideGetSleepTimerSuperiors.remove(id);
allBaseOverrideGetSleepTimerInferiors.remove(id);
allBaseAfterGetSleepTimerSuperiors.remove(id);
allBaseAfterGetSleepTimerInferiors.remove(id);
beforeGetSleepTimerHookTypes.remove(id);
overrideGetSleepTimerHookTypes.remove(id);
afterGetSleepTimerHookTypes.remove(id);
allBaseBeforeHandleWaterMovementSuperiors.remove(id);
allBaseBeforeHandleWaterMovementInferiors.remove(id);
allBaseOverrideHandleWaterMovementSuperiors.remove(id);
allBaseOverrideHandleWaterMovementInferiors.remove(id);
allBaseAfterHandleWaterMovementSuperiors.remove(id);
allBaseAfterHandleWaterMovementInferiors.remove(id);
beforeHandleWaterMovementHookTypes.remove(id);
overrideHandleWaterMovementHookTypes.remove(id);
afterHandleWaterMovementHookTypes.remove(id);
allBaseBeforeHealSuperiors.remove(id);
allBaseBeforeHealInferiors.remove(id);
allBaseOverrideHealSuperiors.remove(id);
allBaseOverrideHealInferiors.remove(id);
allBaseAfterHealSuperiors.remove(id);
allBaseAfterHealInferiors.remove(id);
beforeHealHookTypes.remove(id);
overrideHealHookTypes.remove(id);
afterHealHookTypes.remove(id);
allBaseBeforeIsEntityInsideOpaqueBlockSuperiors.remove(id);
allBaseBeforeIsEntityInsideOpaqueBlockInferiors.remove(id);
allBaseOverrideIsEntityInsideOpaqueBlockSuperiors.remove(id);
allBaseOverrideIsEntityInsideOpaqueBlockInferiors.remove(id);
allBaseAfterIsEntityInsideOpaqueBlockSuperiors.remove(id);
allBaseAfterIsEntityInsideOpaqueBlockInferiors.remove(id);
beforeIsEntityInsideOpaqueBlockHookTypes.remove(id);
overrideIsEntityInsideOpaqueBlockHookTypes.remove(id);
afterIsEntityInsideOpaqueBlockHookTypes.remove(id);
allBaseBeforeIsInWaterSuperiors.remove(id);
allBaseBeforeIsInWaterInferiors.remove(id);
allBaseOverrideIsInWaterSuperiors.remove(id);
allBaseOverrideIsInWaterInferiors.remove(id);
allBaseAfterIsInWaterSuperiors.remove(id);
allBaseAfterIsInWaterInferiors.remove(id);
beforeIsInWaterHookTypes.remove(id);
overrideIsInWaterHookTypes.remove(id);
afterIsInWaterHookTypes.remove(id);
allBaseBeforeIsInsideOfMaterialSuperiors.remove(id);
allBaseBeforeIsInsideOfMaterialInferiors.remove(id);
allBaseOverrideIsInsideOfMaterialSuperiors.remove(id);
allBaseOverrideIsInsideOfMaterialInferiors.remove(id);
allBaseAfterIsInsideOfMaterialSuperiors.remove(id);
allBaseAfterIsInsideOfMaterialInferiors.remove(id);
beforeIsInsideOfMaterialHookTypes.remove(id);
overrideIsInsideOfMaterialHookTypes.remove(id);
afterIsInsideOfMaterialHookTypes.remove(id);
allBaseBeforeIsOnLadderSuperiors.remove(id);
allBaseBeforeIsOnLadderInferiors.remove(id);
allBaseOverrideIsOnLadderSuperiors.remove(id);
allBaseOverrideIsOnLadderInferiors.remove(id);
allBaseAfterIsOnLadderSuperiors.remove(id);
allBaseAfterIsOnLadderInferiors.remove(id);
beforeIsOnLadderHookTypes.remove(id);
overrideIsOnLadderHookTypes.remove(id);
afterIsOnLadderHookTypes.remove(id);
allBaseBeforeIsPlayerSleepingSuperiors.remove(id);
allBaseBeforeIsPlayerSleepingInferiors.remove(id);
allBaseOverrideIsPlayerSleepingSuperiors.remove(id);
allBaseOverrideIsPlayerSleepingInferiors.remove(id);
allBaseAfterIsPlayerSleepingSuperiors.remove(id);
allBaseAfterIsPlayerSleepingInferiors.remove(id);
beforeIsPlayerSleepingHookTypes.remove(id);
overrideIsPlayerSleepingHookTypes.remove(id);
afterIsPlayerSleepingHookTypes.remove(id);
allBaseBeforeIsSneakingSuperiors.remove(id);
allBaseBeforeIsSneakingInferiors.remove(id);
allBaseOverrideIsSneakingSuperiors.remove(id);
allBaseOverrideIsSneakingInferiors.remove(id);
allBaseAfterIsSneakingSuperiors.remove(id);
allBaseAfterIsSneakingInferiors.remove(id);
beforeIsSneakingHookTypes.remove(id);
overrideIsSneakingHookTypes.remove(id);
afterIsSneakingHookTypes.remove(id);
allBaseBeforeIsSprintingSuperiors.remove(id);
allBaseBeforeIsSprintingInferiors.remove(id);
allBaseOverrideIsSprintingSuperiors.remove(id);
allBaseOverrideIsSprintingInferiors.remove(id);
allBaseAfterIsSprintingSuperiors.remove(id);
allBaseAfterIsSprintingInferiors.remove(id);
beforeIsSprintingHookTypes.remove(id);
overrideIsSprintingHookTypes.remove(id);
afterIsSprintingHookTypes.remove(id);
allBaseBeforeJumpSuperiors.remove(id);
allBaseBeforeJumpInferiors.remove(id);
allBaseOverrideJumpSuperiors.remove(id);
allBaseOverrideJumpInferiors.remove(id);
allBaseAfterJumpSuperiors.remove(id);
allBaseAfterJumpInferiors.remove(id);
beforeJumpHookTypes.remove(id);
overrideJumpHookTypes.remove(id);
afterJumpHookTypes.remove(id);
allBaseBeforeKnockBackSuperiors.remove(id);
allBaseBeforeKnockBackInferiors.remove(id);
allBaseOverrideKnockBackSuperiors.remove(id);
allBaseOverrideKnockBackInferiors.remove(id);
allBaseAfterKnockBackSuperiors.remove(id);
allBaseAfterKnockBackInferiors.remove(id);
beforeKnockBackHookTypes.remove(id);
overrideKnockBackHookTypes.remove(id);
afterKnockBackHookTypes.remove(id);
allBaseBeforeMoveEntitySuperiors.remove(id);
allBaseBeforeMoveEntityInferiors.remove(id);
allBaseOverrideMoveEntitySuperiors.remove(id);
allBaseOverrideMoveEntityInferiors.remove(id);
allBaseAfterMoveEntitySuperiors.remove(id);
allBaseAfterMoveEntityInferiors.remove(id);
beforeMoveEntityHookTypes.remove(id);
overrideMoveEntityHookTypes.remove(id);
afterMoveEntityHookTypes.remove(id);
allBaseBeforeMoveEntityWithHeadingSuperiors.remove(id);
allBaseBeforeMoveEntityWithHeadingInferiors.remove(id);
allBaseOverrideMoveEntityWithHeadingSuperiors.remove(id);
allBaseOverrideMoveEntityWithHeadingInferiors.remove(id);
allBaseAfterMoveEntityWithHeadingSuperiors.remove(id);
allBaseAfterMoveEntityWithHeadingInferiors.remove(id);
beforeMoveEntityWithHeadingHookTypes.remove(id);
overrideMoveEntityWithHeadingHookTypes.remove(id);
afterMoveEntityWithHeadingHookTypes.remove(id);
allBaseBeforeMoveFlyingSuperiors.remove(id);
allBaseBeforeMoveFlyingInferiors.remove(id);
allBaseOverrideMoveFlyingSuperiors.remove(id);
allBaseOverrideMoveFlyingInferiors.remove(id);
allBaseAfterMoveFlyingSuperiors.remove(id);
allBaseAfterMoveFlyingInferiors.remove(id);
beforeMoveFlyingHookTypes.remove(id);
overrideMoveFlyingHookTypes.remove(id);
afterMoveFlyingHookTypes.remove(id);
allBaseBeforeOnDeathSuperiors.remove(id);
allBaseBeforeOnDeathInferiors.remove(id);
allBaseOverrideOnDeathSuperiors.remove(id);
allBaseOverrideOnDeathInferiors.remove(id);
allBaseAfterOnDeathSuperiors.remove(id);
allBaseAfterOnDeathInferiors.remove(id);
beforeOnDeathHookTypes.remove(id);
overrideOnDeathHookTypes.remove(id);
afterOnDeathHookTypes.remove(id);
allBaseBeforeOnLivingUpdateSuperiors.remove(id);
allBaseBeforeOnLivingUpdateInferiors.remove(id);
allBaseOverrideOnLivingUpdateSuperiors.remove(id);
allBaseOverrideOnLivingUpdateInferiors.remove(id);
allBaseAfterOnLivingUpdateSuperiors.remove(id);
allBaseAfterOnLivingUpdateInferiors.remove(id);
beforeOnLivingUpdateHookTypes.remove(id);
overrideOnLivingUpdateHookTypes.remove(id);
afterOnLivingUpdateHookTypes.remove(id);
allBaseBeforeOnKillEntitySuperiors.remove(id);
allBaseBeforeOnKillEntityInferiors.remove(id);
allBaseOverrideOnKillEntitySuperiors.remove(id);
allBaseOverrideOnKillEntityInferiors.remove(id);
allBaseAfterOnKillEntitySuperiors.remove(id);
allBaseAfterOnKillEntityInferiors.remove(id);
beforeOnKillEntityHookTypes.remove(id);
overrideOnKillEntityHookTypes.remove(id);
afterOnKillEntityHookTypes.remove(id);
allBaseBeforeOnStruckByLightningSuperiors.remove(id);
allBaseBeforeOnStruckByLightningInferiors.remove(id);
allBaseOverrideOnStruckByLightningSuperiors.remove(id);
allBaseOverrideOnStruckByLightningInferiors.remove(id);
allBaseAfterOnStruckByLightningSuperiors.remove(id);
allBaseAfterOnStruckByLightningInferiors.remove(id);
beforeOnStruckByLightningHookTypes.remove(id);
overrideOnStruckByLightningHookTypes.remove(id);
afterOnStruckByLightningHookTypes.remove(id);
allBaseBeforeOnUpdateSuperiors.remove(id);
allBaseBeforeOnUpdateInferiors.remove(id);
allBaseOverrideOnUpdateSuperiors.remove(id);
allBaseOverrideOnUpdateInferiors.remove(id);
allBaseAfterOnUpdateSuperiors.remove(id);
allBaseAfterOnUpdateInferiors.remove(id);
beforeOnUpdateHookTypes.remove(id);
overrideOnUpdateHookTypes.remove(id);
afterOnUpdateHookTypes.remove(id);
allBaseBeforePlayStepSoundSuperiors.remove(id);
allBaseBeforePlayStepSoundInferiors.remove(id);
allBaseOverridePlayStepSoundSuperiors.remove(id);
allBaseOverridePlayStepSoundInferiors.remove(id);
allBaseAfterPlayStepSoundSuperiors.remove(id);
allBaseAfterPlayStepSoundInferiors.remove(id);
beforePlayStepSoundHookTypes.remove(id);
overridePlayStepSoundHookTypes.remove(id);
afterPlayStepSoundHookTypes.remove(id);
allBaseBeforePushOutOfBlocksSuperiors.remove(id);
allBaseBeforePushOutOfBlocksInferiors.remove(id);
allBaseOverridePushOutOfBlocksSuperiors.remove(id);
allBaseOverridePushOutOfBlocksInferiors.remove(id);
allBaseAfterPushOutOfBlocksSuperiors.remove(id);
allBaseAfterPushOutOfBlocksInferiors.remove(id);
beforePushOutOfBlocksHookTypes.remove(id);
overridePushOutOfBlocksHookTypes.remove(id);
afterPushOutOfBlocksHookTypes.remove(id);
allBaseBeforeRayTraceSuperiors.remove(id);
allBaseBeforeRayTraceInferiors.remove(id);
allBaseOverrideRayTraceSuperiors.remove(id);
allBaseOverrideRayTraceInferiors.remove(id);
allBaseAfterRayTraceSuperiors.remove(id);
allBaseAfterRayTraceInferiors.remove(id);
beforeRayTraceHookTypes.remove(id);
overrideRayTraceHookTypes.remove(id);
afterRayTraceHookTypes.remove(id);
allBaseBeforeReadEntityFromNBTSuperiors.remove(id);
allBaseBeforeReadEntityFromNBTInferiors.remove(id);
allBaseOverrideReadEntityFromNBTSuperiors.remove(id);
allBaseOverrideReadEntityFromNBTInferiors.remove(id);
allBaseAfterReadEntityFromNBTSuperiors.remove(id);
allBaseAfterReadEntityFromNBTInferiors.remove(id);
beforeReadEntityFromNBTHookTypes.remove(id);
overrideReadEntityFromNBTHookTypes.remove(id);
afterReadEntityFromNBTHookTypes.remove(id);
allBaseBeforeRespawnPlayerSuperiors.remove(id);
allBaseBeforeRespawnPlayerInferiors.remove(id);
allBaseOverrideRespawnPlayerSuperiors.remove(id);
allBaseOverrideRespawnPlayerInferiors.remove(id);
allBaseAfterRespawnPlayerSuperiors.remove(id);
allBaseAfterRespawnPlayerInferiors.remove(id);
beforeRespawnPlayerHookTypes.remove(id);
overrideRespawnPlayerHookTypes.remove(id);
afterRespawnPlayerHookTypes.remove(id);
allBaseBeforeSetDeadSuperiors.remove(id);
allBaseBeforeSetDeadInferiors.remove(id);
allBaseOverrideSetDeadSuperiors.remove(id);
allBaseOverrideSetDeadInferiors.remove(id);
allBaseAfterSetDeadSuperiors.remove(id);
allBaseAfterSetDeadInferiors.remove(id);
beforeSetDeadHookTypes.remove(id);
overrideSetDeadHookTypes.remove(id);
afterSetDeadHookTypes.remove(id);
allBaseBeforeSetPlayerSPHealthSuperiors.remove(id);
allBaseBeforeSetPlayerSPHealthInferiors.remove(id);
allBaseOverrideSetPlayerSPHealthSuperiors.remove(id);
allBaseOverrideSetPlayerSPHealthInferiors.remove(id);
allBaseAfterSetPlayerSPHealthSuperiors.remove(id);
allBaseAfterSetPlayerSPHealthInferiors.remove(id);
beforeSetPlayerSPHealthHookTypes.remove(id);
overrideSetPlayerSPHealthHookTypes.remove(id);
afterSetPlayerSPHealthHookTypes.remove(id);
allBaseBeforeSetPositionAndRotationSuperiors.remove(id);
allBaseBeforeSetPositionAndRotationInferiors.remove(id);
allBaseOverrideSetPositionAndRotationSuperiors.remove(id);
allBaseOverrideSetPositionAndRotationInferiors.remove(id);
allBaseAfterSetPositionAndRotationSuperiors.remove(id);
allBaseAfterSetPositionAndRotationInferiors.remove(id);
beforeSetPositionAndRotationHookTypes.remove(id);
overrideSetPositionAndRotationHookTypes.remove(id);
afterSetPositionAndRotationHookTypes.remove(id);
allBaseBeforeSetSneakingSuperiors.remove(id);
allBaseBeforeSetSneakingInferiors.remove(id);
allBaseOverrideSetSneakingSuperiors.remove(id);
allBaseOverrideSetSneakingInferiors.remove(id);
allBaseAfterSetSneakingSuperiors.remove(id);
allBaseAfterSetSneakingInferiors.remove(id);
beforeSetSneakingHookTypes.remove(id);
overrideSetSneakingHookTypes.remove(id);
afterSetSneakingHookTypes.remove(id);
allBaseBeforeSetSprintingSuperiors.remove(id);
allBaseBeforeSetSprintingInferiors.remove(id);
allBaseOverrideSetSprintingSuperiors.remove(id);
allBaseOverrideSetSprintingInferiors.remove(id);
allBaseAfterSetSprintingSuperiors.remove(id);
allBaseAfterSetSprintingInferiors.remove(id);
beforeSetSprintingHookTypes.remove(id);
overrideSetSprintingHookTypes.remove(id);
afterSetSprintingHookTypes.remove(id);
allBaseBeforeTrySleepSuperiors.remove(id);
allBaseBeforeTrySleepInferiors.remove(id);
allBaseOverrideTrySleepSuperiors.remove(id);
allBaseOverrideTrySleepInferiors.remove(id);
allBaseAfterTrySleepSuperiors.remove(id);
allBaseAfterTrySleepInferiors.remove(id);
beforeTrySleepHookTypes.remove(id);
overrideTrySleepHookTypes.remove(id);
afterTrySleepHookTypes.remove(id);
allBaseBeforeSwingItemSuperiors.remove(id);
allBaseBeforeSwingItemInferiors.remove(id);
allBaseOverrideSwingItemSuperiors.remove(id);
allBaseOverrideSwingItemInferiors.remove(id);
allBaseAfterSwingItemSuperiors.remove(id);
allBaseAfterSwingItemInferiors.remove(id);
beforeSwingItemHookTypes.remove(id);
overrideSwingItemHookTypes.remove(id);
afterSwingItemHookTypes.remove(id);
allBaseBeforeUpdateEntityActionStateSuperiors.remove(id);
allBaseBeforeUpdateEntityActionStateInferiors.remove(id);
allBaseOverrideUpdateEntityActionStateSuperiors.remove(id);
allBaseOverrideUpdateEntityActionStateInferiors.remove(id);
allBaseAfterUpdateEntityActionStateSuperiors.remove(id);
allBaseAfterUpdateEntityActionStateInferiors.remove(id);
beforeUpdateEntityActionStateHookTypes.remove(id);
overrideUpdateEntityActionStateHookTypes.remove(id);
afterUpdateEntityActionStateHookTypes.remove(id);
allBaseBeforeUpdateRiddenSuperiors.remove(id);
allBaseBeforeUpdateRiddenInferiors.remove(id);
allBaseOverrideUpdateRiddenSuperiors.remove(id);
allBaseOverrideUpdateRiddenInferiors.remove(id);
allBaseAfterUpdateRiddenSuperiors.remove(id);
allBaseAfterUpdateRiddenInferiors.remove(id);
beforeUpdateRiddenHookTypes.remove(id);
overrideUpdateRiddenHookTypes.remove(id);
afterUpdateRiddenHookTypes.remove(id);
allBaseBeforeWakeUpPlayerSuperiors.remove(id);
allBaseBeforeWakeUpPlayerInferiors.remove(id);
allBaseOverrideWakeUpPlayerSuperiors.remove(id);
allBaseOverrideWakeUpPlayerInferiors.remove(id);
allBaseAfterWakeUpPlayerSuperiors.remove(id);
allBaseAfterWakeUpPlayerInferiors.remove(id);
beforeWakeUpPlayerHookTypes.remove(id);
overrideWakeUpPlayerHookTypes.remove(id);
afterWakeUpPlayerHookTypes.remove(id);
allBaseBeforeWriteEntityToNBTSuperiors.remove(id);
allBaseBeforeWriteEntityToNBTInferiors.remove(id);
allBaseOverrideWriteEntityToNBTSuperiors.remove(id);
allBaseOverrideWriteEntityToNBTInferiors.remove(id);
allBaseAfterWriteEntityToNBTSuperiors.remove(id);
allBaseAfterWriteEntityToNBTInferiors.remove(id);
beforeWriteEntityToNBTHookTypes.remove(id);
overrideWriteEntityToNBTHookTypes.remove(id);
afterWriteEntityToNBTHookTypes.remove(id);
for(IClientPlayerAPI instance : getAllInstancesList())
instance.getClientPlayerAPI().updateClientPlayerBases();
Iterator<String> iterator = keysToVirtualIds.keySet().iterator();
while(iterator.hasNext())
{
String key = iterator.next();
if(keysToVirtualIds.get(key).equals(id))
keysToVirtualIds.remove(key);
}
boolean otherFound = false;
Class<?> type = constructor.getDeclaringClass();
iterator = allBaseConstructors.keySet().iterator();
while(iterator.hasNext())
{
String otherId = iterator.next();
Class<?> otherType = allBaseConstructors.get(otherId).getDeclaringClass();
if(!otherId.equals(id) && otherType.equals(type))
{
otherFound = true;
break;
}
}
if(!otherFound)
{
dynamicTypes.remove(type);
virtualDynamicHookMethods.remove(type);
beforeDynamicHookMethods.remove(type);
overrideDynamicHookMethods.remove(type);
afterDynamicHookMethods.remove(type);
}
removeDynamicHookTypes(id, beforeDynamicHookTypes);
removeDynamicHookTypes(id, overrideDynamicHookTypes);
removeDynamicHookTypes(id, afterDynamicHookTypes);
allBaseBeforeDynamicSuperiors.remove(id);
allBaseBeforeDynamicInferiors.remove(id);
allBaseOverrideDynamicSuperiors.remove(id);
allBaseOverrideDynamicInferiors.remove(id);
allBaseAfterDynamicSuperiors.remove(id);
allBaseAfterDynamicInferiors.remove(id);
log("ClientPlayerAPI: unregistered id '" + id + "'");
return true;
}
public static void removeDynamicHookTypes(String id, Map<String, List<String>> map)
{
Iterator<String> keys = map.keySet().iterator();
while(keys.hasNext())
map.get(keys.next()).remove(id);
}
public static Set<String> getRegisteredIds()
{
return unmodifiableAllIds;
}
private static void addSorting(String id, Map<String, String[]> map, String[] values)
{
if(values != null && values.length > 0)
map.put(id, values);
}
private static void addDynamicSorting(String id, Map<String, Map<String, String[]>> map, Map<String, String[]> values)
{
if(values != null && values.size() > 0)
map.put(id, values);
}
private static boolean addMethod(String id, Class<?> baseClass, List<String> list, String methodName, Class<?>... _parameterTypes)
{
try
{
Method method = baseClass.getMethod(methodName, _parameterTypes);
boolean isOverridden = method.getDeclaringClass() != ClientPlayerBase.class;
if(isOverridden)
list.add(id);
return isOverridden;
}
catch(Exception e)
{
throw new RuntimeException("Can not reflect method '" + methodName + "' of class '" + baseClass.getName() + "'", e);
}
}
private static void addDynamicMethods(String id, Class<?> baseClass)
{
if(!dynamicTypes.add(baseClass))
return;
Map<String, Method> virtuals = null;
Map<String, Method> befores = null;
Map<String, Method> overrides = null;
Map<String, Method> afters = null;
Method[] methods = baseClass.getDeclaredMethods();
for(int i=0; i<methods.length; i++)
{
Method method = methods[i];
if(method.getDeclaringClass() != baseClass)
continue;
int modifiers = method.getModifiers();
if(Modifier.isAbstract(modifiers))
continue;
if(Modifier.isStatic(modifiers))
continue;
String name = method.getName();
if(name.length() < 7 || !name.substring(0, 7).equalsIgnoreCase("dynamic"))
continue;
else
name = name.substring(7);
while(name.charAt(0) == '_')
name = name.substring(1);
boolean before = false;
boolean virtual = false;
boolean override = false;
boolean after = false;
if(name.substring(0, 7).equalsIgnoreCase("virtual"))
{
virtual = true;
name = name.substring(7);
}
else
{
if(name.length() >= 8 && name.substring(0, 8).equalsIgnoreCase("override"))
{
name = name.substring(8);
override = true;
}
else if(name.length() >= 6 && name.substring(0, 6).equalsIgnoreCase("before"))
{
before = true;
name = name.substring(6);
}
else if(name.length() >= 5 && name.substring(0, 5).equalsIgnoreCase("after"))
{
after = true;
name = name.substring(5);
}
}
if(name.length() >= 1 && (before || virtual || override || after))
name = name.substring(0,1).toLowerCase() + name.substring(1);
while(name.charAt(0) == '_')
name = name.substring(1);
if(name.length() == 0)
throw new RuntimeException("Can not process dynamic hook method with no key");
keys.add(name);
if(virtual)
{
if(keysToVirtualIds.containsKey(name))
throw new RuntimeException("Can not process more than one dynamic virtual method");
keysToVirtualIds.put(name, id);
virtuals = addDynamicMethod(name, method, virtuals);
}
else if(before)
befores = addDynamicMethod(name, method, befores);
else if(after)
afters = addDynamicMethod(name, method, afters);
else
overrides = addDynamicMethod(name, method, overrides);
}
if(virtuals != null)
virtualDynamicHookMethods.put(baseClass, virtuals);
if(befores != null)
beforeDynamicHookMethods.put(baseClass, befores);
if(overrides != null)
overrideDynamicHookMethods.put(baseClass, overrides);
if(afters != null)
afterDynamicHookMethods.put(baseClass, afters);
}
private static void addDynamicKeys(String id, Class<?> baseClass, Map<Class<?>, Map<String, Method>> dynamicHookMethods, Map<String, List<String>> dynamicHookTypes)
{
Map<String, Method> methods = dynamicHookMethods.get(baseClass);
if(methods == null || methods.size() == 0)
return;
Iterator<String> keys = methods.keySet().iterator();
while(keys.hasNext())
{
String key = keys.next();
if(!dynamicHookTypes.containsKey(key))
dynamicHookTypes.put(key, new ArrayList<String>(1));
dynamicHookTypes.get(key).add(id);
}
}
private static Map<String, Method> addDynamicMethod(String key, Method method, Map<String, Method> methods)
{
if(methods == null)
methods = new HashMap<String, Method>();
if(methods.containsKey(key))
throw new RuntimeException("method with key '" + key + "' allready exists");
methods.put(key, method);
return methods;
}
public static ClientPlayerAPI create(IClientPlayerAPI clientPlayer)
{
if(allBaseConstructors.size() > 0 && !initialized)
initialize();
return new ClientPlayerAPI(clientPlayer);
}
private static void initialize()
{
sortBases(beforeLocalConstructingHookTypes, allBaseBeforeLocalConstructingSuperiors, allBaseBeforeLocalConstructingInferiors, "beforeLocalConstructing");
sortBases(afterLocalConstructingHookTypes, allBaseAfterLocalConstructingSuperiors, allBaseAfterLocalConstructingInferiors, "afterLocalConstructing");
Iterator<String> keyIterator = keys.iterator();
while(keyIterator.hasNext())
{
String key = keyIterator.next();
sortDynamicBases(beforeDynamicHookTypes, allBaseBeforeDynamicSuperiors, allBaseBeforeDynamicInferiors, key);
sortDynamicBases(overrideDynamicHookTypes, allBaseOverrideDynamicSuperiors, allBaseOverrideDynamicInferiors, key);
sortDynamicBases(afterDynamicHookTypes, allBaseAfterDynamicSuperiors, allBaseAfterDynamicInferiors, key);
}
sortBases(beforeAddExhaustionHookTypes, allBaseBeforeAddExhaustionSuperiors, allBaseBeforeAddExhaustionInferiors, "beforeAddExhaustion");
sortBases(overrideAddExhaustionHookTypes, allBaseOverrideAddExhaustionSuperiors, allBaseOverrideAddExhaustionInferiors, "overrideAddExhaustion");
sortBases(afterAddExhaustionHookTypes, allBaseAfterAddExhaustionSuperiors, allBaseAfterAddExhaustionInferiors, "afterAddExhaustion");
sortBases(beforeAddMovementStatHookTypes, allBaseBeforeAddMovementStatSuperiors, allBaseBeforeAddMovementStatInferiors, "beforeAddMovementStat");
sortBases(overrideAddMovementStatHookTypes, allBaseOverrideAddMovementStatSuperiors, allBaseOverrideAddMovementStatInferiors, "overrideAddMovementStat");
sortBases(afterAddMovementStatHookTypes, allBaseAfterAddMovementStatSuperiors, allBaseAfterAddMovementStatInferiors, "afterAddMovementStat");
sortBases(beforeAddStatHookTypes, allBaseBeforeAddStatSuperiors, allBaseBeforeAddStatInferiors, "beforeAddStat");
sortBases(overrideAddStatHookTypes, allBaseOverrideAddStatSuperiors, allBaseOverrideAddStatInferiors, "overrideAddStat");
sortBases(afterAddStatHookTypes, allBaseAfterAddStatSuperiors, allBaseAfterAddStatInferiors, "afterAddStat");
sortBases(beforeAttackEntityFromHookTypes, allBaseBeforeAttackEntityFromSuperiors, allBaseBeforeAttackEntityFromInferiors, "beforeAttackEntityFrom");
sortBases(overrideAttackEntityFromHookTypes, allBaseOverrideAttackEntityFromSuperiors, allBaseOverrideAttackEntityFromInferiors, "overrideAttackEntityFrom");
sortBases(afterAttackEntityFromHookTypes, allBaseAfterAttackEntityFromSuperiors, allBaseAfterAttackEntityFromInferiors, "afterAttackEntityFrom");
sortBases(beforeAttackTargetEntityWithCurrentItemHookTypes, allBaseBeforeAttackTargetEntityWithCurrentItemSuperiors, allBaseBeforeAttackTargetEntityWithCurrentItemInferiors, "beforeAttackTargetEntityWithCurrentItem");
sortBases(overrideAttackTargetEntityWithCurrentItemHookTypes, allBaseOverrideAttackTargetEntityWithCurrentItemSuperiors, allBaseOverrideAttackTargetEntityWithCurrentItemInferiors, "overrideAttackTargetEntityWithCurrentItem");
sortBases(afterAttackTargetEntityWithCurrentItemHookTypes, allBaseAfterAttackTargetEntityWithCurrentItemSuperiors, allBaseAfterAttackTargetEntityWithCurrentItemInferiors, "afterAttackTargetEntityWithCurrentItem");
sortBases(beforeCanBreatheUnderwaterHookTypes, allBaseBeforeCanBreatheUnderwaterSuperiors, allBaseBeforeCanBreatheUnderwaterInferiors, "beforeCanBreatheUnderwater");
sortBases(overrideCanBreatheUnderwaterHookTypes, allBaseOverrideCanBreatheUnderwaterSuperiors, allBaseOverrideCanBreatheUnderwaterInferiors, "overrideCanBreatheUnderwater");
sortBases(afterCanBreatheUnderwaterHookTypes, allBaseAfterCanBreatheUnderwaterSuperiors, allBaseAfterCanBreatheUnderwaterInferiors, "afterCanBreatheUnderwater");
sortBases(beforeCanHarvestBlockHookTypes, allBaseBeforeCanHarvestBlockSuperiors, allBaseBeforeCanHarvestBlockInferiors, "beforeCanHarvestBlock");
sortBases(overrideCanHarvestBlockHookTypes, allBaseOverrideCanHarvestBlockSuperiors, allBaseOverrideCanHarvestBlockInferiors, "overrideCanHarvestBlock");
sortBases(afterCanHarvestBlockHookTypes, allBaseAfterCanHarvestBlockSuperiors, allBaseAfterCanHarvestBlockInferiors, "afterCanHarvestBlock");
sortBases(beforeCanPlayerEditHookTypes, allBaseBeforeCanPlayerEditSuperiors, allBaseBeforeCanPlayerEditInferiors, "beforeCanPlayerEdit");
sortBases(overrideCanPlayerEditHookTypes, allBaseOverrideCanPlayerEditSuperiors, allBaseOverrideCanPlayerEditInferiors, "overrideCanPlayerEdit");
sortBases(afterCanPlayerEditHookTypes, allBaseAfterCanPlayerEditSuperiors, allBaseAfterCanPlayerEditInferiors, "afterCanPlayerEdit");
sortBases(beforeCanTriggerWalkingHookTypes, allBaseBeforeCanTriggerWalkingSuperiors, allBaseBeforeCanTriggerWalkingInferiors, "beforeCanTriggerWalking");
sortBases(overrideCanTriggerWalkingHookTypes, allBaseOverrideCanTriggerWalkingSuperiors, allBaseOverrideCanTriggerWalkingInferiors, "overrideCanTriggerWalking");
sortBases(afterCanTriggerWalkingHookTypes, allBaseAfterCanTriggerWalkingSuperiors, allBaseAfterCanTriggerWalkingInferiors, "afterCanTriggerWalking");
sortBases(beforeCloseScreenHookTypes, allBaseBeforeCloseScreenSuperiors, allBaseBeforeCloseScreenInferiors, "beforeCloseScreen");
sortBases(overrideCloseScreenHookTypes, allBaseOverrideCloseScreenSuperiors, allBaseOverrideCloseScreenInferiors, "overrideCloseScreen");
sortBases(afterCloseScreenHookTypes, allBaseAfterCloseScreenSuperiors, allBaseAfterCloseScreenInferiors, "afterCloseScreen");
sortBases(beforeDamageEntityHookTypes, allBaseBeforeDamageEntitySuperiors, allBaseBeforeDamageEntityInferiors, "beforeDamageEntity");
sortBases(overrideDamageEntityHookTypes, allBaseOverrideDamageEntitySuperiors, allBaseOverrideDamageEntityInferiors, "overrideDamageEntity");
sortBases(afterDamageEntityHookTypes, allBaseAfterDamageEntitySuperiors, allBaseAfterDamageEntityInferiors, "afterDamageEntity");
sortBases(beforeDisplayGuiHookTypes, allBaseBeforeDisplayGuiSuperiors, allBaseBeforeDisplayGuiInferiors, "beforeDisplayGui");
sortBases(overrideDisplayGuiHookTypes, allBaseOverrideDisplayGuiSuperiors, allBaseOverrideDisplayGuiInferiors, "overrideDisplayGui");
sortBases(afterDisplayGuiHookTypes, allBaseAfterDisplayGuiSuperiors, allBaseAfterDisplayGuiInferiors, "afterDisplayGui");
sortBases(beforeDisplayGUIChestHookTypes, allBaseBeforeDisplayGUIChestSuperiors, allBaseBeforeDisplayGUIChestInferiors, "beforeDisplayGUIChest");
sortBases(overrideDisplayGUIChestHookTypes, allBaseOverrideDisplayGUIChestSuperiors, allBaseOverrideDisplayGUIChestInferiors, "overrideDisplayGUIChest");
sortBases(afterDisplayGUIChestHookTypes, allBaseAfterDisplayGUIChestSuperiors, allBaseAfterDisplayGUIChestInferiors, "afterDisplayGUIChest");
sortBases(beforeDropItemHookTypes, allBaseBeforeDropItemSuperiors, allBaseBeforeDropItemInferiors, "beforeDropItem");
sortBases(overrideDropItemHookTypes, allBaseOverrideDropItemSuperiors, allBaseOverrideDropItemInferiors, "overrideDropItem");
sortBases(afterDropItemHookTypes, allBaseAfterDropItemSuperiors, allBaseAfterDropItemInferiors, "afterDropItem");
sortBases(beforeDropOneItemHookTypes, allBaseBeforeDropOneItemSuperiors, allBaseBeforeDropOneItemInferiors, "beforeDropOneItem");
sortBases(overrideDropOneItemHookTypes, allBaseOverrideDropOneItemSuperiors, allBaseOverrideDropOneItemInferiors, "overrideDropOneItem");
sortBases(afterDropOneItemHookTypes, allBaseAfterDropOneItemSuperiors, allBaseAfterDropOneItemInferiors, "afterDropOneItem");
sortBases(beforeDropPlayerItemWithRandomChoiceHookTypes, allBaseBeforeDropPlayerItemWithRandomChoiceSuperiors, allBaseBeforeDropPlayerItemWithRandomChoiceInferiors, "beforeDropPlayerItemWithRandomChoice");
sortBases(overrideDropPlayerItemWithRandomChoiceHookTypes, allBaseOverrideDropPlayerItemWithRandomChoiceSuperiors, allBaseOverrideDropPlayerItemWithRandomChoiceInferiors, "overrideDropPlayerItemWithRandomChoice");
sortBases(afterDropPlayerItemWithRandomChoiceHookTypes, allBaseAfterDropPlayerItemWithRandomChoiceSuperiors, allBaseAfterDropPlayerItemWithRandomChoiceInferiors, "afterDropPlayerItemWithRandomChoice");
sortBases(beforeFallHookTypes, allBaseBeforeFallSuperiors, allBaseBeforeFallInferiors, "beforeFall");
sortBases(overrideFallHookTypes, allBaseOverrideFallSuperiors, allBaseOverrideFallInferiors, "overrideFall");
sortBases(afterFallHookTypes, allBaseAfterFallSuperiors, allBaseAfterFallInferiors, "afterFall");
sortBases(beforeGetAIMoveSpeedHookTypes, allBaseBeforeGetAIMoveSpeedSuperiors, allBaseBeforeGetAIMoveSpeedInferiors, "beforeGetAIMoveSpeed");
sortBases(overrideGetAIMoveSpeedHookTypes, allBaseOverrideGetAIMoveSpeedSuperiors, allBaseOverrideGetAIMoveSpeedInferiors, "overrideGetAIMoveSpeed");
sortBases(afterGetAIMoveSpeedHookTypes, allBaseAfterGetAIMoveSpeedSuperiors, allBaseAfterGetAIMoveSpeedInferiors, "afterGetAIMoveSpeed");
sortBases(beforeGetBedOrientationInDegreesHookTypes, allBaseBeforeGetBedOrientationInDegreesSuperiors, allBaseBeforeGetBedOrientationInDegreesInferiors, "beforeGetBedOrientationInDegrees");
sortBases(overrideGetBedOrientationInDegreesHookTypes, allBaseOverrideGetBedOrientationInDegreesSuperiors, allBaseOverrideGetBedOrientationInDegreesInferiors, "overrideGetBedOrientationInDegrees");
sortBases(afterGetBedOrientationInDegreesHookTypes, allBaseAfterGetBedOrientationInDegreesSuperiors, allBaseAfterGetBedOrientationInDegreesInferiors, "afterGetBedOrientationInDegrees");
sortBases(beforeGetBrightnessHookTypes, allBaseBeforeGetBrightnessSuperiors, allBaseBeforeGetBrightnessInferiors, "beforeGetBrightness");
sortBases(overrideGetBrightnessHookTypes, allBaseOverrideGetBrightnessSuperiors, allBaseOverrideGetBrightnessInferiors, "overrideGetBrightness");
sortBases(afterGetBrightnessHookTypes, allBaseAfterGetBrightnessSuperiors, allBaseAfterGetBrightnessInferiors, "afterGetBrightness");
sortBases(beforeGetBrightnessForRenderHookTypes, allBaseBeforeGetBrightnessForRenderSuperiors, allBaseBeforeGetBrightnessForRenderInferiors, "beforeGetBrightnessForRender");
sortBases(overrideGetBrightnessForRenderHookTypes, allBaseOverrideGetBrightnessForRenderSuperiors, allBaseOverrideGetBrightnessForRenderInferiors, "overrideGetBrightnessForRender");
sortBases(afterGetBrightnessForRenderHookTypes, allBaseAfterGetBrightnessForRenderSuperiors, allBaseAfterGetBrightnessForRenderInferiors, "afterGetBrightnessForRender");
sortBases(beforeGetBreakSpeedHookTypes, allBaseBeforeGetBreakSpeedSuperiors, allBaseBeforeGetBreakSpeedInferiors, "beforeGetBreakSpeed");
sortBases(overrideGetBreakSpeedHookTypes, allBaseOverrideGetBreakSpeedSuperiors, allBaseOverrideGetBreakSpeedInferiors, "overrideGetBreakSpeed");
sortBases(afterGetBreakSpeedHookTypes, allBaseAfterGetBreakSpeedSuperiors, allBaseAfterGetBreakSpeedInferiors, "afterGetBreakSpeed");
sortBases(beforeGetDistanceSqHookTypes, allBaseBeforeGetDistanceSqSuperiors, allBaseBeforeGetDistanceSqInferiors, "beforeGetDistanceSq");
sortBases(overrideGetDistanceSqHookTypes, allBaseOverrideGetDistanceSqSuperiors, allBaseOverrideGetDistanceSqInferiors, "overrideGetDistanceSq");
sortBases(afterGetDistanceSqHookTypes, allBaseAfterGetDistanceSqSuperiors, allBaseAfterGetDistanceSqInferiors, "afterGetDistanceSq");
sortBases(beforeGetDistanceSqToEntityHookTypes, allBaseBeforeGetDistanceSqToEntitySuperiors, allBaseBeforeGetDistanceSqToEntityInferiors, "beforeGetDistanceSqToEntity");
sortBases(overrideGetDistanceSqToEntityHookTypes, allBaseOverrideGetDistanceSqToEntitySuperiors, allBaseOverrideGetDistanceSqToEntityInferiors, "overrideGetDistanceSqToEntity");
sortBases(afterGetDistanceSqToEntityHookTypes, allBaseAfterGetDistanceSqToEntitySuperiors, allBaseAfterGetDistanceSqToEntityInferiors, "afterGetDistanceSqToEntity");
sortBases(beforeGetFovModifierHookTypes, allBaseBeforeGetFovModifierSuperiors, allBaseBeforeGetFovModifierInferiors, "beforeGetFovModifier");
sortBases(overrideGetFovModifierHookTypes, allBaseOverrideGetFovModifierSuperiors, allBaseOverrideGetFovModifierInferiors, "overrideGetFovModifier");
sortBases(afterGetFovModifierHookTypes, allBaseAfterGetFovModifierSuperiors, allBaseAfterGetFovModifierInferiors, "afterGetFovModifier");
sortBases(beforeGetHurtSoundHookTypes, allBaseBeforeGetHurtSoundSuperiors, allBaseBeforeGetHurtSoundInferiors, "beforeGetHurtSound");
sortBases(overrideGetHurtSoundHookTypes, allBaseOverrideGetHurtSoundSuperiors, allBaseOverrideGetHurtSoundInferiors, "overrideGetHurtSound");
sortBases(afterGetHurtSoundHookTypes, allBaseAfterGetHurtSoundSuperiors, allBaseAfterGetHurtSoundInferiors, "afterGetHurtSound");
sortBases(beforeGetNameHookTypes, allBaseBeforeGetNameSuperiors, allBaseBeforeGetNameInferiors, "beforeGetName");
sortBases(overrideGetNameHookTypes, allBaseOverrideGetNameSuperiors, allBaseOverrideGetNameInferiors, "overrideGetName");
sortBases(afterGetNameHookTypes, allBaseAfterGetNameSuperiors, allBaseAfterGetNameInferiors, "afterGetName");
sortBases(beforeGetSleepTimerHookTypes, allBaseBeforeGetSleepTimerSuperiors, allBaseBeforeGetSleepTimerInferiors, "beforeGetSleepTimer");
sortBases(overrideGetSleepTimerHookTypes, allBaseOverrideGetSleepTimerSuperiors, allBaseOverrideGetSleepTimerInferiors, "overrideGetSleepTimer");
sortBases(afterGetSleepTimerHookTypes, allBaseAfterGetSleepTimerSuperiors, allBaseAfterGetSleepTimerInferiors, "afterGetSleepTimer");
sortBases(beforeHandleWaterMovementHookTypes, allBaseBeforeHandleWaterMovementSuperiors, allBaseBeforeHandleWaterMovementInferiors, "beforeHandleWaterMovement");
sortBases(overrideHandleWaterMovementHookTypes, allBaseOverrideHandleWaterMovementSuperiors, allBaseOverrideHandleWaterMovementInferiors, "overrideHandleWaterMovement");
sortBases(afterHandleWaterMovementHookTypes, allBaseAfterHandleWaterMovementSuperiors, allBaseAfterHandleWaterMovementInferiors, "afterHandleWaterMovement");
sortBases(beforeHealHookTypes, allBaseBeforeHealSuperiors, allBaseBeforeHealInferiors, "beforeHeal");
sortBases(overrideHealHookTypes, allBaseOverrideHealSuperiors, allBaseOverrideHealInferiors, "overrideHeal");
sortBases(afterHealHookTypes, allBaseAfterHealSuperiors, allBaseAfterHealInferiors, "afterHeal");
sortBases(beforeIsEntityInsideOpaqueBlockHookTypes, allBaseBeforeIsEntityInsideOpaqueBlockSuperiors, allBaseBeforeIsEntityInsideOpaqueBlockInferiors, "beforeIsEntityInsideOpaqueBlock");
sortBases(overrideIsEntityInsideOpaqueBlockHookTypes, allBaseOverrideIsEntityInsideOpaqueBlockSuperiors, allBaseOverrideIsEntityInsideOpaqueBlockInferiors, "overrideIsEntityInsideOpaqueBlock");
sortBases(afterIsEntityInsideOpaqueBlockHookTypes, allBaseAfterIsEntityInsideOpaqueBlockSuperiors, allBaseAfterIsEntityInsideOpaqueBlockInferiors, "afterIsEntityInsideOpaqueBlock");
sortBases(beforeIsInWaterHookTypes, allBaseBeforeIsInWaterSuperiors, allBaseBeforeIsInWaterInferiors, "beforeIsInWater");
sortBases(overrideIsInWaterHookTypes, allBaseOverrideIsInWaterSuperiors, allBaseOverrideIsInWaterInferiors, "overrideIsInWater");
sortBases(afterIsInWaterHookTypes, allBaseAfterIsInWaterSuperiors, allBaseAfterIsInWaterInferiors, "afterIsInWater");
sortBases(beforeIsInsideOfMaterialHookTypes, allBaseBeforeIsInsideOfMaterialSuperiors, allBaseBeforeIsInsideOfMaterialInferiors, "beforeIsInsideOfMaterial");
sortBases(overrideIsInsideOfMaterialHookTypes, allBaseOverrideIsInsideOfMaterialSuperiors, allBaseOverrideIsInsideOfMaterialInferiors, "overrideIsInsideOfMaterial");
sortBases(afterIsInsideOfMaterialHookTypes, allBaseAfterIsInsideOfMaterialSuperiors, allBaseAfterIsInsideOfMaterialInferiors, "afterIsInsideOfMaterial");
sortBases(beforeIsOnLadderHookTypes, allBaseBeforeIsOnLadderSuperiors, allBaseBeforeIsOnLadderInferiors, "beforeIsOnLadder");
sortBases(overrideIsOnLadderHookTypes, allBaseOverrideIsOnLadderSuperiors, allBaseOverrideIsOnLadderInferiors, "overrideIsOnLadder");
sortBases(afterIsOnLadderHookTypes, allBaseAfterIsOnLadderSuperiors, allBaseAfterIsOnLadderInferiors, "afterIsOnLadder");
sortBases(beforeIsPlayerSleepingHookTypes, allBaseBeforeIsPlayerSleepingSuperiors, allBaseBeforeIsPlayerSleepingInferiors, "beforeIsPlayerSleeping");
sortBases(overrideIsPlayerSleepingHookTypes, allBaseOverrideIsPlayerSleepingSuperiors, allBaseOverrideIsPlayerSleepingInferiors, "overrideIsPlayerSleeping");
sortBases(afterIsPlayerSleepingHookTypes, allBaseAfterIsPlayerSleepingSuperiors, allBaseAfterIsPlayerSleepingInferiors, "afterIsPlayerSleeping");
sortBases(beforeIsSneakingHookTypes, allBaseBeforeIsSneakingSuperiors, allBaseBeforeIsSneakingInferiors, "beforeIsSneaking");
sortBases(overrideIsSneakingHookTypes, allBaseOverrideIsSneakingSuperiors, allBaseOverrideIsSneakingInferiors, "overrideIsSneaking");
sortBases(afterIsSneakingHookTypes, allBaseAfterIsSneakingSuperiors, allBaseAfterIsSneakingInferiors, "afterIsSneaking");
sortBases(beforeIsSprintingHookTypes, allBaseBeforeIsSprintingSuperiors, allBaseBeforeIsSprintingInferiors, "beforeIsSprinting");
sortBases(overrideIsSprintingHookTypes, allBaseOverrideIsSprintingSuperiors, allBaseOverrideIsSprintingInferiors, "overrideIsSprinting");
sortBases(afterIsSprintingHookTypes, allBaseAfterIsSprintingSuperiors, allBaseAfterIsSprintingInferiors, "afterIsSprinting");
sortBases(beforeJumpHookTypes, allBaseBeforeJumpSuperiors, allBaseBeforeJumpInferiors, "beforeJump");
sortBases(overrideJumpHookTypes, allBaseOverrideJumpSuperiors, allBaseOverrideJumpInferiors, "overrideJump");
sortBases(afterJumpHookTypes, allBaseAfterJumpSuperiors, allBaseAfterJumpInferiors, "afterJump");
sortBases(beforeKnockBackHookTypes, allBaseBeforeKnockBackSuperiors, allBaseBeforeKnockBackInferiors, "beforeKnockBack");
sortBases(overrideKnockBackHookTypes, allBaseOverrideKnockBackSuperiors, allBaseOverrideKnockBackInferiors, "overrideKnockBack");
sortBases(afterKnockBackHookTypes, allBaseAfterKnockBackSuperiors, allBaseAfterKnockBackInferiors, "afterKnockBack");
sortBases(beforeMoveEntityHookTypes, allBaseBeforeMoveEntitySuperiors, allBaseBeforeMoveEntityInferiors, "beforeMoveEntity");
sortBases(overrideMoveEntityHookTypes, allBaseOverrideMoveEntitySuperiors, allBaseOverrideMoveEntityInferiors, "overrideMoveEntity");
sortBases(afterMoveEntityHookTypes, allBaseAfterMoveEntitySuperiors, allBaseAfterMoveEntityInferiors, "afterMoveEntity");
sortBases(beforeMoveEntityWithHeadingHookTypes, allBaseBeforeMoveEntityWithHeadingSuperiors, allBaseBeforeMoveEntityWithHeadingInferiors, "beforeMoveEntityWithHeading");
sortBases(overrideMoveEntityWithHeadingHookTypes, allBaseOverrideMoveEntityWithHeadingSuperiors, allBaseOverrideMoveEntityWithHeadingInferiors, "overrideMoveEntityWithHeading");
sortBases(afterMoveEntityWithHeadingHookTypes, allBaseAfterMoveEntityWithHeadingSuperiors, allBaseAfterMoveEntityWithHeadingInferiors, "afterMoveEntityWithHeading");
sortBases(beforeMoveFlyingHookTypes, allBaseBeforeMoveFlyingSuperiors, allBaseBeforeMoveFlyingInferiors, "beforeMoveFlying");
sortBases(overrideMoveFlyingHookTypes, allBaseOverrideMoveFlyingSuperiors, allBaseOverrideMoveFlyingInferiors, "overrideMoveFlying");
sortBases(afterMoveFlyingHookTypes, allBaseAfterMoveFlyingSuperiors, allBaseAfterMoveFlyingInferiors, "afterMoveFlying");
sortBases(beforeOnDeathHookTypes, allBaseBeforeOnDeathSuperiors, allBaseBeforeOnDeathInferiors, "beforeOnDeath");
sortBases(overrideOnDeathHookTypes, allBaseOverrideOnDeathSuperiors, allBaseOverrideOnDeathInferiors, "overrideOnDeath");
sortBases(afterOnDeathHookTypes, allBaseAfterOnDeathSuperiors, allBaseAfterOnDeathInferiors, "afterOnDeath");
sortBases(beforeOnLivingUpdateHookTypes, allBaseBeforeOnLivingUpdateSuperiors, allBaseBeforeOnLivingUpdateInferiors, "beforeOnLivingUpdate");
sortBases(overrideOnLivingUpdateHookTypes, allBaseOverrideOnLivingUpdateSuperiors, allBaseOverrideOnLivingUpdateInferiors, "overrideOnLivingUpdate");
sortBases(afterOnLivingUpdateHookTypes, allBaseAfterOnLivingUpdateSuperiors, allBaseAfterOnLivingUpdateInferiors, "afterOnLivingUpdate");
sortBases(beforeOnKillEntityHookTypes, allBaseBeforeOnKillEntitySuperiors, allBaseBeforeOnKillEntityInferiors, "beforeOnKillEntity");
sortBases(overrideOnKillEntityHookTypes, allBaseOverrideOnKillEntitySuperiors, allBaseOverrideOnKillEntityInferiors, "overrideOnKillEntity");
sortBases(afterOnKillEntityHookTypes, allBaseAfterOnKillEntitySuperiors, allBaseAfterOnKillEntityInferiors, "afterOnKillEntity");
sortBases(beforeOnStruckByLightningHookTypes, allBaseBeforeOnStruckByLightningSuperiors, allBaseBeforeOnStruckByLightningInferiors, "beforeOnStruckByLightning");
sortBases(overrideOnStruckByLightningHookTypes, allBaseOverrideOnStruckByLightningSuperiors, allBaseOverrideOnStruckByLightningInferiors, "overrideOnStruckByLightning");
sortBases(afterOnStruckByLightningHookTypes, allBaseAfterOnStruckByLightningSuperiors, allBaseAfterOnStruckByLightningInferiors, "afterOnStruckByLightning");
sortBases(beforeOnUpdateHookTypes, allBaseBeforeOnUpdateSuperiors, allBaseBeforeOnUpdateInferiors, "beforeOnUpdate");
sortBases(overrideOnUpdateHookTypes, allBaseOverrideOnUpdateSuperiors, allBaseOverrideOnUpdateInferiors, "overrideOnUpdate");
sortBases(afterOnUpdateHookTypes, allBaseAfterOnUpdateSuperiors, allBaseAfterOnUpdateInferiors, "afterOnUpdate");
sortBases(beforePlayStepSoundHookTypes, allBaseBeforePlayStepSoundSuperiors, allBaseBeforePlayStepSoundInferiors, "beforePlayStepSound");
sortBases(overridePlayStepSoundHookTypes, allBaseOverridePlayStepSoundSuperiors, allBaseOverridePlayStepSoundInferiors, "overridePlayStepSound");
sortBases(afterPlayStepSoundHookTypes, allBaseAfterPlayStepSoundSuperiors, allBaseAfterPlayStepSoundInferiors, "afterPlayStepSound");
sortBases(beforePushOutOfBlocksHookTypes, allBaseBeforePushOutOfBlocksSuperiors, allBaseBeforePushOutOfBlocksInferiors, "beforePushOutOfBlocks");
sortBases(overridePushOutOfBlocksHookTypes, allBaseOverridePushOutOfBlocksSuperiors, allBaseOverridePushOutOfBlocksInferiors, "overridePushOutOfBlocks");
sortBases(afterPushOutOfBlocksHookTypes, allBaseAfterPushOutOfBlocksSuperiors, allBaseAfterPushOutOfBlocksInferiors, "afterPushOutOfBlocks");
sortBases(beforeRayTraceHookTypes, allBaseBeforeRayTraceSuperiors, allBaseBeforeRayTraceInferiors, "beforeRayTrace");
sortBases(overrideRayTraceHookTypes, allBaseOverrideRayTraceSuperiors, allBaseOverrideRayTraceInferiors, "overrideRayTrace");
sortBases(afterRayTraceHookTypes, allBaseAfterRayTraceSuperiors, allBaseAfterRayTraceInferiors, "afterRayTrace");
sortBases(beforeReadEntityFromNBTHookTypes, allBaseBeforeReadEntityFromNBTSuperiors, allBaseBeforeReadEntityFromNBTInferiors, "beforeReadEntityFromNBT");
sortBases(overrideReadEntityFromNBTHookTypes, allBaseOverrideReadEntityFromNBTSuperiors, allBaseOverrideReadEntityFromNBTInferiors, "overrideReadEntityFromNBT");
sortBases(afterReadEntityFromNBTHookTypes, allBaseAfterReadEntityFromNBTSuperiors, allBaseAfterReadEntityFromNBTInferiors, "afterReadEntityFromNBT");
sortBases(beforeRespawnPlayerHookTypes, allBaseBeforeRespawnPlayerSuperiors, allBaseBeforeRespawnPlayerInferiors, "beforeRespawnPlayer");
sortBases(overrideRespawnPlayerHookTypes, allBaseOverrideRespawnPlayerSuperiors, allBaseOverrideRespawnPlayerInferiors, "overrideRespawnPlayer");
sortBases(afterRespawnPlayerHookTypes, allBaseAfterRespawnPlayerSuperiors, allBaseAfterRespawnPlayerInferiors, "afterRespawnPlayer");
sortBases(beforeSetDeadHookTypes, allBaseBeforeSetDeadSuperiors, allBaseBeforeSetDeadInferiors, "beforeSetDead");
sortBases(overrideSetDeadHookTypes, allBaseOverrideSetDeadSuperiors, allBaseOverrideSetDeadInferiors, "overrideSetDead");
sortBases(afterSetDeadHookTypes, allBaseAfterSetDeadSuperiors, allBaseAfterSetDeadInferiors, "afterSetDead");
sortBases(beforeSetPlayerSPHealthHookTypes, allBaseBeforeSetPlayerSPHealthSuperiors, allBaseBeforeSetPlayerSPHealthInferiors, "beforeSetPlayerSPHealth");
sortBases(overrideSetPlayerSPHealthHookTypes, allBaseOverrideSetPlayerSPHealthSuperiors, allBaseOverrideSetPlayerSPHealthInferiors, "overrideSetPlayerSPHealth");
sortBases(afterSetPlayerSPHealthHookTypes, allBaseAfterSetPlayerSPHealthSuperiors, allBaseAfterSetPlayerSPHealthInferiors, "afterSetPlayerSPHealth");
sortBases(beforeSetPositionAndRotationHookTypes, allBaseBeforeSetPositionAndRotationSuperiors, allBaseBeforeSetPositionAndRotationInferiors, "beforeSetPositionAndRotation");
sortBases(overrideSetPositionAndRotationHookTypes, allBaseOverrideSetPositionAndRotationSuperiors, allBaseOverrideSetPositionAndRotationInferiors, "overrideSetPositionAndRotation");
sortBases(afterSetPositionAndRotationHookTypes, allBaseAfterSetPositionAndRotationSuperiors, allBaseAfterSetPositionAndRotationInferiors, "afterSetPositionAndRotation");
sortBases(beforeSetSneakingHookTypes, allBaseBeforeSetSneakingSuperiors, allBaseBeforeSetSneakingInferiors, "beforeSetSneaking");
sortBases(overrideSetSneakingHookTypes, allBaseOverrideSetSneakingSuperiors, allBaseOverrideSetSneakingInferiors, "overrideSetSneaking");
sortBases(afterSetSneakingHookTypes, allBaseAfterSetSneakingSuperiors, allBaseAfterSetSneakingInferiors, "afterSetSneaking");
sortBases(beforeSetSprintingHookTypes, allBaseBeforeSetSprintingSuperiors, allBaseBeforeSetSprintingInferiors, "beforeSetSprinting");
sortBases(overrideSetSprintingHookTypes, allBaseOverrideSetSprintingSuperiors, allBaseOverrideSetSprintingInferiors, "overrideSetSprinting");
sortBases(afterSetSprintingHookTypes, allBaseAfterSetSprintingSuperiors, allBaseAfterSetSprintingInferiors, "afterSetSprinting");
sortBases(beforeTrySleepHookTypes, allBaseBeforeTrySleepSuperiors, allBaseBeforeTrySleepInferiors, "beforeTrySleep");
sortBases(overrideTrySleepHookTypes, allBaseOverrideTrySleepSuperiors, allBaseOverrideTrySleepInferiors, "overrideTrySleep");
sortBases(afterTrySleepHookTypes, allBaseAfterTrySleepSuperiors, allBaseAfterTrySleepInferiors, "afterTrySleep");
sortBases(beforeSwingItemHookTypes, allBaseBeforeSwingItemSuperiors, allBaseBeforeSwingItemInferiors, "beforeSwingItem");
sortBases(overrideSwingItemHookTypes, allBaseOverrideSwingItemSuperiors, allBaseOverrideSwingItemInferiors, "overrideSwingItem");
sortBases(afterSwingItemHookTypes, allBaseAfterSwingItemSuperiors, allBaseAfterSwingItemInferiors, "afterSwingItem");
sortBases(beforeUpdateEntityActionStateHookTypes, allBaseBeforeUpdateEntityActionStateSuperiors, allBaseBeforeUpdateEntityActionStateInferiors, "beforeUpdateEntityActionState");
sortBases(overrideUpdateEntityActionStateHookTypes, allBaseOverrideUpdateEntityActionStateSuperiors, allBaseOverrideUpdateEntityActionStateInferiors, "overrideUpdateEntityActionState");
sortBases(afterUpdateEntityActionStateHookTypes, allBaseAfterUpdateEntityActionStateSuperiors, allBaseAfterUpdateEntityActionStateInferiors, "afterUpdateEntityActionState");
sortBases(beforeUpdateRiddenHookTypes, allBaseBeforeUpdateRiddenSuperiors, allBaseBeforeUpdateRiddenInferiors, "beforeUpdateRidden");
sortBases(overrideUpdateRiddenHookTypes, allBaseOverrideUpdateRiddenSuperiors, allBaseOverrideUpdateRiddenInferiors, "overrideUpdateRidden");
sortBases(afterUpdateRiddenHookTypes, allBaseAfterUpdateRiddenSuperiors, allBaseAfterUpdateRiddenInferiors, "afterUpdateRidden");
sortBases(beforeWakeUpPlayerHookTypes, allBaseBeforeWakeUpPlayerSuperiors, allBaseBeforeWakeUpPlayerInferiors, "beforeWakeUpPlayer");
sortBases(overrideWakeUpPlayerHookTypes, allBaseOverrideWakeUpPlayerSuperiors, allBaseOverrideWakeUpPlayerInferiors, "overrideWakeUpPlayer");
sortBases(afterWakeUpPlayerHookTypes, allBaseAfterWakeUpPlayerSuperiors, allBaseAfterWakeUpPlayerInferiors, "afterWakeUpPlayer");
sortBases(beforeWriteEntityToNBTHookTypes, allBaseBeforeWriteEntityToNBTSuperiors, allBaseBeforeWriteEntityToNBTInferiors, "beforeWriteEntityToNBT");
sortBases(overrideWriteEntityToNBTHookTypes, allBaseOverrideWriteEntityToNBTSuperiors, allBaseOverrideWriteEntityToNBTInferiors, "overrideWriteEntityToNBT");
sortBases(afterWriteEntityToNBTHookTypes, allBaseAfterWriteEntityToNBTSuperiors, allBaseAfterWriteEntityToNBTInferiors, "afterWriteEntityToNBT");
initialized = true;
}
private static List<IClientPlayerAPI> getAllInstancesList()
{
List<IClientPlayerAPI> result = new ArrayList<IClientPlayerAPI>();
Object player;
try
{
Object minecraft = net.minecraft.client.Minecraft.class.getMethod("func_71410_x").invoke(null);
player = minecraft != null ? net.minecraft.client.Minecraft.class.getField("field_71439_g").get(minecraft) : null;
}
catch(Exception obfuscatedException)
{
try
{
Object minecraft = net.minecraft.client.Minecraft.class.getMethod("getMinecraft").invoke(null);
player = minecraft != null ? net.minecraft.client.Minecraft.class.getField("thePlayer").get(minecraft) : null;
}
catch(Exception deobfuscatedException)
{
throw new RuntimeException("Unable to aquire list of current server players.", obfuscatedException);
}
}
if(player != null)
result.add((IClientPlayerAPI)player);
return result;
}
public static net.minecraft.client.entity.EntityPlayerSP[] getAllInstances()
{
List<IClientPlayerAPI> allInstances = getAllInstancesList();
return allInstances.toArray(new net.minecraft.client.entity.EntityPlayerSP[allInstances.size()]);
}
public static void beforeLocalConstructing(IClientPlayerAPI clientPlayer, net.minecraft.client.Minecraft paramMinecraft, net.minecraft.world.World paramWorld, net.minecraft.client.network.NetHandlerPlayClient paramNetHandlerPlayClient, net.minecraft.stats.StatFileWriter paramStatFileWriter)
{
ClientPlayerAPI clientPlayerAPI = clientPlayer.getClientPlayerAPI();
if(clientPlayerAPI != null)
clientPlayerAPI.load();
if(clientPlayerAPI != null)
clientPlayerAPI.beforeLocalConstructing(paramMinecraft, paramWorld, paramNetHandlerPlayClient, paramStatFileWriter);
}
public static void afterLocalConstructing(IClientPlayerAPI clientPlayer, net.minecraft.client.Minecraft paramMinecraft, net.minecraft.world.World paramWorld, net.minecraft.client.network.NetHandlerPlayClient paramNetHandlerPlayClient, net.minecraft.stats.StatFileWriter paramStatFileWriter)
{
ClientPlayerAPI clientPlayerAPI = clientPlayer.getClientPlayerAPI();
if(clientPlayerAPI != null)
clientPlayerAPI.afterLocalConstructing(paramMinecraft, paramWorld, paramNetHandlerPlayClient, paramStatFileWriter);
}
public static ClientPlayerBase getClientPlayerBase(IClientPlayerAPI clientPlayer, String baseId)
{
ClientPlayerAPI clientPlayerAPI = clientPlayer.getClientPlayerAPI();
if(clientPlayerAPI != null)
return clientPlayerAPI.getClientPlayerBase(baseId);
return null;
}
public static Set<String> getClientPlayerBaseIds(IClientPlayerAPI clientPlayer)
{
ClientPlayerAPI clientPlayerAPI = clientPlayer.getClientPlayerAPI();
Set<String> result = null;
if(clientPlayerAPI != null)
result = clientPlayerAPI.getClientPlayerBaseIds();
else
result = Collections.<String>emptySet();
return result;
}
public static Object dynamic(IClientPlayerAPI clientPlayer, String key, Object[] parameters)
{
ClientPlayerAPI clientPlayerAPI = clientPlayer.getClientPlayerAPI();
if(clientPlayerAPI != null)
return clientPlayerAPI.dynamic(key, parameters);
return null;
}
private static void sortBases(List<String> list, Map<String, String[]> allBaseSuperiors, Map<String, String[]> allBaseInferiors, String methodName)
{
new ClientPlayerBaseSorter(list, allBaseSuperiors, allBaseInferiors, methodName).Sort();
}
private final static Map<String, String[]> EmptySortMap = Collections.unmodifiableMap(new HashMap<String, String[]>());
private static void sortDynamicBases(Map<String, List<String>> lists, Map<String, Map<String, String[]>> allBaseSuperiors, Map<String, Map<String, String[]>> allBaseInferiors, String key)
{
List<String> types = lists.get(key);
if(types != null && types.size() > 1)
sortBases(types, getDynamicSorters(key, types, allBaseSuperiors), getDynamicSorters(key, types, allBaseInferiors), key);
}
private static Map<String, String[]> getDynamicSorters(String key, List<String> toSort, Map<String, Map<String, String[]>> allBaseValues)
{
Map<String, String[]> superiors = null;
Iterator<String> ids = toSort.iterator();
while(ids.hasNext())
{
String id = ids.next();
Map<String, String[]> idSuperiors = allBaseValues.get(id);
if(idSuperiors == null)
continue;
String[] keySuperiorIds = idSuperiors.get(key);
if(keySuperiorIds != null && keySuperiorIds.length > 0)
{
if(superiors == null)
superiors = new HashMap<String, String[]>(1);
superiors.put(id, keySuperiorIds);
}
}
return superiors != null ? superiors : EmptySortMap;
}
private ClientPlayerAPI(IClientPlayerAPI player)
{
this.player = player;
}
private void load()
{
Iterator<String> iterator = allBaseConstructors.keySet().iterator();
while(iterator.hasNext())
{
String id = iterator.next();
ClientPlayerBase toAttach = createClientPlayerBase(id);
toAttach.beforeBaseAttach(false);
allBaseObjects.put(id, toAttach);
baseObjectsToId.put(toAttach, id);
}
beforeLocalConstructingHooks = create(beforeLocalConstructingHookTypes);
afterLocalConstructingHooks = create(afterLocalConstructingHookTypes);
updateClientPlayerBases();
iterator = allBaseObjects.keySet().iterator();
while(iterator.hasNext())
allBaseObjects.get(iterator.next()).afterBaseAttach(false);
}
private ClientPlayerBase createClientPlayerBase(String id)
{
Constructor<?> contructor = allBaseConstructors.get(id);
ClientPlayerBase base;
try
{
if(contructor.getParameterTypes().length == 1)
base = (ClientPlayerBase)contructor.newInstance(this);
else
base = (ClientPlayerBase)contructor.newInstance(this, id);
}
catch (Exception e)
{
throw new RuntimeException("Exception while creating a ClientPlayerBase of type '" + contructor.getDeclaringClass() + "'", e);
}
return base;
}
private void updateClientPlayerBases()
{
beforeAddExhaustionHooks = create(beforeAddExhaustionHookTypes);
overrideAddExhaustionHooks = create(overrideAddExhaustionHookTypes);
afterAddExhaustionHooks = create(afterAddExhaustionHookTypes);
isAddExhaustionModded =
beforeAddExhaustionHooks != null ||
overrideAddExhaustionHooks != null ||
afterAddExhaustionHooks != null;
beforeAddMovementStatHooks = create(beforeAddMovementStatHookTypes);
overrideAddMovementStatHooks = create(overrideAddMovementStatHookTypes);
afterAddMovementStatHooks = create(afterAddMovementStatHookTypes);
isAddMovementStatModded =
beforeAddMovementStatHooks != null ||
overrideAddMovementStatHooks != null ||
afterAddMovementStatHooks != null;
beforeAddStatHooks = create(beforeAddStatHookTypes);
overrideAddStatHooks = create(overrideAddStatHookTypes);
afterAddStatHooks = create(afterAddStatHookTypes);
isAddStatModded =
beforeAddStatHooks != null ||
overrideAddStatHooks != null ||
afterAddStatHooks != null;
beforeAttackEntityFromHooks = create(beforeAttackEntityFromHookTypes);
overrideAttackEntityFromHooks = create(overrideAttackEntityFromHookTypes);
afterAttackEntityFromHooks = create(afterAttackEntityFromHookTypes);
isAttackEntityFromModded =
beforeAttackEntityFromHooks != null ||
overrideAttackEntityFromHooks != null ||
afterAttackEntityFromHooks != null;
beforeAttackTargetEntityWithCurrentItemHooks = create(beforeAttackTargetEntityWithCurrentItemHookTypes);
overrideAttackTargetEntityWithCurrentItemHooks = create(overrideAttackTargetEntityWithCurrentItemHookTypes);
afterAttackTargetEntityWithCurrentItemHooks = create(afterAttackTargetEntityWithCurrentItemHookTypes);
isAttackTargetEntityWithCurrentItemModded =
beforeAttackTargetEntityWithCurrentItemHooks != null ||
overrideAttackTargetEntityWithCurrentItemHooks != null ||
afterAttackTargetEntityWithCurrentItemHooks != null;
beforeCanBreatheUnderwaterHooks = create(beforeCanBreatheUnderwaterHookTypes);
overrideCanBreatheUnderwaterHooks = create(overrideCanBreatheUnderwaterHookTypes);
afterCanBreatheUnderwaterHooks = create(afterCanBreatheUnderwaterHookTypes);
isCanBreatheUnderwaterModded =
beforeCanBreatheUnderwaterHooks != null ||
overrideCanBreatheUnderwaterHooks != null ||
afterCanBreatheUnderwaterHooks != null;
beforeCanHarvestBlockHooks = create(beforeCanHarvestBlockHookTypes);
overrideCanHarvestBlockHooks = create(overrideCanHarvestBlockHookTypes);
afterCanHarvestBlockHooks = create(afterCanHarvestBlockHookTypes);
isCanHarvestBlockModded =
beforeCanHarvestBlockHooks != null ||
overrideCanHarvestBlockHooks != null ||
afterCanHarvestBlockHooks != null;
beforeCanPlayerEditHooks = create(beforeCanPlayerEditHookTypes);
overrideCanPlayerEditHooks = create(overrideCanPlayerEditHookTypes);
afterCanPlayerEditHooks = create(afterCanPlayerEditHookTypes);
isCanPlayerEditModded =
beforeCanPlayerEditHooks != null ||
overrideCanPlayerEditHooks != null ||
afterCanPlayerEditHooks != null;
beforeCanTriggerWalkingHooks = create(beforeCanTriggerWalkingHookTypes);
overrideCanTriggerWalkingHooks = create(overrideCanTriggerWalkingHookTypes);
afterCanTriggerWalkingHooks = create(afterCanTriggerWalkingHookTypes);
isCanTriggerWalkingModded =
beforeCanTriggerWalkingHooks != null ||
overrideCanTriggerWalkingHooks != null ||
afterCanTriggerWalkingHooks != null;
beforeCloseScreenHooks = create(beforeCloseScreenHookTypes);
overrideCloseScreenHooks = create(overrideCloseScreenHookTypes);
afterCloseScreenHooks = create(afterCloseScreenHookTypes);
isCloseScreenModded =
beforeCloseScreenHooks != null ||
overrideCloseScreenHooks != null ||
afterCloseScreenHooks != null;
beforeDamageEntityHooks = create(beforeDamageEntityHookTypes);
overrideDamageEntityHooks = create(overrideDamageEntityHookTypes);
afterDamageEntityHooks = create(afterDamageEntityHookTypes);
isDamageEntityModded =
beforeDamageEntityHooks != null ||
overrideDamageEntityHooks != null ||
afterDamageEntityHooks != null;
beforeDisplayGuiHooks = create(beforeDisplayGuiHookTypes);
overrideDisplayGuiHooks = create(overrideDisplayGuiHookTypes);
afterDisplayGuiHooks = create(afterDisplayGuiHookTypes);
isDisplayGuiModded =
beforeDisplayGuiHooks != null ||
overrideDisplayGuiHooks != null ||
afterDisplayGuiHooks != null;
beforeDisplayGUIChestHooks = create(beforeDisplayGUIChestHookTypes);
overrideDisplayGUIChestHooks = create(overrideDisplayGUIChestHookTypes);
afterDisplayGUIChestHooks = create(afterDisplayGUIChestHookTypes);
isDisplayGUIChestModded =
beforeDisplayGUIChestHooks != null ||
overrideDisplayGUIChestHooks != null ||
afterDisplayGUIChestHooks != null;
beforeDropItemHooks = create(beforeDropItemHookTypes);
overrideDropItemHooks = create(overrideDropItemHookTypes);
afterDropItemHooks = create(afterDropItemHookTypes);
isDropItemModded =
beforeDropItemHooks != null ||
overrideDropItemHooks != null ||
afterDropItemHooks != null;
beforeDropOneItemHooks = create(beforeDropOneItemHookTypes);
overrideDropOneItemHooks = create(overrideDropOneItemHookTypes);
afterDropOneItemHooks = create(afterDropOneItemHookTypes);
isDropOneItemModded =
beforeDropOneItemHooks != null ||
overrideDropOneItemHooks != null ||
afterDropOneItemHooks != null;
beforeDropPlayerItemWithRandomChoiceHooks = create(beforeDropPlayerItemWithRandomChoiceHookTypes);
overrideDropPlayerItemWithRandomChoiceHooks = create(overrideDropPlayerItemWithRandomChoiceHookTypes);
afterDropPlayerItemWithRandomChoiceHooks = create(afterDropPlayerItemWithRandomChoiceHookTypes);
isDropPlayerItemWithRandomChoiceModded =
beforeDropPlayerItemWithRandomChoiceHooks != null ||
overrideDropPlayerItemWithRandomChoiceHooks != null ||
afterDropPlayerItemWithRandomChoiceHooks != null;
beforeFallHooks = create(beforeFallHookTypes);
overrideFallHooks = create(overrideFallHookTypes);
afterFallHooks = create(afterFallHookTypes);
isFallModded =
beforeFallHooks != null ||
overrideFallHooks != null ||
afterFallHooks != null;
beforeGetAIMoveSpeedHooks = create(beforeGetAIMoveSpeedHookTypes);
overrideGetAIMoveSpeedHooks = create(overrideGetAIMoveSpeedHookTypes);
afterGetAIMoveSpeedHooks = create(afterGetAIMoveSpeedHookTypes);
isGetAIMoveSpeedModded =
beforeGetAIMoveSpeedHooks != null ||
overrideGetAIMoveSpeedHooks != null ||
afterGetAIMoveSpeedHooks != null;
beforeGetBedOrientationInDegreesHooks = create(beforeGetBedOrientationInDegreesHookTypes);
overrideGetBedOrientationInDegreesHooks = create(overrideGetBedOrientationInDegreesHookTypes);
afterGetBedOrientationInDegreesHooks = create(afterGetBedOrientationInDegreesHookTypes);
isGetBedOrientationInDegreesModded =
beforeGetBedOrientationInDegreesHooks != null ||
overrideGetBedOrientationInDegreesHooks != null ||
afterGetBedOrientationInDegreesHooks != null;
beforeGetBrightnessHooks = create(beforeGetBrightnessHookTypes);
overrideGetBrightnessHooks = create(overrideGetBrightnessHookTypes);
afterGetBrightnessHooks = create(afterGetBrightnessHookTypes);
isGetBrightnessModded =
beforeGetBrightnessHooks != null ||
overrideGetBrightnessHooks != null ||
afterGetBrightnessHooks != null;
beforeGetBrightnessForRenderHooks = create(beforeGetBrightnessForRenderHookTypes);
overrideGetBrightnessForRenderHooks = create(overrideGetBrightnessForRenderHookTypes);
afterGetBrightnessForRenderHooks = create(afterGetBrightnessForRenderHookTypes);
isGetBrightnessForRenderModded =
beforeGetBrightnessForRenderHooks != null ||
overrideGetBrightnessForRenderHooks != null ||
afterGetBrightnessForRenderHooks != null;
beforeGetBreakSpeedHooks = create(beforeGetBreakSpeedHookTypes);
overrideGetBreakSpeedHooks = create(overrideGetBreakSpeedHookTypes);
afterGetBreakSpeedHooks = create(afterGetBreakSpeedHookTypes);
isGetBreakSpeedModded =
beforeGetBreakSpeedHooks != null ||
overrideGetBreakSpeedHooks != null ||
afterGetBreakSpeedHooks != null;
beforeGetDistanceSqHooks = create(beforeGetDistanceSqHookTypes);
overrideGetDistanceSqHooks = create(overrideGetDistanceSqHookTypes);
afterGetDistanceSqHooks = create(afterGetDistanceSqHookTypes);
isGetDistanceSqModded =
beforeGetDistanceSqHooks != null ||
overrideGetDistanceSqHooks != null ||
afterGetDistanceSqHooks != null;
beforeGetDistanceSqToEntityHooks = create(beforeGetDistanceSqToEntityHookTypes);
overrideGetDistanceSqToEntityHooks = create(overrideGetDistanceSqToEntityHookTypes);
afterGetDistanceSqToEntityHooks = create(afterGetDistanceSqToEntityHookTypes);
isGetDistanceSqToEntityModded =
beforeGetDistanceSqToEntityHooks != null ||
overrideGetDistanceSqToEntityHooks != null ||
afterGetDistanceSqToEntityHooks != null;
beforeGetFovModifierHooks = create(beforeGetFovModifierHookTypes);
overrideGetFovModifierHooks = create(overrideGetFovModifierHookTypes);
afterGetFovModifierHooks = create(afterGetFovModifierHookTypes);
isGetFovModifierModded =
beforeGetFovModifierHooks != null ||
overrideGetFovModifierHooks != null ||
afterGetFovModifierHooks != null;
beforeGetHurtSoundHooks = create(beforeGetHurtSoundHookTypes);
overrideGetHurtSoundHooks = create(overrideGetHurtSoundHookTypes);
afterGetHurtSoundHooks = create(afterGetHurtSoundHookTypes);
isGetHurtSoundModded =
beforeGetHurtSoundHooks != null ||
overrideGetHurtSoundHooks != null ||
afterGetHurtSoundHooks != null;
beforeGetNameHooks = create(beforeGetNameHookTypes);
overrideGetNameHooks = create(overrideGetNameHookTypes);
afterGetNameHooks = create(afterGetNameHookTypes);
isGetNameModded =
beforeGetNameHooks != null ||
overrideGetNameHooks != null ||
afterGetNameHooks != null;
beforeGetSleepTimerHooks = create(beforeGetSleepTimerHookTypes);
overrideGetSleepTimerHooks = create(overrideGetSleepTimerHookTypes);
afterGetSleepTimerHooks = create(afterGetSleepTimerHookTypes);
isGetSleepTimerModded =
beforeGetSleepTimerHooks != null ||
overrideGetSleepTimerHooks != null ||
afterGetSleepTimerHooks != null;
beforeHandleWaterMovementHooks = create(beforeHandleWaterMovementHookTypes);
overrideHandleWaterMovementHooks = create(overrideHandleWaterMovementHookTypes);
afterHandleWaterMovementHooks = create(afterHandleWaterMovementHookTypes);
isHandleWaterMovementModded =
beforeHandleWaterMovementHooks != null ||
overrideHandleWaterMovementHooks != null ||
afterHandleWaterMovementHooks != null;
beforeHealHooks = create(beforeHealHookTypes);
overrideHealHooks = create(overrideHealHookTypes);
afterHealHooks = create(afterHealHookTypes);
isHealModded =
beforeHealHooks != null ||
overrideHealHooks != null ||
afterHealHooks != null;
beforeIsEntityInsideOpaqueBlockHooks = create(beforeIsEntityInsideOpaqueBlockHookTypes);
overrideIsEntityInsideOpaqueBlockHooks = create(overrideIsEntityInsideOpaqueBlockHookTypes);
afterIsEntityInsideOpaqueBlockHooks = create(afterIsEntityInsideOpaqueBlockHookTypes);
isIsEntityInsideOpaqueBlockModded =
beforeIsEntityInsideOpaqueBlockHooks != null ||
overrideIsEntityInsideOpaqueBlockHooks != null ||
afterIsEntityInsideOpaqueBlockHooks != null;
beforeIsInWaterHooks = create(beforeIsInWaterHookTypes);
overrideIsInWaterHooks = create(overrideIsInWaterHookTypes);
afterIsInWaterHooks = create(afterIsInWaterHookTypes);
isIsInWaterModded =
beforeIsInWaterHooks != null ||
overrideIsInWaterHooks != null ||
afterIsInWaterHooks != null;
beforeIsInsideOfMaterialHooks = create(beforeIsInsideOfMaterialHookTypes);
overrideIsInsideOfMaterialHooks = create(overrideIsInsideOfMaterialHookTypes);
afterIsInsideOfMaterialHooks = create(afterIsInsideOfMaterialHookTypes);
isIsInsideOfMaterialModded =
beforeIsInsideOfMaterialHooks != null ||
overrideIsInsideOfMaterialHooks != null ||
afterIsInsideOfMaterialHooks != null;
beforeIsOnLadderHooks = create(beforeIsOnLadderHookTypes);
overrideIsOnLadderHooks = create(overrideIsOnLadderHookTypes);
afterIsOnLadderHooks = create(afterIsOnLadderHookTypes);
isIsOnLadderModded =
beforeIsOnLadderHooks != null ||
overrideIsOnLadderHooks != null ||
afterIsOnLadderHooks != null;
beforeIsPlayerSleepingHooks = create(beforeIsPlayerSleepingHookTypes);
overrideIsPlayerSleepingHooks = create(overrideIsPlayerSleepingHookTypes);
afterIsPlayerSleepingHooks = create(afterIsPlayerSleepingHookTypes);
isIsPlayerSleepingModded =
beforeIsPlayerSleepingHooks != null ||
overrideIsPlayerSleepingHooks != null ||
afterIsPlayerSleepingHooks != null;
beforeIsSneakingHooks = create(beforeIsSneakingHookTypes);
overrideIsSneakingHooks = create(overrideIsSneakingHookTypes);
afterIsSneakingHooks = create(afterIsSneakingHookTypes);
isIsSneakingModded =
beforeIsSneakingHooks != null ||
overrideIsSneakingHooks != null ||
afterIsSneakingHooks != null;
beforeIsSprintingHooks = create(beforeIsSprintingHookTypes);
overrideIsSprintingHooks = create(overrideIsSprintingHookTypes);
afterIsSprintingHooks = create(afterIsSprintingHookTypes);
isIsSprintingModded =
beforeIsSprintingHooks != null ||
overrideIsSprintingHooks != null ||
afterIsSprintingHooks != null;
beforeJumpHooks = create(beforeJumpHookTypes);
overrideJumpHooks = create(overrideJumpHookTypes);
afterJumpHooks = create(afterJumpHookTypes);
isJumpModded =
beforeJumpHooks != null ||
overrideJumpHooks != null ||
afterJumpHooks != null;
beforeKnockBackHooks = create(beforeKnockBackHookTypes);
overrideKnockBackHooks = create(overrideKnockBackHookTypes);
afterKnockBackHooks = create(afterKnockBackHookTypes);
isKnockBackModded =
beforeKnockBackHooks != null ||
overrideKnockBackHooks != null ||
afterKnockBackHooks != null;
beforeMoveEntityHooks = create(beforeMoveEntityHookTypes);
overrideMoveEntityHooks = create(overrideMoveEntityHookTypes);
afterMoveEntityHooks = create(afterMoveEntityHookTypes);
isMoveEntityModded =
beforeMoveEntityHooks != null ||
overrideMoveEntityHooks != null ||
afterMoveEntityHooks != null;
beforeMoveEntityWithHeadingHooks = create(beforeMoveEntityWithHeadingHookTypes);
overrideMoveEntityWithHeadingHooks = create(overrideMoveEntityWithHeadingHookTypes);
afterMoveEntityWithHeadingHooks = create(afterMoveEntityWithHeadingHookTypes);
isMoveEntityWithHeadingModded =
beforeMoveEntityWithHeadingHooks != null ||
overrideMoveEntityWithHeadingHooks != null ||
afterMoveEntityWithHeadingHooks != null;
beforeMoveFlyingHooks = create(beforeMoveFlyingHookTypes);
overrideMoveFlyingHooks = create(overrideMoveFlyingHookTypes);
afterMoveFlyingHooks = create(afterMoveFlyingHookTypes);
isMoveFlyingModded =
beforeMoveFlyingHooks != null ||
overrideMoveFlyingHooks != null ||
afterMoveFlyingHooks != null;
beforeOnDeathHooks = create(beforeOnDeathHookTypes);
overrideOnDeathHooks = create(overrideOnDeathHookTypes);
afterOnDeathHooks = create(afterOnDeathHookTypes);
isOnDeathModded =
beforeOnDeathHooks != null ||
overrideOnDeathHooks != null ||
afterOnDeathHooks != null;
beforeOnLivingUpdateHooks = create(beforeOnLivingUpdateHookTypes);
overrideOnLivingUpdateHooks = create(overrideOnLivingUpdateHookTypes);
afterOnLivingUpdateHooks = create(afterOnLivingUpdateHookTypes);
isOnLivingUpdateModded =
beforeOnLivingUpdateHooks != null ||
overrideOnLivingUpdateHooks != null ||
afterOnLivingUpdateHooks != null;
beforeOnKillEntityHooks = create(beforeOnKillEntityHookTypes);
overrideOnKillEntityHooks = create(overrideOnKillEntityHookTypes);
afterOnKillEntityHooks = create(afterOnKillEntityHookTypes);
isOnKillEntityModded =
beforeOnKillEntityHooks != null ||
overrideOnKillEntityHooks != null ||
afterOnKillEntityHooks != null;
beforeOnStruckByLightningHooks = create(beforeOnStruckByLightningHookTypes);
overrideOnStruckByLightningHooks = create(overrideOnStruckByLightningHookTypes);
afterOnStruckByLightningHooks = create(afterOnStruckByLightningHookTypes);
isOnStruckByLightningModded =
beforeOnStruckByLightningHooks != null ||
overrideOnStruckByLightningHooks != null ||
afterOnStruckByLightningHooks != null;
beforeOnUpdateHooks = create(beforeOnUpdateHookTypes);
overrideOnUpdateHooks = create(overrideOnUpdateHookTypes);
afterOnUpdateHooks = create(afterOnUpdateHookTypes);
isOnUpdateModded =
beforeOnUpdateHooks != null ||
overrideOnUpdateHooks != null ||
afterOnUpdateHooks != null;
beforePlayStepSoundHooks = create(beforePlayStepSoundHookTypes);
overridePlayStepSoundHooks = create(overridePlayStepSoundHookTypes);
afterPlayStepSoundHooks = create(afterPlayStepSoundHookTypes);
isPlayStepSoundModded =
beforePlayStepSoundHooks != null ||
overridePlayStepSoundHooks != null ||
afterPlayStepSoundHooks != null;
beforePushOutOfBlocksHooks = create(beforePushOutOfBlocksHookTypes);
overridePushOutOfBlocksHooks = create(overridePushOutOfBlocksHookTypes);
afterPushOutOfBlocksHooks = create(afterPushOutOfBlocksHookTypes);
isPushOutOfBlocksModded =
beforePushOutOfBlocksHooks != null ||
overridePushOutOfBlocksHooks != null ||
afterPushOutOfBlocksHooks != null;
beforeRayTraceHooks = create(beforeRayTraceHookTypes);
overrideRayTraceHooks = create(overrideRayTraceHookTypes);
afterRayTraceHooks = create(afterRayTraceHookTypes);
isRayTraceModded =
beforeRayTraceHooks != null ||
overrideRayTraceHooks != null ||
afterRayTraceHooks != null;
beforeReadEntityFromNBTHooks = create(beforeReadEntityFromNBTHookTypes);
overrideReadEntityFromNBTHooks = create(overrideReadEntityFromNBTHookTypes);
afterReadEntityFromNBTHooks = create(afterReadEntityFromNBTHookTypes);
isReadEntityFromNBTModded =
beforeReadEntityFromNBTHooks != null ||
overrideReadEntityFromNBTHooks != null ||
afterReadEntityFromNBTHooks != null;
beforeRespawnPlayerHooks = create(beforeRespawnPlayerHookTypes);
overrideRespawnPlayerHooks = create(overrideRespawnPlayerHookTypes);
afterRespawnPlayerHooks = create(afterRespawnPlayerHookTypes);
isRespawnPlayerModded =
beforeRespawnPlayerHooks != null ||
overrideRespawnPlayerHooks != null ||
afterRespawnPlayerHooks != null;
beforeSetDeadHooks = create(beforeSetDeadHookTypes);
overrideSetDeadHooks = create(overrideSetDeadHookTypes);
afterSetDeadHooks = create(afterSetDeadHookTypes);
isSetDeadModded =
beforeSetDeadHooks != null ||
overrideSetDeadHooks != null ||
afterSetDeadHooks != null;
beforeSetPlayerSPHealthHooks = create(beforeSetPlayerSPHealthHookTypes);
overrideSetPlayerSPHealthHooks = create(overrideSetPlayerSPHealthHookTypes);
afterSetPlayerSPHealthHooks = create(afterSetPlayerSPHealthHookTypes);
isSetPlayerSPHealthModded =
beforeSetPlayerSPHealthHooks != null ||
overrideSetPlayerSPHealthHooks != null ||
afterSetPlayerSPHealthHooks != null;
beforeSetPositionAndRotationHooks = create(beforeSetPositionAndRotationHookTypes);
overrideSetPositionAndRotationHooks = create(overrideSetPositionAndRotationHookTypes);
afterSetPositionAndRotationHooks = create(afterSetPositionAndRotationHookTypes);
isSetPositionAndRotationModded =
beforeSetPositionAndRotationHooks != null ||
overrideSetPositionAndRotationHooks != null ||
afterSetPositionAndRotationHooks != null;
beforeSetSneakingHooks = create(beforeSetSneakingHookTypes);
overrideSetSneakingHooks = create(overrideSetSneakingHookTypes);
afterSetSneakingHooks = create(afterSetSneakingHookTypes);
isSetSneakingModded =
beforeSetSneakingHooks != null ||
overrideSetSneakingHooks != null ||
afterSetSneakingHooks != null;
beforeSetSprintingHooks = create(beforeSetSprintingHookTypes);
overrideSetSprintingHooks = create(overrideSetSprintingHookTypes);
afterSetSprintingHooks = create(afterSetSprintingHookTypes);
isSetSprintingModded =
beforeSetSprintingHooks != null ||
overrideSetSprintingHooks != null ||
afterSetSprintingHooks != null;
beforeTrySleepHooks = create(beforeTrySleepHookTypes);
overrideTrySleepHooks = create(overrideTrySleepHookTypes);
afterTrySleepHooks = create(afterTrySleepHookTypes);
isTrySleepModded =
beforeTrySleepHooks != null ||
overrideTrySleepHooks != null ||
afterTrySleepHooks != null;
beforeSwingItemHooks = create(beforeSwingItemHookTypes);
overrideSwingItemHooks = create(overrideSwingItemHookTypes);
afterSwingItemHooks = create(afterSwingItemHookTypes);
isSwingItemModded =
beforeSwingItemHooks != null ||
overrideSwingItemHooks != null ||
afterSwingItemHooks != null;
beforeUpdateEntityActionStateHooks = create(beforeUpdateEntityActionStateHookTypes);
overrideUpdateEntityActionStateHooks = create(overrideUpdateEntityActionStateHookTypes);
afterUpdateEntityActionStateHooks = create(afterUpdateEntityActionStateHookTypes);
isUpdateEntityActionStateModded =
beforeUpdateEntityActionStateHooks != null ||
overrideUpdateEntityActionStateHooks != null ||
afterUpdateEntityActionStateHooks != null;
beforeUpdateRiddenHooks = create(beforeUpdateRiddenHookTypes);
overrideUpdateRiddenHooks = create(overrideUpdateRiddenHookTypes);
afterUpdateRiddenHooks = create(afterUpdateRiddenHookTypes);
isUpdateRiddenModded =
beforeUpdateRiddenHooks != null ||
overrideUpdateRiddenHooks != null ||
afterUpdateRiddenHooks != null;
beforeWakeUpPlayerHooks = create(beforeWakeUpPlayerHookTypes);
overrideWakeUpPlayerHooks = create(overrideWakeUpPlayerHookTypes);
afterWakeUpPlayerHooks = create(afterWakeUpPlayerHookTypes);
isWakeUpPlayerModded =
beforeWakeUpPlayerHooks != null ||
overrideWakeUpPlayerHooks != null ||
afterWakeUpPlayerHooks != null;
beforeWriteEntityToNBTHooks = create(beforeWriteEntityToNBTHookTypes);
overrideWriteEntityToNBTHooks = create(overrideWriteEntityToNBTHookTypes);
afterWriteEntityToNBTHooks = create(afterWriteEntityToNBTHookTypes);
isWriteEntityToNBTModded =
beforeWriteEntityToNBTHooks != null ||
overrideWriteEntityToNBTHooks != null ||
afterWriteEntityToNBTHooks != null;
}
private void attachClientPlayerBase(String id)
{
ClientPlayerBase toAttach = createClientPlayerBase(id);
toAttach.beforeBaseAttach(true);
allBaseObjects.put(id, toAttach);
updateClientPlayerBases();
toAttach.afterBaseAttach(true);
}
private void detachClientPlayerBase(String id)
{
ClientPlayerBase toDetach = allBaseObjects.get(id);
toDetach.beforeBaseDetach(true);
allBaseObjects.remove(id);
toDetach.afterBaseDetach(true);
}
private ClientPlayerBase[] create(List<String> types)
{
if(types.isEmpty())
return null;
ClientPlayerBase[] result = new ClientPlayerBase[types.size()];
for(int i = 0; i < result.length; i++)
result[i] = getClientPlayerBase(types.get(i));
return result;
}
private void beforeLocalConstructing(net.minecraft.client.Minecraft paramMinecraft, net.minecraft.world.World paramWorld, net.minecraft.client.network.NetHandlerPlayClient paramNetHandlerPlayClient, net.minecraft.stats.StatFileWriter paramStatFileWriter)
{
if(beforeLocalConstructingHooks != null)
for(int i = beforeLocalConstructingHooks.length - 1; i >= 0 ; i--)
beforeLocalConstructingHooks[i].beforeLocalConstructing(paramMinecraft, paramWorld, paramNetHandlerPlayClient, paramStatFileWriter);
beforeLocalConstructingHooks = null;
}
private void afterLocalConstructing(net.minecraft.client.Minecraft paramMinecraft, net.minecraft.world.World paramWorld, net.minecraft.client.network.NetHandlerPlayClient paramNetHandlerPlayClient, net.minecraft.stats.StatFileWriter paramStatFileWriter)
{
if(afterLocalConstructingHooks != null)
for(int i = 0; i < afterLocalConstructingHooks.length; i++)
afterLocalConstructingHooks[i].afterLocalConstructing(paramMinecraft, paramWorld, paramNetHandlerPlayClient, paramStatFileWriter);
afterLocalConstructingHooks = null;
}
public ClientPlayerBase getClientPlayerBase(String id)
{
return allBaseObjects.get(id);
}
public Set<String> getClientPlayerBaseIds()
{
return unmodifiableAllBaseIds;
}
public Object dynamic(String key, Object[] parameters)
{
key = key.replace('.', '_').replace(' ', '_');
executeAll(key, parameters, beforeDynamicHookTypes, beforeDynamicHookMethods, true);
Object result = dynamicOverwritten(key, parameters, null);
executeAll(key, parameters, afterDynamicHookTypes, afterDynamicHookMethods, false);
return result;
}
public Object dynamicOverwritten(String key, Object[] parameters, ClientPlayerBase overwriter)
{
List<String> overrideIds = overrideDynamicHookTypes.get(key);
String id = null;
if(overrideIds != null)
if(overwriter != null)
{
id = baseObjectsToId.get(overwriter);
int index = overrideIds.indexOf(id);
if(index > 0)
id = overrideIds.get(index - 1);
else
id = null;
}
else if(overrideIds.size() > 0)
id = overrideIds.get(overrideIds.size() - 1);
Map<Class<?>, Map<String, Method>> methodMap;
if(id == null)
{
id = keysToVirtualIds.get(key);
if(id == null)
return null;
methodMap = virtualDynamicHookMethods;
}
else
methodMap = overrideDynamicHookMethods;
Map<String, Method> methods = methodMap.get(allBaseConstructors.get(id).getDeclaringClass());
if(methods == null)
return null;
Method method = methods.get(key);
if(method == null)
return null;
return execute(getClientPlayerBase(id), method, parameters);
}
private void executeAll(String key, Object[] parameters, Map<String, List<String>> dynamicHookTypes, Map<Class<?>, Map<String, Method>> dynamicHookMethods, boolean reverse)
{
List<String> beforeIds = dynamicHookTypes.get(key);
if(beforeIds == null)
return;
for(int i= reverse ? beforeIds.size() - 1 : 0; reverse ? i >= 0 : i < beforeIds.size(); i = i + (reverse ? -1 : 1))
{
String id = beforeIds.get(i);
ClientPlayerBase base = getClientPlayerBase(id);
Class<?> type = base.getClass();
Map<String, Method> methods = dynamicHookMethods.get(type);
if(methods == null)
continue;
Method method = methods.get(key);
if(method == null)
continue;
execute(base, method, parameters);
}
}
private Object execute(ClientPlayerBase base, Method method, Object[] parameters)
{
try
{
return method.invoke(base, parameters);
}
catch(Exception e)
{
throw new RuntimeException("Exception while invoking dynamic method", e);
}
}
public static void addExhaustion(IClientPlayerAPI target, float paramFloat)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isAddExhaustionModded)
clientPlayerAPI.addExhaustion(paramFloat);
else
target.localAddExhaustion(paramFloat);
}
private void addExhaustion(float paramFloat)
{
if(beforeAddExhaustionHooks != null)
for(int i = beforeAddExhaustionHooks.length - 1; i >= 0 ; i--)
beforeAddExhaustionHooks[i].beforeAddExhaustion(paramFloat);
if(overrideAddExhaustionHooks != null)
overrideAddExhaustionHooks[overrideAddExhaustionHooks.length - 1].addExhaustion(paramFloat);
else
player.localAddExhaustion(paramFloat);
if(afterAddExhaustionHooks != null)
for(int i = 0; i < afterAddExhaustionHooks.length; i++)
afterAddExhaustionHooks[i].afterAddExhaustion(paramFloat);
}
protected ClientPlayerBase GetOverwrittenAddExhaustion(ClientPlayerBase overWriter)
{
if (overrideAddExhaustionHooks == null)
return overWriter;
for(int i = 0; i < overrideAddExhaustionHooks.length; i++)
if(overrideAddExhaustionHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideAddExhaustionHooks[i - 1];
return overWriter;
}
private final static List<String> beforeAddExhaustionHookTypes = new LinkedList<String>();
private final static List<String> overrideAddExhaustionHookTypes = new LinkedList<String>();
private final static List<String> afterAddExhaustionHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeAddExhaustionHooks;
private ClientPlayerBase[] overrideAddExhaustionHooks;
private ClientPlayerBase[] afterAddExhaustionHooks;
public boolean isAddExhaustionModded;
private static final Map<String, String[]> allBaseBeforeAddExhaustionSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeAddExhaustionInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideAddExhaustionSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideAddExhaustionInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterAddExhaustionSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterAddExhaustionInferiors = new Hashtable<String, String[]>(0);
public static void addMovementStat(IClientPlayerAPI target, double paramDouble1, double paramDouble2, double paramDouble3)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isAddMovementStatModded)
clientPlayerAPI.addMovementStat(paramDouble1, paramDouble2, paramDouble3);
else
target.localAddMovementStat(paramDouble1, paramDouble2, paramDouble3);
}
private void addMovementStat(double paramDouble1, double paramDouble2, double paramDouble3)
{
if(beforeAddMovementStatHooks != null)
for(int i = beforeAddMovementStatHooks.length - 1; i >= 0 ; i--)
beforeAddMovementStatHooks[i].beforeAddMovementStat(paramDouble1, paramDouble2, paramDouble3);
if(overrideAddMovementStatHooks != null)
overrideAddMovementStatHooks[overrideAddMovementStatHooks.length - 1].addMovementStat(paramDouble1, paramDouble2, paramDouble3);
else
player.localAddMovementStat(paramDouble1, paramDouble2, paramDouble3);
if(afterAddMovementStatHooks != null)
for(int i = 0; i < afterAddMovementStatHooks.length; i++)
afterAddMovementStatHooks[i].afterAddMovementStat(paramDouble1, paramDouble2, paramDouble3);
}
protected ClientPlayerBase GetOverwrittenAddMovementStat(ClientPlayerBase overWriter)
{
if (overrideAddMovementStatHooks == null)
return overWriter;
for(int i = 0; i < overrideAddMovementStatHooks.length; i++)
if(overrideAddMovementStatHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideAddMovementStatHooks[i - 1];
return overWriter;
}
private final static List<String> beforeAddMovementStatHookTypes = new LinkedList<String>();
private final static List<String> overrideAddMovementStatHookTypes = new LinkedList<String>();
private final static List<String> afterAddMovementStatHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeAddMovementStatHooks;
private ClientPlayerBase[] overrideAddMovementStatHooks;
private ClientPlayerBase[] afterAddMovementStatHooks;
public boolean isAddMovementStatModded;
private static final Map<String, String[]> allBaseBeforeAddMovementStatSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeAddMovementStatInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideAddMovementStatSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideAddMovementStatInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterAddMovementStatSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterAddMovementStatInferiors = new Hashtable<String, String[]>(0);
public static void addStat(IClientPlayerAPI target, net.minecraft.stats.StatBase paramStatBase, int paramInt)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isAddStatModded)
clientPlayerAPI.addStat(paramStatBase, paramInt);
else
target.localAddStat(paramStatBase, paramInt);
}
private void addStat(net.minecraft.stats.StatBase paramStatBase, int paramInt)
{
if(beforeAddStatHooks != null)
for(int i = beforeAddStatHooks.length - 1; i >= 0 ; i--)
beforeAddStatHooks[i].beforeAddStat(paramStatBase, paramInt);
if(overrideAddStatHooks != null)
overrideAddStatHooks[overrideAddStatHooks.length - 1].addStat(paramStatBase, paramInt);
else
player.localAddStat(paramStatBase, paramInt);
if(afterAddStatHooks != null)
for(int i = 0; i < afterAddStatHooks.length; i++)
afterAddStatHooks[i].afterAddStat(paramStatBase, paramInt);
}
protected ClientPlayerBase GetOverwrittenAddStat(ClientPlayerBase overWriter)
{
if (overrideAddStatHooks == null)
return overWriter;
for(int i = 0; i < overrideAddStatHooks.length; i++)
if(overrideAddStatHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideAddStatHooks[i - 1];
return overWriter;
}
private final static List<String> beforeAddStatHookTypes = new LinkedList<String>();
private final static List<String> overrideAddStatHookTypes = new LinkedList<String>();
private final static List<String> afterAddStatHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeAddStatHooks;
private ClientPlayerBase[] overrideAddStatHooks;
private ClientPlayerBase[] afterAddStatHooks;
public boolean isAddStatModded;
private static final Map<String, String[]> allBaseBeforeAddStatSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeAddStatInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideAddStatSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideAddStatInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterAddStatSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterAddStatInferiors = new Hashtable<String, String[]>(0);
public static boolean attackEntityFrom(IClientPlayerAPI target, net.minecraft.util.DamageSource paramDamageSource, float paramFloat)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isAttackEntityFromModded)
_result = clientPlayerAPI.attackEntityFrom(paramDamageSource, paramFloat);
else
_result = target.localAttackEntityFrom(paramDamageSource, paramFloat);
return _result;
}
private boolean attackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat)
{
if(beforeAttackEntityFromHooks != null)
for(int i = beforeAttackEntityFromHooks.length - 1; i >= 0 ; i--)
beforeAttackEntityFromHooks[i].beforeAttackEntityFrom(paramDamageSource, paramFloat);
boolean _result;
if(overrideAttackEntityFromHooks != null)
_result = overrideAttackEntityFromHooks[overrideAttackEntityFromHooks.length - 1].attackEntityFrom(paramDamageSource, paramFloat);
else
_result = player.localAttackEntityFrom(paramDamageSource, paramFloat);
if(afterAttackEntityFromHooks != null)
for(int i = 0; i < afterAttackEntityFromHooks.length; i++)
afterAttackEntityFromHooks[i].afterAttackEntityFrom(paramDamageSource, paramFloat);
return _result;
}
protected ClientPlayerBase GetOverwrittenAttackEntityFrom(ClientPlayerBase overWriter)
{
if (overrideAttackEntityFromHooks == null)
return overWriter;
for(int i = 0; i < overrideAttackEntityFromHooks.length; i++)
if(overrideAttackEntityFromHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideAttackEntityFromHooks[i - 1];
return overWriter;
}
private final static List<String> beforeAttackEntityFromHookTypes = new LinkedList<String>();
private final static List<String> overrideAttackEntityFromHookTypes = new LinkedList<String>();
private final static List<String> afterAttackEntityFromHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeAttackEntityFromHooks;
private ClientPlayerBase[] overrideAttackEntityFromHooks;
private ClientPlayerBase[] afterAttackEntityFromHooks;
public boolean isAttackEntityFromModded;
private static final Map<String, String[]> allBaseBeforeAttackEntityFromSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeAttackEntityFromInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideAttackEntityFromSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideAttackEntityFromInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterAttackEntityFromSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterAttackEntityFromInferiors = new Hashtable<String, String[]>(0);
public static void attackTargetEntityWithCurrentItem(IClientPlayerAPI target, net.minecraft.entity.Entity paramEntity)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isAttackTargetEntityWithCurrentItemModded)
clientPlayerAPI.attackTargetEntityWithCurrentItem(paramEntity);
else
target.localAttackTargetEntityWithCurrentItem(paramEntity);
}
private void attackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity)
{
if(beforeAttackTargetEntityWithCurrentItemHooks != null)
for(int i = beforeAttackTargetEntityWithCurrentItemHooks.length - 1; i >= 0 ; i--)
beforeAttackTargetEntityWithCurrentItemHooks[i].beforeAttackTargetEntityWithCurrentItem(paramEntity);
if(overrideAttackTargetEntityWithCurrentItemHooks != null)
overrideAttackTargetEntityWithCurrentItemHooks[overrideAttackTargetEntityWithCurrentItemHooks.length - 1].attackTargetEntityWithCurrentItem(paramEntity);
else
player.localAttackTargetEntityWithCurrentItem(paramEntity);
if(afterAttackTargetEntityWithCurrentItemHooks != null)
for(int i = 0; i < afterAttackTargetEntityWithCurrentItemHooks.length; i++)
afterAttackTargetEntityWithCurrentItemHooks[i].afterAttackTargetEntityWithCurrentItem(paramEntity);
}
protected ClientPlayerBase GetOverwrittenAttackTargetEntityWithCurrentItem(ClientPlayerBase overWriter)
{
if (overrideAttackTargetEntityWithCurrentItemHooks == null)
return overWriter;
for(int i = 0; i < overrideAttackTargetEntityWithCurrentItemHooks.length; i++)
if(overrideAttackTargetEntityWithCurrentItemHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideAttackTargetEntityWithCurrentItemHooks[i - 1];
return overWriter;
}
private final static List<String> beforeAttackTargetEntityWithCurrentItemHookTypes = new LinkedList<String>();
private final static List<String> overrideAttackTargetEntityWithCurrentItemHookTypes = new LinkedList<String>();
private final static List<String> afterAttackTargetEntityWithCurrentItemHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeAttackTargetEntityWithCurrentItemHooks;
private ClientPlayerBase[] overrideAttackTargetEntityWithCurrentItemHooks;
private ClientPlayerBase[] afterAttackTargetEntityWithCurrentItemHooks;
public boolean isAttackTargetEntityWithCurrentItemModded;
private static final Map<String, String[]> allBaseBeforeAttackTargetEntityWithCurrentItemSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeAttackTargetEntityWithCurrentItemInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideAttackTargetEntityWithCurrentItemSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideAttackTargetEntityWithCurrentItemInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterAttackTargetEntityWithCurrentItemSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterAttackTargetEntityWithCurrentItemInferiors = new Hashtable<String, String[]>(0);
public static boolean canBreatheUnderwater(IClientPlayerAPI target)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isCanBreatheUnderwaterModded)
_result = clientPlayerAPI.canBreatheUnderwater();
else
_result = target.localCanBreatheUnderwater();
return _result;
}
private boolean canBreatheUnderwater()
{
if(beforeCanBreatheUnderwaterHooks != null)
for(int i = beforeCanBreatheUnderwaterHooks.length - 1; i >= 0 ; i--)
beforeCanBreatheUnderwaterHooks[i].beforeCanBreatheUnderwater();
boolean _result;
if(overrideCanBreatheUnderwaterHooks != null)
_result = overrideCanBreatheUnderwaterHooks[overrideCanBreatheUnderwaterHooks.length - 1].canBreatheUnderwater();
else
_result = player.localCanBreatheUnderwater();
if(afterCanBreatheUnderwaterHooks != null)
for(int i = 0; i < afterCanBreatheUnderwaterHooks.length; i++)
afterCanBreatheUnderwaterHooks[i].afterCanBreatheUnderwater();
return _result;
}
protected ClientPlayerBase GetOverwrittenCanBreatheUnderwater(ClientPlayerBase overWriter)
{
if (overrideCanBreatheUnderwaterHooks == null)
return overWriter;
for(int i = 0; i < overrideCanBreatheUnderwaterHooks.length; i++)
if(overrideCanBreatheUnderwaterHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideCanBreatheUnderwaterHooks[i - 1];
return overWriter;
}
private final static List<String> beforeCanBreatheUnderwaterHookTypes = new LinkedList<String>();
private final static List<String> overrideCanBreatheUnderwaterHookTypes = new LinkedList<String>();
private final static List<String> afterCanBreatheUnderwaterHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeCanBreatheUnderwaterHooks;
private ClientPlayerBase[] overrideCanBreatheUnderwaterHooks;
private ClientPlayerBase[] afterCanBreatheUnderwaterHooks;
public boolean isCanBreatheUnderwaterModded;
private static final Map<String, String[]> allBaseBeforeCanBreatheUnderwaterSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeCanBreatheUnderwaterInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideCanBreatheUnderwaterSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideCanBreatheUnderwaterInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterCanBreatheUnderwaterSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterCanBreatheUnderwaterInferiors = new Hashtable<String, String[]>(0);
public static boolean canHarvestBlock(IClientPlayerAPI target, net.minecraft.block.Block paramBlock)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isCanHarvestBlockModded)
_result = clientPlayerAPI.canHarvestBlock(paramBlock);
else
_result = target.localCanHarvestBlock(paramBlock);
return _result;
}
private boolean canHarvestBlock(net.minecraft.block.Block paramBlock)
{
if(beforeCanHarvestBlockHooks != null)
for(int i = beforeCanHarvestBlockHooks.length - 1; i >= 0 ; i--)
beforeCanHarvestBlockHooks[i].beforeCanHarvestBlock(paramBlock);
boolean _result;
if(overrideCanHarvestBlockHooks != null)
_result = overrideCanHarvestBlockHooks[overrideCanHarvestBlockHooks.length - 1].canHarvestBlock(paramBlock);
else
_result = player.localCanHarvestBlock(paramBlock);
if(afterCanHarvestBlockHooks != null)
for(int i = 0; i < afterCanHarvestBlockHooks.length; i++)
afterCanHarvestBlockHooks[i].afterCanHarvestBlock(paramBlock);
return _result;
}
protected ClientPlayerBase GetOverwrittenCanHarvestBlock(ClientPlayerBase overWriter)
{
if (overrideCanHarvestBlockHooks == null)
return overWriter;
for(int i = 0; i < overrideCanHarvestBlockHooks.length; i++)
if(overrideCanHarvestBlockHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideCanHarvestBlockHooks[i - 1];
return overWriter;
}
private final static List<String> beforeCanHarvestBlockHookTypes = new LinkedList<String>();
private final static List<String> overrideCanHarvestBlockHookTypes = new LinkedList<String>();
private final static List<String> afterCanHarvestBlockHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeCanHarvestBlockHooks;
private ClientPlayerBase[] overrideCanHarvestBlockHooks;
private ClientPlayerBase[] afterCanHarvestBlockHooks;
public boolean isCanHarvestBlockModded;
private static final Map<String, String[]> allBaseBeforeCanHarvestBlockSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeCanHarvestBlockInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideCanHarvestBlockSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideCanHarvestBlockInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterCanHarvestBlockSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterCanHarvestBlockInferiors = new Hashtable<String, String[]>(0);
public static boolean canPlayerEdit(IClientPlayerAPI target, net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isCanPlayerEditModded)
_result = clientPlayerAPI.canPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack);
else
_result = target.localCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack);
return _result;
}
private boolean canPlayerEdit(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack)
{
if(beforeCanPlayerEditHooks != null)
for(int i = beforeCanPlayerEditHooks.length - 1; i >= 0 ; i--)
beforeCanPlayerEditHooks[i].beforeCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack);
boolean _result;
if(overrideCanPlayerEditHooks != null)
_result = overrideCanPlayerEditHooks[overrideCanPlayerEditHooks.length - 1].canPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack);
else
_result = player.localCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack);
if(afterCanPlayerEditHooks != null)
for(int i = 0; i < afterCanPlayerEditHooks.length; i++)
afterCanPlayerEditHooks[i].afterCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack);
return _result;
}
protected ClientPlayerBase GetOverwrittenCanPlayerEdit(ClientPlayerBase overWriter)
{
if (overrideCanPlayerEditHooks == null)
return overWriter;
for(int i = 0; i < overrideCanPlayerEditHooks.length; i++)
if(overrideCanPlayerEditHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideCanPlayerEditHooks[i - 1];
return overWriter;
}
private final static List<String> beforeCanPlayerEditHookTypes = new LinkedList<String>();
private final static List<String> overrideCanPlayerEditHookTypes = new LinkedList<String>();
private final static List<String> afterCanPlayerEditHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeCanPlayerEditHooks;
private ClientPlayerBase[] overrideCanPlayerEditHooks;
private ClientPlayerBase[] afterCanPlayerEditHooks;
public boolean isCanPlayerEditModded;
private static final Map<String, String[]> allBaseBeforeCanPlayerEditSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeCanPlayerEditInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideCanPlayerEditSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideCanPlayerEditInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterCanPlayerEditSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterCanPlayerEditInferiors = new Hashtable<String, String[]>(0);
public static boolean canTriggerWalking(IClientPlayerAPI target)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isCanTriggerWalkingModded)
_result = clientPlayerAPI.canTriggerWalking();
else
_result = target.localCanTriggerWalking();
return _result;
}
private boolean canTriggerWalking()
{
if(beforeCanTriggerWalkingHooks != null)
for(int i = beforeCanTriggerWalkingHooks.length - 1; i >= 0 ; i--)
beforeCanTriggerWalkingHooks[i].beforeCanTriggerWalking();
boolean _result;
if(overrideCanTriggerWalkingHooks != null)
_result = overrideCanTriggerWalkingHooks[overrideCanTriggerWalkingHooks.length - 1].canTriggerWalking();
else
_result = player.localCanTriggerWalking();
if(afterCanTriggerWalkingHooks != null)
for(int i = 0; i < afterCanTriggerWalkingHooks.length; i++)
afterCanTriggerWalkingHooks[i].afterCanTriggerWalking();
return _result;
}
protected ClientPlayerBase GetOverwrittenCanTriggerWalking(ClientPlayerBase overWriter)
{
if (overrideCanTriggerWalkingHooks == null)
return overWriter;
for(int i = 0; i < overrideCanTriggerWalkingHooks.length; i++)
if(overrideCanTriggerWalkingHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideCanTriggerWalkingHooks[i - 1];
return overWriter;
}
private final static List<String> beforeCanTriggerWalkingHookTypes = new LinkedList<String>();
private final static List<String> overrideCanTriggerWalkingHookTypes = new LinkedList<String>();
private final static List<String> afterCanTriggerWalkingHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeCanTriggerWalkingHooks;
private ClientPlayerBase[] overrideCanTriggerWalkingHooks;
private ClientPlayerBase[] afterCanTriggerWalkingHooks;
public boolean isCanTriggerWalkingModded;
private static final Map<String, String[]> allBaseBeforeCanTriggerWalkingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeCanTriggerWalkingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideCanTriggerWalkingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideCanTriggerWalkingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterCanTriggerWalkingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterCanTriggerWalkingInferiors = new Hashtable<String, String[]>(0);
public static void closeScreen(IClientPlayerAPI target)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isCloseScreenModded)
clientPlayerAPI.closeScreen();
else
target.localCloseScreen();
}
private void closeScreen()
{
if(beforeCloseScreenHooks != null)
for(int i = beforeCloseScreenHooks.length - 1; i >= 0 ; i--)
beforeCloseScreenHooks[i].beforeCloseScreen();
if(overrideCloseScreenHooks != null)
overrideCloseScreenHooks[overrideCloseScreenHooks.length - 1].closeScreen();
else
player.localCloseScreen();
if(afterCloseScreenHooks != null)
for(int i = 0; i < afterCloseScreenHooks.length; i++)
afterCloseScreenHooks[i].afterCloseScreen();
}
protected ClientPlayerBase GetOverwrittenCloseScreen(ClientPlayerBase overWriter)
{
if (overrideCloseScreenHooks == null)
return overWriter;
for(int i = 0; i < overrideCloseScreenHooks.length; i++)
if(overrideCloseScreenHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideCloseScreenHooks[i - 1];
return overWriter;
}
private final static List<String> beforeCloseScreenHookTypes = new LinkedList<String>();
private final static List<String> overrideCloseScreenHookTypes = new LinkedList<String>();
private final static List<String> afterCloseScreenHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeCloseScreenHooks;
private ClientPlayerBase[] overrideCloseScreenHooks;
private ClientPlayerBase[] afterCloseScreenHooks;
public boolean isCloseScreenModded;
private static final Map<String, String[]> allBaseBeforeCloseScreenSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeCloseScreenInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideCloseScreenSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideCloseScreenInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterCloseScreenSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterCloseScreenInferiors = new Hashtable<String, String[]>(0);
public static void damageEntity(IClientPlayerAPI target, net.minecraft.util.DamageSource paramDamageSource, float paramFloat)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isDamageEntityModded)
clientPlayerAPI.damageEntity(paramDamageSource, paramFloat);
else
target.localDamageEntity(paramDamageSource, paramFloat);
}
private void damageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat)
{
if(beforeDamageEntityHooks != null)
for(int i = beforeDamageEntityHooks.length - 1; i >= 0 ; i--)
beforeDamageEntityHooks[i].beforeDamageEntity(paramDamageSource, paramFloat);
if(overrideDamageEntityHooks != null)
overrideDamageEntityHooks[overrideDamageEntityHooks.length - 1].damageEntity(paramDamageSource, paramFloat);
else
player.localDamageEntity(paramDamageSource, paramFloat);
if(afterDamageEntityHooks != null)
for(int i = 0; i < afterDamageEntityHooks.length; i++)
afterDamageEntityHooks[i].afterDamageEntity(paramDamageSource, paramFloat);
}
protected ClientPlayerBase GetOverwrittenDamageEntity(ClientPlayerBase overWriter)
{
if (overrideDamageEntityHooks == null)
return overWriter;
for(int i = 0; i < overrideDamageEntityHooks.length; i++)
if(overrideDamageEntityHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideDamageEntityHooks[i - 1];
return overWriter;
}
private final static List<String> beforeDamageEntityHookTypes = new LinkedList<String>();
private final static List<String> overrideDamageEntityHookTypes = new LinkedList<String>();
private final static List<String> afterDamageEntityHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeDamageEntityHooks;
private ClientPlayerBase[] overrideDamageEntityHooks;
private ClientPlayerBase[] afterDamageEntityHooks;
public boolean isDamageEntityModded;
private static final Map<String, String[]> allBaseBeforeDamageEntitySuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeDamageEntityInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideDamageEntitySuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideDamageEntityInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterDamageEntitySuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterDamageEntityInferiors = new Hashtable<String, String[]>(0);
public static void displayGui(IClientPlayerAPI target, net.minecraft.world.IInteractionObject paramIInteractionObject)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isDisplayGuiModded)
clientPlayerAPI.displayGui(paramIInteractionObject);
else
target.localDisplayGui(paramIInteractionObject);
}
private void displayGui(net.minecraft.world.IInteractionObject paramIInteractionObject)
{
if(beforeDisplayGuiHooks != null)
for(int i = beforeDisplayGuiHooks.length - 1; i >= 0 ; i--)
beforeDisplayGuiHooks[i].beforeDisplayGui(paramIInteractionObject);
if(overrideDisplayGuiHooks != null)
overrideDisplayGuiHooks[overrideDisplayGuiHooks.length - 1].displayGui(paramIInteractionObject);
else
player.localDisplayGui(paramIInteractionObject);
if(afterDisplayGuiHooks != null)
for(int i = 0; i < afterDisplayGuiHooks.length; i++)
afterDisplayGuiHooks[i].afterDisplayGui(paramIInteractionObject);
}
protected ClientPlayerBase GetOverwrittenDisplayGui(ClientPlayerBase overWriter)
{
if (overrideDisplayGuiHooks == null)
return overWriter;
for(int i = 0; i < overrideDisplayGuiHooks.length; i++)
if(overrideDisplayGuiHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideDisplayGuiHooks[i - 1];
return overWriter;
}
private final static List<String> beforeDisplayGuiHookTypes = new LinkedList<String>();
private final static List<String> overrideDisplayGuiHookTypes = new LinkedList<String>();
private final static List<String> afterDisplayGuiHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeDisplayGuiHooks;
private ClientPlayerBase[] overrideDisplayGuiHooks;
private ClientPlayerBase[] afterDisplayGuiHooks;
public boolean isDisplayGuiModded;
private static final Map<String, String[]> allBaseBeforeDisplayGuiSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeDisplayGuiInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideDisplayGuiSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideDisplayGuiInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterDisplayGuiSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterDisplayGuiInferiors = new Hashtable<String, String[]>(0);
public static void displayGUIChest(IClientPlayerAPI target, net.minecraft.inventory.IInventory paramIInventory)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isDisplayGUIChestModded)
clientPlayerAPI.displayGUIChest(paramIInventory);
else
target.localDisplayGUIChest(paramIInventory);
}
private void displayGUIChest(net.minecraft.inventory.IInventory paramIInventory)
{
if(beforeDisplayGUIChestHooks != null)
for(int i = beforeDisplayGUIChestHooks.length - 1; i >= 0 ; i--)
beforeDisplayGUIChestHooks[i].beforeDisplayGUIChest(paramIInventory);
if(overrideDisplayGUIChestHooks != null)
overrideDisplayGUIChestHooks[overrideDisplayGUIChestHooks.length - 1].displayGUIChest(paramIInventory);
else
player.localDisplayGUIChest(paramIInventory);
if(afterDisplayGUIChestHooks != null)
for(int i = 0; i < afterDisplayGUIChestHooks.length; i++)
afterDisplayGUIChestHooks[i].afterDisplayGUIChest(paramIInventory);
}
protected ClientPlayerBase GetOverwrittenDisplayGUIChest(ClientPlayerBase overWriter)
{
if (overrideDisplayGUIChestHooks == null)
return overWriter;
for(int i = 0; i < overrideDisplayGUIChestHooks.length; i++)
if(overrideDisplayGUIChestHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideDisplayGUIChestHooks[i - 1];
return overWriter;
}
private final static List<String> beforeDisplayGUIChestHookTypes = new LinkedList<String>();
private final static List<String> overrideDisplayGUIChestHookTypes = new LinkedList<String>();
private final static List<String> afterDisplayGUIChestHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeDisplayGUIChestHooks;
private ClientPlayerBase[] overrideDisplayGUIChestHooks;
private ClientPlayerBase[] afterDisplayGUIChestHooks;
public boolean isDisplayGUIChestModded;
private static final Map<String, String[]> allBaseBeforeDisplayGUIChestSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeDisplayGUIChestInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideDisplayGUIChestSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideDisplayGUIChestInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterDisplayGUIChestSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterDisplayGUIChestInferiors = new Hashtable<String, String[]>(0);
public static net.minecraft.entity.item.EntityItem dropItem(IClientPlayerAPI target, net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2)
{
net.minecraft.entity.item.EntityItem _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isDropItemModded)
_result = clientPlayerAPI.dropItem(paramItemStack, paramBoolean1, paramBoolean2);
else
_result = target.localDropItem(paramItemStack, paramBoolean1, paramBoolean2);
return _result;
}
private net.minecraft.entity.item.EntityItem dropItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2)
{
if(beforeDropItemHooks != null)
for(int i = beforeDropItemHooks.length - 1; i >= 0 ; i--)
beforeDropItemHooks[i].beforeDropItem(paramItemStack, paramBoolean1, paramBoolean2);
net.minecraft.entity.item.EntityItem _result;
if(overrideDropItemHooks != null)
_result = overrideDropItemHooks[overrideDropItemHooks.length - 1].dropItem(paramItemStack, paramBoolean1, paramBoolean2);
else
_result = player.localDropItem(paramItemStack, paramBoolean1, paramBoolean2);
if(afterDropItemHooks != null)
for(int i = 0; i < afterDropItemHooks.length; i++)
afterDropItemHooks[i].afterDropItem(paramItemStack, paramBoolean1, paramBoolean2);
return _result;
}
protected ClientPlayerBase GetOverwrittenDropItem(ClientPlayerBase overWriter)
{
if (overrideDropItemHooks == null)
return overWriter;
for(int i = 0; i < overrideDropItemHooks.length; i++)
if(overrideDropItemHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideDropItemHooks[i - 1];
return overWriter;
}
private final static List<String> beforeDropItemHookTypes = new LinkedList<String>();
private final static List<String> overrideDropItemHookTypes = new LinkedList<String>();
private final static List<String> afterDropItemHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeDropItemHooks;
private ClientPlayerBase[] overrideDropItemHooks;
private ClientPlayerBase[] afterDropItemHooks;
public boolean isDropItemModded;
private static final Map<String, String[]> allBaseBeforeDropItemSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeDropItemInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideDropItemSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideDropItemInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterDropItemSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterDropItemInferiors = new Hashtable<String, String[]>(0);
public static net.minecraft.entity.item.EntityItem dropOneItem(IClientPlayerAPI target, boolean paramBoolean)
{
net.minecraft.entity.item.EntityItem _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isDropOneItemModded)
_result = clientPlayerAPI.dropOneItem(paramBoolean);
else
_result = target.localDropOneItem(paramBoolean);
return _result;
}
private net.minecraft.entity.item.EntityItem dropOneItem(boolean paramBoolean)
{
if(beforeDropOneItemHooks != null)
for(int i = beforeDropOneItemHooks.length - 1; i >= 0 ; i--)
beforeDropOneItemHooks[i].beforeDropOneItem(paramBoolean);
net.minecraft.entity.item.EntityItem _result;
if(overrideDropOneItemHooks != null)
_result = overrideDropOneItemHooks[overrideDropOneItemHooks.length - 1].dropOneItem(paramBoolean);
else
_result = player.localDropOneItem(paramBoolean);
if(afterDropOneItemHooks != null)
for(int i = 0; i < afterDropOneItemHooks.length; i++)
afterDropOneItemHooks[i].afterDropOneItem(paramBoolean);
return _result;
}
protected ClientPlayerBase GetOverwrittenDropOneItem(ClientPlayerBase overWriter)
{
if (overrideDropOneItemHooks == null)
return overWriter;
for(int i = 0; i < overrideDropOneItemHooks.length; i++)
if(overrideDropOneItemHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideDropOneItemHooks[i - 1];
return overWriter;
}
private final static List<String> beforeDropOneItemHookTypes = new LinkedList<String>();
private final static List<String> overrideDropOneItemHookTypes = new LinkedList<String>();
private final static List<String> afterDropOneItemHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeDropOneItemHooks;
private ClientPlayerBase[] overrideDropOneItemHooks;
private ClientPlayerBase[] afterDropOneItemHooks;
public boolean isDropOneItemModded;
private static final Map<String, String[]> allBaseBeforeDropOneItemSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeDropOneItemInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideDropOneItemSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideDropOneItemInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterDropOneItemSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterDropOneItemInferiors = new Hashtable<String, String[]>(0);
public static net.minecraft.entity.item.EntityItem dropPlayerItemWithRandomChoice(IClientPlayerAPI target, net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean)
{
net.minecraft.entity.item.EntityItem _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isDropPlayerItemWithRandomChoiceModded)
_result = clientPlayerAPI.dropPlayerItemWithRandomChoice(paramItemStack, paramBoolean);
else
_result = target.localDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean);
return _result;
}
private net.minecraft.entity.item.EntityItem dropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean)
{
if(beforeDropPlayerItemWithRandomChoiceHooks != null)
for(int i = beforeDropPlayerItemWithRandomChoiceHooks.length - 1; i >= 0 ; i--)
beforeDropPlayerItemWithRandomChoiceHooks[i].beforeDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean);
net.minecraft.entity.item.EntityItem _result;
if(overrideDropPlayerItemWithRandomChoiceHooks != null)
_result = overrideDropPlayerItemWithRandomChoiceHooks[overrideDropPlayerItemWithRandomChoiceHooks.length - 1].dropPlayerItemWithRandomChoice(paramItemStack, paramBoolean);
else
_result = player.localDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean);
if(afterDropPlayerItemWithRandomChoiceHooks != null)
for(int i = 0; i < afterDropPlayerItemWithRandomChoiceHooks.length; i++)
afterDropPlayerItemWithRandomChoiceHooks[i].afterDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean);
return _result;
}
protected ClientPlayerBase GetOverwrittenDropPlayerItemWithRandomChoice(ClientPlayerBase overWriter)
{
if (overrideDropPlayerItemWithRandomChoiceHooks == null)
return overWriter;
for(int i = 0; i < overrideDropPlayerItemWithRandomChoiceHooks.length; i++)
if(overrideDropPlayerItemWithRandomChoiceHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideDropPlayerItemWithRandomChoiceHooks[i - 1];
return overWriter;
}
private final static List<String> beforeDropPlayerItemWithRandomChoiceHookTypes = new LinkedList<String>();
private final static List<String> overrideDropPlayerItemWithRandomChoiceHookTypes = new LinkedList<String>();
private final static List<String> afterDropPlayerItemWithRandomChoiceHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeDropPlayerItemWithRandomChoiceHooks;
private ClientPlayerBase[] overrideDropPlayerItemWithRandomChoiceHooks;
private ClientPlayerBase[] afterDropPlayerItemWithRandomChoiceHooks;
public boolean isDropPlayerItemWithRandomChoiceModded;
private static final Map<String, String[]> allBaseBeforeDropPlayerItemWithRandomChoiceSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeDropPlayerItemWithRandomChoiceInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideDropPlayerItemWithRandomChoiceSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideDropPlayerItemWithRandomChoiceInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterDropPlayerItemWithRandomChoiceSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterDropPlayerItemWithRandomChoiceInferiors = new Hashtable<String, String[]>(0);
public static void fall(IClientPlayerAPI target, float paramFloat1, float paramFloat2)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isFallModded)
clientPlayerAPI.fall(paramFloat1, paramFloat2);
else
target.localFall(paramFloat1, paramFloat2);
}
private void fall(float paramFloat1, float paramFloat2)
{
if(beforeFallHooks != null)
for(int i = beforeFallHooks.length - 1; i >= 0 ; i--)
beforeFallHooks[i].beforeFall(paramFloat1, paramFloat2);
if(overrideFallHooks != null)
overrideFallHooks[overrideFallHooks.length - 1].fall(paramFloat1, paramFloat2);
else
player.localFall(paramFloat1, paramFloat2);
if(afterFallHooks != null)
for(int i = 0; i < afterFallHooks.length; i++)
afterFallHooks[i].afterFall(paramFloat1, paramFloat2);
}
protected ClientPlayerBase GetOverwrittenFall(ClientPlayerBase overWriter)
{
if (overrideFallHooks == null)
return overWriter;
for(int i = 0; i < overrideFallHooks.length; i++)
if(overrideFallHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideFallHooks[i - 1];
return overWriter;
}
private final static List<String> beforeFallHookTypes = new LinkedList<String>();
private final static List<String> overrideFallHookTypes = new LinkedList<String>();
private final static List<String> afterFallHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeFallHooks;
private ClientPlayerBase[] overrideFallHooks;
private ClientPlayerBase[] afterFallHooks;
public boolean isFallModded;
private static final Map<String, String[]> allBaseBeforeFallSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeFallInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideFallSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideFallInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterFallSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterFallInferiors = new Hashtable<String, String[]>(0);
public static float getAIMoveSpeed(IClientPlayerAPI target)
{
float _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isGetAIMoveSpeedModded)
_result = clientPlayerAPI.getAIMoveSpeed();
else
_result = target.localGetAIMoveSpeed();
return _result;
}
private float getAIMoveSpeed()
{
if(beforeGetAIMoveSpeedHooks != null)
for(int i = beforeGetAIMoveSpeedHooks.length - 1; i >= 0 ; i--)
beforeGetAIMoveSpeedHooks[i].beforeGetAIMoveSpeed();
float _result;
if(overrideGetAIMoveSpeedHooks != null)
_result = overrideGetAIMoveSpeedHooks[overrideGetAIMoveSpeedHooks.length - 1].getAIMoveSpeed();
else
_result = player.localGetAIMoveSpeed();
if(afterGetAIMoveSpeedHooks != null)
for(int i = 0; i < afterGetAIMoveSpeedHooks.length; i++)
afterGetAIMoveSpeedHooks[i].afterGetAIMoveSpeed();
return _result;
}
protected ClientPlayerBase GetOverwrittenGetAIMoveSpeed(ClientPlayerBase overWriter)
{
if (overrideGetAIMoveSpeedHooks == null)
return overWriter;
for(int i = 0; i < overrideGetAIMoveSpeedHooks.length; i++)
if(overrideGetAIMoveSpeedHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideGetAIMoveSpeedHooks[i - 1];
return overWriter;
}
private final static List<String> beforeGetAIMoveSpeedHookTypes = new LinkedList<String>();
private final static List<String> overrideGetAIMoveSpeedHookTypes = new LinkedList<String>();
private final static List<String> afterGetAIMoveSpeedHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeGetAIMoveSpeedHooks;
private ClientPlayerBase[] overrideGetAIMoveSpeedHooks;
private ClientPlayerBase[] afterGetAIMoveSpeedHooks;
public boolean isGetAIMoveSpeedModded;
private static final Map<String, String[]> allBaseBeforeGetAIMoveSpeedSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeGetAIMoveSpeedInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetAIMoveSpeedSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetAIMoveSpeedInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetAIMoveSpeedSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetAIMoveSpeedInferiors = new Hashtable<String, String[]>(0);
public static float getBedOrientationInDegrees(IClientPlayerAPI target)
{
float _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isGetBedOrientationInDegreesModded)
_result = clientPlayerAPI.getBedOrientationInDegrees();
else
_result = target.localGetBedOrientationInDegrees();
return _result;
}
private float getBedOrientationInDegrees()
{
if(beforeGetBedOrientationInDegreesHooks != null)
for(int i = beforeGetBedOrientationInDegreesHooks.length - 1; i >= 0 ; i--)
beforeGetBedOrientationInDegreesHooks[i].beforeGetBedOrientationInDegrees();
float _result;
if(overrideGetBedOrientationInDegreesHooks != null)
_result = overrideGetBedOrientationInDegreesHooks[overrideGetBedOrientationInDegreesHooks.length - 1].getBedOrientationInDegrees();
else
_result = player.localGetBedOrientationInDegrees();
if(afterGetBedOrientationInDegreesHooks != null)
for(int i = 0; i < afterGetBedOrientationInDegreesHooks.length; i++)
afterGetBedOrientationInDegreesHooks[i].afterGetBedOrientationInDegrees();
return _result;
}
protected ClientPlayerBase GetOverwrittenGetBedOrientationInDegrees(ClientPlayerBase overWriter)
{
if (overrideGetBedOrientationInDegreesHooks == null)
return overWriter;
for(int i = 0; i < overrideGetBedOrientationInDegreesHooks.length; i++)
if(overrideGetBedOrientationInDegreesHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideGetBedOrientationInDegreesHooks[i - 1];
return overWriter;
}
private final static List<String> beforeGetBedOrientationInDegreesHookTypes = new LinkedList<String>();
private final static List<String> overrideGetBedOrientationInDegreesHookTypes = new LinkedList<String>();
private final static List<String> afterGetBedOrientationInDegreesHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeGetBedOrientationInDegreesHooks;
private ClientPlayerBase[] overrideGetBedOrientationInDegreesHooks;
private ClientPlayerBase[] afterGetBedOrientationInDegreesHooks;
public boolean isGetBedOrientationInDegreesModded;
private static final Map<String, String[]> allBaseBeforeGetBedOrientationInDegreesSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeGetBedOrientationInDegreesInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetBedOrientationInDegreesSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetBedOrientationInDegreesInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetBedOrientationInDegreesSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetBedOrientationInDegreesInferiors = new Hashtable<String, String[]>(0);
public static float getBrightness(IClientPlayerAPI target, float paramFloat)
{
float _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isGetBrightnessModded)
_result = clientPlayerAPI.getBrightness(paramFloat);
else
_result = target.localGetBrightness(paramFloat);
return _result;
}
private float getBrightness(float paramFloat)
{
if(beforeGetBrightnessHooks != null)
for(int i = beforeGetBrightnessHooks.length - 1; i >= 0 ; i--)
beforeGetBrightnessHooks[i].beforeGetBrightness(paramFloat);
float _result;
if(overrideGetBrightnessHooks != null)
_result = overrideGetBrightnessHooks[overrideGetBrightnessHooks.length - 1].getBrightness(paramFloat);
else
_result = player.localGetBrightness(paramFloat);
if(afterGetBrightnessHooks != null)
for(int i = 0; i < afterGetBrightnessHooks.length; i++)
afterGetBrightnessHooks[i].afterGetBrightness(paramFloat);
return _result;
}
protected ClientPlayerBase GetOverwrittenGetBrightness(ClientPlayerBase overWriter)
{
if (overrideGetBrightnessHooks == null)
return overWriter;
for(int i = 0; i < overrideGetBrightnessHooks.length; i++)
if(overrideGetBrightnessHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideGetBrightnessHooks[i - 1];
return overWriter;
}
private final static List<String> beforeGetBrightnessHookTypes = new LinkedList<String>();
private final static List<String> overrideGetBrightnessHookTypes = new LinkedList<String>();
private final static List<String> afterGetBrightnessHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeGetBrightnessHooks;
private ClientPlayerBase[] overrideGetBrightnessHooks;
private ClientPlayerBase[] afterGetBrightnessHooks;
public boolean isGetBrightnessModded;
private static final Map<String, String[]> allBaseBeforeGetBrightnessSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeGetBrightnessInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetBrightnessSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetBrightnessInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetBrightnessSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetBrightnessInferiors = new Hashtable<String, String[]>(0);
public static int getBrightnessForRender(IClientPlayerAPI target, float paramFloat)
{
int _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isGetBrightnessForRenderModded)
_result = clientPlayerAPI.getBrightnessForRender(paramFloat);
else
_result = target.localGetBrightnessForRender(paramFloat);
return _result;
}
private int getBrightnessForRender(float paramFloat)
{
if(beforeGetBrightnessForRenderHooks != null)
for(int i = beforeGetBrightnessForRenderHooks.length - 1; i >= 0 ; i--)
beforeGetBrightnessForRenderHooks[i].beforeGetBrightnessForRender(paramFloat);
int _result;
if(overrideGetBrightnessForRenderHooks != null)
_result = overrideGetBrightnessForRenderHooks[overrideGetBrightnessForRenderHooks.length - 1].getBrightnessForRender(paramFloat);
else
_result = player.localGetBrightnessForRender(paramFloat);
if(afterGetBrightnessForRenderHooks != null)
for(int i = 0; i < afterGetBrightnessForRenderHooks.length; i++)
afterGetBrightnessForRenderHooks[i].afterGetBrightnessForRender(paramFloat);
return _result;
}
protected ClientPlayerBase GetOverwrittenGetBrightnessForRender(ClientPlayerBase overWriter)
{
if (overrideGetBrightnessForRenderHooks == null)
return overWriter;
for(int i = 0; i < overrideGetBrightnessForRenderHooks.length; i++)
if(overrideGetBrightnessForRenderHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideGetBrightnessForRenderHooks[i - 1];
return overWriter;
}
private final static List<String> beforeGetBrightnessForRenderHookTypes = new LinkedList<String>();
private final static List<String> overrideGetBrightnessForRenderHookTypes = new LinkedList<String>();
private final static List<String> afterGetBrightnessForRenderHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeGetBrightnessForRenderHooks;
private ClientPlayerBase[] overrideGetBrightnessForRenderHooks;
private ClientPlayerBase[] afterGetBrightnessForRenderHooks;
public boolean isGetBrightnessForRenderModded;
private static final Map<String, String[]> allBaseBeforeGetBrightnessForRenderSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeGetBrightnessForRenderInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetBrightnessForRenderSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetBrightnessForRenderInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetBrightnessForRenderSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetBrightnessForRenderInferiors = new Hashtable<String, String[]>(0);
public static float getBreakSpeed(IClientPlayerAPI target, net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos)
{
float _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isGetBreakSpeedModded)
_result = clientPlayerAPI.getBreakSpeed(paramIBlockState, paramBlockPos);
else
_result = target.localGetBreakSpeed(paramIBlockState, paramBlockPos);
return _result;
}
private float getBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos)
{
if(beforeGetBreakSpeedHooks != null)
for(int i = beforeGetBreakSpeedHooks.length - 1; i >= 0 ; i--)
beforeGetBreakSpeedHooks[i].beforeGetBreakSpeed(paramIBlockState, paramBlockPos);
float _result;
if(overrideGetBreakSpeedHooks != null)
_result = overrideGetBreakSpeedHooks[overrideGetBreakSpeedHooks.length - 1].getBreakSpeed(paramIBlockState, paramBlockPos);
else
_result = player.localGetBreakSpeed(paramIBlockState, paramBlockPos);
if(afterGetBreakSpeedHooks != null)
for(int i = 0; i < afterGetBreakSpeedHooks.length; i++)
afterGetBreakSpeedHooks[i].afterGetBreakSpeed(paramIBlockState, paramBlockPos);
return _result;
}
protected ClientPlayerBase GetOverwrittenGetBreakSpeed(ClientPlayerBase overWriter)
{
if (overrideGetBreakSpeedHooks == null)
return overWriter;
for(int i = 0; i < overrideGetBreakSpeedHooks.length; i++)
if(overrideGetBreakSpeedHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideGetBreakSpeedHooks[i - 1];
return overWriter;
}
private final static List<String> beforeGetBreakSpeedHookTypes = new LinkedList<String>();
private final static List<String> overrideGetBreakSpeedHookTypes = new LinkedList<String>();
private final static List<String> afterGetBreakSpeedHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeGetBreakSpeedHooks;
private ClientPlayerBase[] overrideGetBreakSpeedHooks;
private ClientPlayerBase[] afterGetBreakSpeedHooks;
public boolean isGetBreakSpeedModded;
private static final Map<String, String[]> allBaseBeforeGetBreakSpeedSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeGetBreakSpeedInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetBreakSpeedSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetBreakSpeedInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetBreakSpeedSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetBreakSpeedInferiors = new Hashtable<String, String[]>(0);
public static double getDistanceSq(IClientPlayerAPI target, double paramDouble1, double paramDouble2, double paramDouble3)
{
double _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isGetDistanceSqModded)
_result = clientPlayerAPI.getDistanceSq(paramDouble1, paramDouble2, paramDouble3);
else
_result = target.localGetDistanceSq(paramDouble1, paramDouble2, paramDouble3);
return _result;
}
private double getDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3)
{
if(beforeGetDistanceSqHooks != null)
for(int i = beforeGetDistanceSqHooks.length - 1; i >= 0 ; i--)
beforeGetDistanceSqHooks[i].beforeGetDistanceSq(paramDouble1, paramDouble2, paramDouble3);
double _result;
if(overrideGetDistanceSqHooks != null)
_result = overrideGetDistanceSqHooks[overrideGetDistanceSqHooks.length - 1].getDistanceSq(paramDouble1, paramDouble2, paramDouble3);
else
_result = player.localGetDistanceSq(paramDouble1, paramDouble2, paramDouble3);
if(afterGetDistanceSqHooks != null)
for(int i = 0; i < afterGetDistanceSqHooks.length; i++)
afterGetDistanceSqHooks[i].afterGetDistanceSq(paramDouble1, paramDouble2, paramDouble3);
return _result;
}
protected ClientPlayerBase GetOverwrittenGetDistanceSq(ClientPlayerBase overWriter)
{
if (overrideGetDistanceSqHooks == null)
return overWriter;
for(int i = 0; i < overrideGetDistanceSqHooks.length; i++)
if(overrideGetDistanceSqHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideGetDistanceSqHooks[i - 1];
return overWriter;
}
private final static List<String> beforeGetDistanceSqHookTypes = new LinkedList<String>();
private final static List<String> overrideGetDistanceSqHookTypes = new LinkedList<String>();
private final static List<String> afterGetDistanceSqHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeGetDistanceSqHooks;
private ClientPlayerBase[] overrideGetDistanceSqHooks;
private ClientPlayerBase[] afterGetDistanceSqHooks;
public boolean isGetDistanceSqModded;
private static final Map<String, String[]> allBaseBeforeGetDistanceSqSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeGetDistanceSqInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetDistanceSqSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetDistanceSqInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetDistanceSqSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetDistanceSqInferiors = new Hashtable<String, String[]>(0);
public static double getDistanceSqToEntity(IClientPlayerAPI target, net.minecraft.entity.Entity paramEntity)
{
double _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isGetDistanceSqToEntityModded)
_result = clientPlayerAPI.getDistanceSqToEntity(paramEntity);
else
_result = target.localGetDistanceSqToEntity(paramEntity);
return _result;
}
private double getDistanceSqToEntity(net.minecraft.entity.Entity paramEntity)
{
if(beforeGetDistanceSqToEntityHooks != null)
for(int i = beforeGetDistanceSqToEntityHooks.length - 1; i >= 0 ; i--)
beforeGetDistanceSqToEntityHooks[i].beforeGetDistanceSqToEntity(paramEntity);
double _result;
if(overrideGetDistanceSqToEntityHooks != null)
_result = overrideGetDistanceSqToEntityHooks[overrideGetDistanceSqToEntityHooks.length - 1].getDistanceSqToEntity(paramEntity);
else
_result = player.localGetDistanceSqToEntity(paramEntity);
if(afterGetDistanceSqToEntityHooks != null)
for(int i = 0; i < afterGetDistanceSqToEntityHooks.length; i++)
afterGetDistanceSqToEntityHooks[i].afterGetDistanceSqToEntity(paramEntity);
return _result;
}
protected ClientPlayerBase GetOverwrittenGetDistanceSqToEntity(ClientPlayerBase overWriter)
{
if (overrideGetDistanceSqToEntityHooks == null)
return overWriter;
for(int i = 0; i < overrideGetDistanceSqToEntityHooks.length; i++)
if(overrideGetDistanceSqToEntityHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideGetDistanceSqToEntityHooks[i - 1];
return overWriter;
}
private final static List<String> beforeGetDistanceSqToEntityHookTypes = new LinkedList<String>();
private final static List<String> overrideGetDistanceSqToEntityHookTypes = new LinkedList<String>();
private final static List<String> afterGetDistanceSqToEntityHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeGetDistanceSqToEntityHooks;
private ClientPlayerBase[] overrideGetDistanceSqToEntityHooks;
private ClientPlayerBase[] afterGetDistanceSqToEntityHooks;
public boolean isGetDistanceSqToEntityModded;
private static final Map<String, String[]> allBaseBeforeGetDistanceSqToEntitySuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeGetDistanceSqToEntityInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetDistanceSqToEntitySuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetDistanceSqToEntityInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetDistanceSqToEntitySuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetDistanceSqToEntityInferiors = new Hashtable<String, String[]>(0);
public static float getFovModifier(IClientPlayerAPI target)
{
float _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isGetFovModifierModded)
_result = clientPlayerAPI.getFovModifier();
else
_result = target.localGetFovModifier();
return _result;
}
private float getFovModifier()
{
if(beforeGetFovModifierHooks != null)
for(int i = beforeGetFovModifierHooks.length - 1; i >= 0 ; i--)
beforeGetFovModifierHooks[i].beforeGetFovModifier();
float _result;
if(overrideGetFovModifierHooks != null)
_result = overrideGetFovModifierHooks[overrideGetFovModifierHooks.length - 1].getFovModifier();
else
_result = player.localGetFovModifier();
if(afterGetFovModifierHooks != null)
for(int i = 0; i < afterGetFovModifierHooks.length; i++)
afterGetFovModifierHooks[i].afterGetFovModifier();
return _result;
}
protected ClientPlayerBase GetOverwrittenGetFovModifier(ClientPlayerBase overWriter)
{
if (overrideGetFovModifierHooks == null)
return overWriter;
for(int i = 0; i < overrideGetFovModifierHooks.length; i++)
if(overrideGetFovModifierHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideGetFovModifierHooks[i - 1];
return overWriter;
}
private final static List<String> beforeGetFovModifierHookTypes = new LinkedList<String>();
private final static List<String> overrideGetFovModifierHookTypes = new LinkedList<String>();
private final static List<String> afterGetFovModifierHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeGetFovModifierHooks;
private ClientPlayerBase[] overrideGetFovModifierHooks;
private ClientPlayerBase[] afterGetFovModifierHooks;
public boolean isGetFovModifierModded;
private static final Map<String, String[]> allBaseBeforeGetFovModifierSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeGetFovModifierInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetFovModifierSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetFovModifierInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetFovModifierSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetFovModifierInferiors = new Hashtable<String, String[]>(0);
public static java.lang.String getHurtSound(IClientPlayerAPI target)
{
java.lang.String _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isGetHurtSoundModded)
_result = clientPlayerAPI.getHurtSound();
else
_result = target.localGetHurtSound();
return _result;
}
private java.lang.String getHurtSound()
{
if(beforeGetHurtSoundHooks != null)
for(int i = beforeGetHurtSoundHooks.length - 1; i >= 0 ; i--)
beforeGetHurtSoundHooks[i].beforeGetHurtSound();
java.lang.String _result;
if(overrideGetHurtSoundHooks != null)
_result = overrideGetHurtSoundHooks[overrideGetHurtSoundHooks.length - 1].getHurtSound();
else
_result = player.localGetHurtSound();
if(afterGetHurtSoundHooks != null)
for(int i = 0; i < afterGetHurtSoundHooks.length; i++)
afterGetHurtSoundHooks[i].afterGetHurtSound();
return _result;
}
protected ClientPlayerBase GetOverwrittenGetHurtSound(ClientPlayerBase overWriter)
{
if (overrideGetHurtSoundHooks == null)
return overWriter;
for(int i = 0; i < overrideGetHurtSoundHooks.length; i++)
if(overrideGetHurtSoundHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideGetHurtSoundHooks[i - 1];
return overWriter;
}
private final static List<String> beforeGetHurtSoundHookTypes = new LinkedList<String>();
private final static List<String> overrideGetHurtSoundHookTypes = new LinkedList<String>();
private final static List<String> afterGetHurtSoundHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeGetHurtSoundHooks;
private ClientPlayerBase[] overrideGetHurtSoundHooks;
private ClientPlayerBase[] afterGetHurtSoundHooks;
public boolean isGetHurtSoundModded;
private static final Map<String, String[]> allBaseBeforeGetHurtSoundSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeGetHurtSoundInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetHurtSoundSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetHurtSoundInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetHurtSoundSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetHurtSoundInferiors = new Hashtable<String, String[]>(0);
public static java.lang.String getName(IClientPlayerAPI target)
{
java.lang.String _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isGetNameModded)
_result = clientPlayerAPI.getName();
else
_result = target.localGetName();
return _result;
}
private java.lang.String getName()
{
if(beforeGetNameHooks != null)
for(int i = beforeGetNameHooks.length - 1; i >= 0 ; i--)
beforeGetNameHooks[i].beforeGetName();
java.lang.String _result;
if(overrideGetNameHooks != null)
_result = overrideGetNameHooks[overrideGetNameHooks.length - 1].getName();
else
_result = player.localGetName();
if(afterGetNameHooks != null)
for(int i = 0; i < afterGetNameHooks.length; i++)
afterGetNameHooks[i].afterGetName();
return _result;
}
protected ClientPlayerBase GetOverwrittenGetName(ClientPlayerBase overWriter)
{
if (overrideGetNameHooks == null)
return overWriter;
for(int i = 0; i < overrideGetNameHooks.length; i++)
if(overrideGetNameHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideGetNameHooks[i - 1];
return overWriter;
}
private final static List<String> beforeGetNameHookTypes = new LinkedList<String>();
private final static List<String> overrideGetNameHookTypes = new LinkedList<String>();
private final static List<String> afterGetNameHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeGetNameHooks;
private ClientPlayerBase[] overrideGetNameHooks;
private ClientPlayerBase[] afterGetNameHooks;
public boolean isGetNameModded;
private static final Map<String, String[]> allBaseBeforeGetNameSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeGetNameInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetNameSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetNameInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetNameSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetNameInferiors = new Hashtable<String, String[]>(0);
public static int getSleepTimer(IClientPlayerAPI target)
{
int _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isGetSleepTimerModded)
_result = clientPlayerAPI.getSleepTimer();
else
_result = target.localGetSleepTimer();
return _result;
}
private int getSleepTimer()
{
if(beforeGetSleepTimerHooks != null)
for(int i = beforeGetSleepTimerHooks.length - 1; i >= 0 ; i--)
beforeGetSleepTimerHooks[i].beforeGetSleepTimer();
int _result;
if(overrideGetSleepTimerHooks != null)
_result = overrideGetSleepTimerHooks[overrideGetSleepTimerHooks.length - 1].getSleepTimer();
else
_result = player.localGetSleepTimer();
if(afterGetSleepTimerHooks != null)
for(int i = 0; i < afterGetSleepTimerHooks.length; i++)
afterGetSleepTimerHooks[i].afterGetSleepTimer();
return _result;
}
protected ClientPlayerBase GetOverwrittenGetSleepTimer(ClientPlayerBase overWriter)
{
if (overrideGetSleepTimerHooks == null)
return overWriter;
for(int i = 0; i < overrideGetSleepTimerHooks.length; i++)
if(overrideGetSleepTimerHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideGetSleepTimerHooks[i - 1];
return overWriter;
}
private final static List<String> beforeGetSleepTimerHookTypes = new LinkedList<String>();
private final static List<String> overrideGetSleepTimerHookTypes = new LinkedList<String>();
private final static List<String> afterGetSleepTimerHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeGetSleepTimerHooks;
private ClientPlayerBase[] overrideGetSleepTimerHooks;
private ClientPlayerBase[] afterGetSleepTimerHooks;
public boolean isGetSleepTimerModded;
private static final Map<String, String[]> allBaseBeforeGetSleepTimerSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeGetSleepTimerInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetSleepTimerSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideGetSleepTimerInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetSleepTimerSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterGetSleepTimerInferiors = new Hashtable<String, String[]>(0);
public static boolean handleWaterMovement(IClientPlayerAPI target)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isHandleWaterMovementModded)
_result = clientPlayerAPI.handleWaterMovement();
else
_result = target.localHandleWaterMovement();
return _result;
}
private boolean handleWaterMovement()
{
if(beforeHandleWaterMovementHooks != null)
for(int i = beforeHandleWaterMovementHooks.length - 1; i >= 0 ; i--)
beforeHandleWaterMovementHooks[i].beforeHandleWaterMovement();
boolean _result;
if(overrideHandleWaterMovementHooks != null)
_result = overrideHandleWaterMovementHooks[overrideHandleWaterMovementHooks.length - 1].handleWaterMovement();
else
_result = player.localHandleWaterMovement();
if(afterHandleWaterMovementHooks != null)
for(int i = 0; i < afterHandleWaterMovementHooks.length; i++)
afterHandleWaterMovementHooks[i].afterHandleWaterMovement();
return _result;
}
protected ClientPlayerBase GetOverwrittenHandleWaterMovement(ClientPlayerBase overWriter)
{
if (overrideHandleWaterMovementHooks == null)
return overWriter;
for(int i = 0; i < overrideHandleWaterMovementHooks.length; i++)
if(overrideHandleWaterMovementHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideHandleWaterMovementHooks[i - 1];
return overWriter;
}
private final static List<String> beforeHandleWaterMovementHookTypes = new LinkedList<String>();
private final static List<String> overrideHandleWaterMovementHookTypes = new LinkedList<String>();
private final static List<String> afterHandleWaterMovementHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeHandleWaterMovementHooks;
private ClientPlayerBase[] overrideHandleWaterMovementHooks;
private ClientPlayerBase[] afterHandleWaterMovementHooks;
public boolean isHandleWaterMovementModded;
private static final Map<String, String[]> allBaseBeforeHandleWaterMovementSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeHandleWaterMovementInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideHandleWaterMovementSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideHandleWaterMovementInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterHandleWaterMovementSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterHandleWaterMovementInferiors = new Hashtable<String, String[]>(0);
public static void heal(IClientPlayerAPI target, float paramFloat)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isHealModded)
clientPlayerAPI.heal(paramFloat);
else
target.localHeal(paramFloat);
}
private void heal(float paramFloat)
{
if(beforeHealHooks != null)
for(int i = beforeHealHooks.length - 1; i >= 0 ; i--)
beforeHealHooks[i].beforeHeal(paramFloat);
if(overrideHealHooks != null)
overrideHealHooks[overrideHealHooks.length - 1].heal(paramFloat);
else
player.localHeal(paramFloat);
if(afterHealHooks != null)
for(int i = 0; i < afterHealHooks.length; i++)
afterHealHooks[i].afterHeal(paramFloat);
}
protected ClientPlayerBase GetOverwrittenHeal(ClientPlayerBase overWriter)
{
if (overrideHealHooks == null)
return overWriter;
for(int i = 0; i < overrideHealHooks.length; i++)
if(overrideHealHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideHealHooks[i - 1];
return overWriter;
}
private final static List<String> beforeHealHookTypes = new LinkedList<String>();
private final static List<String> overrideHealHookTypes = new LinkedList<String>();
private final static List<String> afterHealHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeHealHooks;
private ClientPlayerBase[] overrideHealHooks;
private ClientPlayerBase[] afterHealHooks;
public boolean isHealModded;
private static final Map<String, String[]> allBaseBeforeHealSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeHealInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideHealSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideHealInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterHealSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterHealInferiors = new Hashtable<String, String[]>(0);
public static boolean isEntityInsideOpaqueBlock(IClientPlayerAPI target)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isIsEntityInsideOpaqueBlockModded)
_result = clientPlayerAPI.isEntityInsideOpaqueBlock();
else
_result = target.localIsEntityInsideOpaqueBlock();
return _result;
}
private boolean isEntityInsideOpaqueBlock()
{
if(beforeIsEntityInsideOpaqueBlockHooks != null)
for(int i = beforeIsEntityInsideOpaqueBlockHooks.length - 1; i >= 0 ; i--)
beforeIsEntityInsideOpaqueBlockHooks[i].beforeIsEntityInsideOpaqueBlock();
boolean _result;
if(overrideIsEntityInsideOpaqueBlockHooks != null)
_result = overrideIsEntityInsideOpaqueBlockHooks[overrideIsEntityInsideOpaqueBlockHooks.length - 1].isEntityInsideOpaqueBlock();
else
_result = player.localIsEntityInsideOpaqueBlock();
if(afterIsEntityInsideOpaqueBlockHooks != null)
for(int i = 0; i < afterIsEntityInsideOpaqueBlockHooks.length; i++)
afterIsEntityInsideOpaqueBlockHooks[i].afterIsEntityInsideOpaqueBlock();
return _result;
}
protected ClientPlayerBase GetOverwrittenIsEntityInsideOpaqueBlock(ClientPlayerBase overWriter)
{
if (overrideIsEntityInsideOpaqueBlockHooks == null)
return overWriter;
for(int i = 0; i < overrideIsEntityInsideOpaqueBlockHooks.length; i++)
if(overrideIsEntityInsideOpaqueBlockHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideIsEntityInsideOpaqueBlockHooks[i - 1];
return overWriter;
}
private final static List<String> beforeIsEntityInsideOpaqueBlockHookTypes = new LinkedList<String>();
private final static List<String> overrideIsEntityInsideOpaqueBlockHookTypes = new LinkedList<String>();
private final static List<String> afterIsEntityInsideOpaqueBlockHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeIsEntityInsideOpaqueBlockHooks;
private ClientPlayerBase[] overrideIsEntityInsideOpaqueBlockHooks;
private ClientPlayerBase[] afterIsEntityInsideOpaqueBlockHooks;
public boolean isIsEntityInsideOpaqueBlockModded;
private static final Map<String, String[]> allBaseBeforeIsEntityInsideOpaqueBlockSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeIsEntityInsideOpaqueBlockInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsEntityInsideOpaqueBlockSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsEntityInsideOpaqueBlockInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsEntityInsideOpaqueBlockSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsEntityInsideOpaqueBlockInferiors = new Hashtable<String, String[]>(0);
public static boolean isInWater(IClientPlayerAPI target)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isIsInWaterModded)
_result = clientPlayerAPI.isInWater();
else
_result = target.localIsInWater();
return _result;
}
private boolean isInWater()
{
if(beforeIsInWaterHooks != null)
for(int i = beforeIsInWaterHooks.length - 1; i >= 0 ; i--)
beforeIsInWaterHooks[i].beforeIsInWater();
boolean _result;
if(overrideIsInWaterHooks != null)
_result = overrideIsInWaterHooks[overrideIsInWaterHooks.length - 1].isInWater();
else
_result = player.localIsInWater();
if(afterIsInWaterHooks != null)
for(int i = 0; i < afterIsInWaterHooks.length; i++)
afterIsInWaterHooks[i].afterIsInWater();
return _result;
}
protected ClientPlayerBase GetOverwrittenIsInWater(ClientPlayerBase overWriter)
{
if (overrideIsInWaterHooks == null)
return overWriter;
for(int i = 0; i < overrideIsInWaterHooks.length; i++)
if(overrideIsInWaterHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideIsInWaterHooks[i - 1];
return overWriter;
}
private final static List<String> beforeIsInWaterHookTypes = new LinkedList<String>();
private final static List<String> overrideIsInWaterHookTypes = new LinkedList<String>();
private final static List<String> afterIsInWaterHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeIsInWaterHooks;
private ClientPlayerBase[] overrideIsInWaterHooks;
private ClientPlayerBase[] afterIsInWaterHooks;
public boolean isIsInWaterModded;
private static final Map<String, String[]> allBaseBeforeIsInWaterSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeIsInWaterInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsInWaterSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsInWaterInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsInWaterSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsInWaterInferiors = new Hashtable<String, String[]>(0);
public static boolean isInsideOfMaterial(IClientPlayerAPI target, net.minecraft.block.material.Material paramMaterial)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isIsInsideOfMaterialModded)
_result = clientPlayerAPI.isInsideOfMaterial(paramMaterial);
else
_result = target.localIsInsideOfMaterial(paramMaterial);
return _result;
}
private boolean isInsideOfMaterial(net.minecraft.block.material.Material paramMaterial)
{
if(beforeIsInsideOfMaterialHooks != null)
for(int i = beforeIsInsideOfMaterialHooks.length - 1; i >= 0 ; i--)
beforeIsInsideOfMaterialHooks[i].beforeIsInsideOfMaterial(paramMaterial);
boolean _result;
if(overrideIsInsideOfMaterialHooks != null)
_result = overrideIsInsideOfMaterialHooks[overrideIsInsideOfMaterialHooks.length - 1].isInsideOfMaterial(paramMaterial);
else
_result = player.localIsInsideOfMaterial(paramMaterial);
if(afterIsInsideOfMaterialHooks != null)
for(int i = 0; i < afterIsInsideOfMaterialHooks.length; i++)
afterIsInsideOfMaterialHooks[i].afterIsInsideOfMaterial(paramMaterial);
return _result;
}
protected ClientPlayerBase GetOverwrittenIsInsideOfMaterial(ClientPlayerBase overWriter)
{
if (overrideIsInsideOfMaterialHooks == null)
return overWriter;
for(int i = 0; i < overrideIsInsideOfMaterialHooks.length; i++)
if(overrideIsInsideOfMaterialHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideIsInsideOfMaterialHooks[i - 1];
return overWriter;
}
private final static List<String> beforeIsInsideOfMaterialHookTypes = new LinkedList<String>();
private final static List<String> overrideIsInsideOfMaterialHookTypes = new LinkedList<String>();
private final static List<String> afterIsInsideOfMaterialHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeIsInsideOfMaterialHooks;
private ClientPlayerBase[] overrideIsInsideOfMaterialHooks;
private ClientPlayerBase[] afterIsInsideOfMaterialHooks;
public boolean isIsInsideOfMaterialModded;
private static final Map<String, String[]> allBaseBeforeIsInsideOfMaterialSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeIsInsideOfMaterialInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsInsideOfMaterialSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsInsideOfMaterialInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsInsideOfMaterialSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsInsideOfMaterialInferiors = new Hashtable<String, String[]>(0);
public static boolean isOnLadder(IClientPlayerAPI target)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isIsOnLadderModded)
_result = clientPlayerAPI.isOnLadder();
else
_result = target.localIsOnLadder();
return _result;
}
private boolean isOnLadder()
{
if(beforeIsOnLadderHooks != null)
for(int i = beforeIsOnLadderHooks.length - 1; i >= 0 ; i--)
beforeIsOnLadderHooks[i].beforeIsOnLadder();
boolean _result;
if(overrideIsOnLadderHooks != null)
_result = overrideIsOnLadderHooks[overrideIsOnLadderHooks.length - 1].isOnLadder();
else
_result = player.localIsOnLadder();
if(afterIsOnLadderHooks != null)
for(int i = 0; i < afterIsOnLadderHooks.length; i++)
afterIsOnLadderHooks[i].afterIsOnLadder();
return _result;
}
protected ClientPlayerBase GetOverwrittenIsOnLadder(ClientPlayerBase overWriter)
{
if (overrideIsOnLadderHooks == null)
return overWriter;
for(int i = 0; i < overrideIsOnLadderHooks.length; i++)
if(overrideIsOnLadderHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideIsOnLadderHooks[i - 1];
return overWriter;
}
private final static List<String> beforeIsOnLadderHookTypes = new LinkedList<String>();
private final static List<String> overrideIsOnLadderHookTypes = new LinkedList<String>();
private final static List<String> afterIsOnLadderHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeIsOnLadderHooks;
private ClientPlayerBase[] overrideIsOnLadderHooks;
private ClientPlayerBase[] afterIsOnLadderHooks;
public boolean isIsOnLadderModded;
private static final Map<String, String[]> allBaseBeforeIsOnLadderSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeIsOnLadderInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsOnLadderSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsOnLadderInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsOnLadderSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsOnLadderInferiors = new Hashtable<String, String[]>(0);
public static boolean isPlayerSleeping(IClientPlayerAPI target)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isIsPlayerSleepingModded)
_result = clientPlayerAPI.isPlayerSleeping();
else
_result = target.localIsPlayerSleeping();
return _result;
}
private boolean isPlayerSleeping()
{
if(beforeIsPlayerSleepingHooks != null)
for(int i = beforeIsPlayerSleepingHooks.length - 1; i >= 0 ; i--)
beforeIsPlayerSleepingHooks[i].beforeIsPlayerSleeping();
boolean _result;
if(overrideIsPlayerSleepingHooks != null)
_result = overrideIsPlayerSleepingHooks[overrideIsPlayerSleepingHooks.length - 1].isPlayerSleeping();
else
_result = player.localIsPlayerSleeping();
if(afterIsPlayerSleepingHooks != null)
for(int i = 0; i < afterIsPlayerSleepingHooks.length; i++)
afterIsPlayerSleepingHooks[i].afterIsPlayerSleeping();
return _result;
}
protected ClientPlayerBase GetOverwrittenIsPlayerSleeping(ClientPlayerBase overWriter)
{
if (overrideIsPlayerSleepingHooks == null)
return overWriter;
for(int i = 0; i < overrideIsPlayerSleepingHooks.length; i++)
if(overrideIsPlayerSleepingHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideIsPlayerSleepingHooks[i - 1];
return overWriter;
}
private final static List<String> beforeIsPlayerSleepingHookTypes = new LinkedList<String>();
private final static List<String> overrideIsPlayerSleepingHookTypes = new LinkedList<String>();
private final static List<String> afterIsPlayerSleepingHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeIsPlayerSleepingHooks;
private ClientPlayerBase[] overrideIsPlayerSleepingHooks;
private ClientPlayerBase[] afterIsPlayerSleepingHooks;
public boolean isIsPlayerSleepingModded;
private static final Map<String, String[]> allBaseBeforeIsPlayerSleepingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeIsPlayerSleepingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsPlayerSleepingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsPlayerSleepingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsPlayerSleepingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsPlayerSleepingInferiors = new Hashtable<String, String[]>(0);
public static boolean isSneaking(IClientPlayerAPI target)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isIsSneakingModded)
_result = clientPlayerAPI.isSneaking();
else
_result = target.localIsSneaking();
return _result;
}
private boolean isSneaking()
{
if(beforeIsSneakingHooks != null)
for(int i = beforeIsSneakingHooks.length - 1; i >= 0 ; i--)
beforeIsSneakingHooks[i].beforeIsSneaking();
boolean _result;
if(overrideIsSneakingHooks != null)
_result = overrideIsSneakingHooks[overrideIsSneakingHooks.length - 1].isSneaking();
else
_result = player.localIsSneaking();
if(afterIsSneakingHooks != null)
for(int i = 0; i < afterIsSneakingHooks.length; i++)
afterIsSneakingHooks[i].afterIsSneaking();
return _result;
}
protected ClientPlayerBase GetOverwrittenIsSneaking(ClientPlayerBase overWriter)
{
if (overrideIsSneakingHooks == null)
return overWriter;
for(int i = 0; i < overrideIsSneakingHooks.length; i++)
if(overrideIsSneakingHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideIsSneakingHooks[i - 1];
return overWriter;
}
private final static List<String> beforeIsSneakingHookTypes = new LinkedList<String>();
private final static List<String> overrideIsSneakingHookTypes = new LinkedList<String>();
private final static List<String> afterIsSneakingHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeIsSneakingHooks;
private ClientPlayerBase[] overrideIsSneakingHooks;
private ClientPlayerBase[] afterIsSneakingHooks;
public boolean isIsSneakingModded;
private static final Map<String, String[]> allBaseBeforeIsSneakingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeIsSneakingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsSneakingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsSneakingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsSneakingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsSneakingInferiors = new Hashtable<String, String[]>(0);
public static boolean isSprinting(IClientPlayerAPI target)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isIsSprintingModded)
_result = clientPlayerAPI.isSprinting();
else
_result = target.localIsSprinting();
return _result;
}
private boolean isSprinting()
{
if(beforeIsSprintingHooks != null)
for(int i = beforeIsSprintingHooks.length - 1; i >= 0 ; i--)
beforeIsSprintingHooks[i].beforeIsSprinting();
boolean _result;
if(overrideIsSprintingHooks != null)
_result = overrideIsSprintingHooks[overrideIsSprintingHooks.length - 1].isSprinting();
else
_result = player.localIsSprinting();
if(afterIsSprintingHooks != null)
for(int i = 0; i < afterIsSprintingHooks.length; i++)
afterIsSprintingHooks[i].afterIsSprinting();
return _result;
}
protected ClientPlayerBase GetOverwrittenIsSprinting(ClientPlayerBase overWriter)
{
if (overrideIsSprintingHooks == null)
return overWriter;
for(int i = 0; i < overrideIsSprintingHooks.length; i++)
if(overrideIsSprintingHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideIsSprintingHooks[i - 1];
return overWriter;
}
private final static List<String> beforeIsSprintingHookTypes = new LinkedList<String>();
private final static List<String> overrideIsSprintingHookTypes = new LinkedList<String>();
private final static List<String> afterIsSprintingHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeIsSprintingHooks;
private ClientPlayerBase[] overrideIsSprintingHooks;
private ClientPlayerBase[] afterIsSprintingHooks;
public boolean isIsSprintingModded;
private static final Map<String, String[]> allBaseBeforeIsSprintingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeIsSprintingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsSprintingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideIsSprintingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsSprintingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterIsSprintingInferiors = new Hashtable<String, String[]>(0);
public static void jump(IClientPlayerAPI target)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isJumpModded)
clientPlayerAPI.jump();
else
target.localJump();
}
private void jump()
{
if(beforeJumpHooks != null)
for(int i = beforeJumpHooks.length - 1; i >= 0 ; i--)
beforeJumpHooks[i].beforeJump();
if(overrideJumpHooks != null)
overrideJumpHooks[overrideJumpHooks.length - 1].jump();
else
player.localJump();
if(afterJumpHooks != null)
for(int i = 0; i < afterJumpHooks.length; i++)
afterJumpHooks[i].afterJump();
}
protected ClientPlayerBase GetOverwrittenJump(ClientPlayerBase overWriter)
{
if (overrideJumpHooks == null)
return overWriter;
for(int i = 0; i < overrideJumpHooks.length; i++)
if(overrideJumpHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideJumpHooks[i - 1];
return overWriter;
}
private final static List<String> beforeJumpHookTypes = new LinkedList<String>();
private final static List<String> overrideJumpHookTypes = new LinkedList<String>();
private final static List<String> afterJumpHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeJumpHooks;
private ClientPlayerBase[] overrideJumpHooks;
private ClientPlayerBase[] afterJumpHooks;
public boolean isJumpModded;
private static final Map<String, String[]> allBaseBeforeJumpSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeJumpInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideJumpSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideJumpInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterJumpSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterJumpInferiors = new Hashtable<String, String[]>(0);
public static void knockBack(IClientPlayerAPI target, net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isKnockBackModded)
clientPlayerAPI.knockBack(paramEntity, paramFloat, paramDouble1, paramDouble2);
else
target.localKnockBack(paramEntity, paramFloat, paramDouble1, paramDouble2);
}
private void knockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2)
{
if(beforeKnockBackHooks != null)
for(int i = beforeKnockBackHooks.length - 1; i >= 0 ; i--)
beforeKnockBackHooks[i].beforeKnockBack(paramEntity, paramFloat, paramDouble1, paramDouble2);
if(overrideKnockBackHooks != null)
overrideKnockBackHooks[overrideKnockBackHooks.length - 1].knockBack(paramEntity, paramFloat, paramDouble1, paramDouble2);
else
player.localKnockBack(paramEntity, paramFloat, paramDouble1, paramDouble2);
if(afterKnockBackHooks != null)
for(int i = 0; i < afterKnockBackHooks.length; i++)
afterKnockBackHooks[i].afterKnockBack(paramEntity, paramFloat, paramDouble1, paramDouble2);
}
protected ClientPlayerBase GetOverwrittenKnockBack(ClientPlayerBase overWriter)
{
if (overrideKnockBackHooks == null)
return overWriter;
for(int i = 0; i < overrideKnockBackHooks.length; i++)
if(overrideKnockBackHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideKnockBackHooks[i - 1];
return overWriter;
}
private final static List<String> beforeKnockBackHookTypes = new LinkedList<String>();
private final static List<String> overrideKnockBackHookTypes = new LinkedList<String>();
private final static List<String> afterKnockBackHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeKnockBackHooks;
private ClientPlayerBase[] overrideKnockBackHooks;
private ClientPlayerBase[] afterKnockBackHooks;
public boolean isKnockBackModded;
private static final Map<String, String[]> allBaseBeforeKnockBackSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeKnockBackInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideKnockBackSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideKnockBackInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterKnockBackSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterKnockBackInferiors = new Hashtable<String, String[]>(0);
public static void moveEntity(IClientPlayerAPI target, double paramDouble1, double paramDouble2, double paramDouble3)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isMoveEntityModded)
clientPlayerAPI.moveEntity(paramDouble1, paramDouble2, paramDouble3);
else
target.localMoveEntity(paramDouble1, paramDouble2, paramDouble3);
}
private void moveEntity(double paramDouble1, double paramDouble2, double paramDouble3)
{
if(beforeMoveEntityHooks != null)
for(int i = beforeMoveEntityHooks.length - 1; i >= 0 ; i--)
beforeMoveEntityHooks[i].beforeMoveEntity(paramDouble1, paramDouble2, paramDouble3);
if(overrideMoveEntityHooks != null)
overrideMoveEntityHooks[overrideMoveEntityHooks.length - 1].moveEntity(paramDouble1, paramDouble2, paramDouble3);
else
player.localMoveEntity(paramDouble1, paramDouble2, paramDouble3);
if(afterMoveEntityHooks != null)
for(int i = 0; i < afterMoveEntityHooks.length; i++)
afterMoveEntityHooks[i].afterMoveEntity(paramDouble1, paramDouble2, paramDouble3);
}
protected ClientPlayerBase GetOverwrittenMoveEntity(ClientPlayerBase overWriter)
{
if (overrideMoveEntityHooks == null)
return overWriter;
for(int i = 0; i < overrideMoveEntityHooks.length; i++)
if(overrideMoveEntityHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideMoveEntityHooks[i - 1];
return overWriter;
}
private final static List<String> beforeMoveEntityHookTypes = new LinkedList<String>();
private final static List<String> overrideMoveEntityHookTypes = new LinkedList<String>();
private final static List<String> afterMoveEntityHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeMoveEntityHooks;
private ClientPlayerBase[] overrideMoveEntityHooks;
private ClientPlayerBase[] afterMoveEntityHooks;
public boolean isMoveEntityModded;
private static final Map<String, String[]> allBaseBeforeMoveEntitySuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeMoveEntityInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideMoveEntitySuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideMoveEntityInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterMoveEntitySuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterMoveEntityInferiors = new Hashtable<String, String[]>(0);
public static void moveEntityWithHeading(IClientPlayerAPI target, float paramFloat1, float paramFloat2)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isMoveEntityWithHeadingModded)
clientPlayerAPI.moveEntityWithHeading(paramFloat1, paramFloat2);
else
target.localMoveEntityWithHeading(paramFloat1, paramFloat2);
}
private void moveEntityWithHeading(float paramFloat1, float paramFloat2)
{
if(beforeMoveEntityWithHeadingHooks != null)
for(int i = beforeMoveEntityWithHeadingHooks.length - 1; i >= 0 ; i--)
beforeMoveEntityWithHeadingHooks[i].beforeMoveEntityWithHeading(paramFloat1, paramFloat2);
if(overrideMoveEntityWithHeadingHooks != null)
overrideMoveEntityWithHeadingHooks[overrideMoveEntityWithHeadingHooks.length - 1].moveEntityWithHeading(paramFloat1, paramFloat2);
else
player.localMoveEntityWithHeading(paramFloat1, paramFloat2);
if(afterMoveEntityWithHeadingHooks != null)
for(int i = 0; i < afterMoveEntityWithHeadingHooks.length; i++)
afterMoveEntityWithHeadingHooks[i].afterMoveEntityWithHeading(paramFloat1, paramFloat2);
}
protected ClientPlayerBase GetOverwrittenMoveEntityWithHeading(ClientPlayerBase overWriter)
{
if (overrideMoveEntityWithHeadingHooks == null)
return overWriter;
for(int i = 0; i < overrideMoveEntityWithHeadingHooks.length; i++)
if(overrideMoveEntityWithHeadingHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideMoveEntityWithHeadingHooks[i - 1];
return overWriter;
}
private final static List<String> beforeMoveEntityWithHeadingHookTypes = new LinkedList<String>();
private final static List<String> overrideMoveEntityWithHeadingHookTypes = new LinkedList<String>();
private final static List<String> afterMoveEntityWithHeadingHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeMoveEntityWithHeadingHooks;
private ClientPlayerBase[] overrideMoveEntityWithHeadingHooks;
private ClientPlayerBase[] afterMoveEntityWithHeadingHooks;
public boolean isMoveEntityWithHeadingModded;
private static final Map<String, String[]> allBaseBeforeMoveEntityWithHeadingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeMoveEntityWithHeadingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideMoveEntityWithHeadingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideMoveEntityWithHeadingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterMoveEntityWithHeadingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterMoveEntityWithHeadingInferiors = new Hashtable<String, String[]>(0);
public static void moveFlying(IClientPlayerAPI target, float paramFloat1, float paramFloat2, float paramFloat3)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isMoveFlyingModded)
clientPlayerAPI.moveFlying(paramFloat1, paramFloat2, paramFloat3);
else
target.localMoveFlying(paramFloat1, paramFloat2, paramFloat3);
}
private void moveFlying(float paramFloat1, float paramFloat2, float paramFloat3)
{
if(beforeMoveFlyingHooks != null)
for(int i = beforeMoveFlyingHooks.length - 1; i >= 0 ; i--)
beforeMoveFlyingHooks[i].beforeMoveFlying(paramFloat1, paramFloat2, paramFloat3);
if(overrideMoveFlyingHooks != null)
overrideMoveFlyingHooks[overrideMoveFlyingHooks.length - 1].moveFlying(paramFloat1, paramFloat2, paramFloat3);
else
player.localMoveFlying(paramFloat1, paramFloat2, paramFloat3);
if(afterMoveFlyingHooks != null)
for(int i = 0; i < afterMoveFlyingHooks.length; i++)
afterMoveFlyingHooks[i].afterMoveFlying(paramFloat1, paramFloat2, paramFloat3);
}
protected ClientPlayerBase GetOverwrittenMoveFlying(ClientPlayerBase overWriter)
{
if (overrideMoveFlyingHooks == null)
return overWriter;
for(int i = 0; i < overrideMoveFlyingHooks.length; i++)
if(overrideMoveFlyingHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideMoveFlyingHooks[i - 1];
return overWriter;
}
private final static List<String> beforeMoveFlyingHookTypes = new LinkedList<String>();
private final static List<String> overrideMoveFlyingHookTypes = new LinkedList<String>();
private final static List<String> afterMoveFlyingHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeMoveFlyingHooks;
private ClientPlayerBase[] overrideMoveFlyingHooks;
private ClientPlayerBase[] afterMoveFlyingHooks;
public boolean isMoveFlyingModded;
private static final Map<String, String[]> allBaseBeforeMoveFlyingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeMoveFlyingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideMoveFlyingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideMoveFlyingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterMoveFlyingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterMoveFlyingInferiors = new Hashtable<String, String[]>(0);
public static void onDeath(IClientPlayerAPI target, net.minecraft.util.DamageSource paramDamageSource)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isOnDeathModded)
clientPlayerAPI.onDeath(paramDamageSource);
else
target.localOnDeath(paramDamageSource);
}
private void onDeath(net.minecraft.util.DamageSource paramDamageSource)
{
if(beforeOnDeathHooks != null)
for(int i = beforeOnDeathHooks.length - 1; i >= 0 ; i--)
beforeOnDeathHooks[i].beforeOnDeath(paramDamageSource);
if(overrideOnDeathHooks != null)
overrideOnDeathHooks[overrideOnDeathHooks.length - 1].onDeath(paramDamageSource);
else
player.localOnDeath(paramDamageSource);
if(afterOnDeathHooks != null)
for(int i = 0; i < afterOnDeathHooks.length; i++)
afterOnDeathHooks[i].afterOnDeath(paramDamageSource);
}
protected ClientPlayerBase GetOverwrittenOnDeath(ClientPlayerBase overWriter)
{
if (overrideOnDeathHooks == null)
return overWriter;
for(int i = 0; i < overrideOnDeathHooks.length; i++)
if(overrideOnDeathHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideOnDeathHooks[i - 1];
return overWriter;
}
private final static List<String> beforeOnDeathHookTypes = new LinkedList<String>();
private final static List<String> overrideOnDeathHookTypes = new LinkedList<String>();
private final static List<String> afterOnDeathHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeOnDeathHooks;
private ClientPlayerBase[] overrideOnDeathHooks;
private ClientPlayerBase[] afterOnDeathHooks;
public boolean isOnDeathModded;
private static final Map<String, String[]> allBaseBeforeOnDeathSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeOnDeathInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideOnDeathSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideOnDeathInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterOnDeathSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterOnDeathInferiors = new Hashtable<String, String[]>(0);
public static void onLivingUpdate(IClientPlayerAPI target)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isOnLivingUpdateModded)
clientPlayerAPI.onLivingUpdate();
else
target.localOnLivingUpdate();
}
private void onLivingUpdate()
{
if(beforeOnLivingUpdateHooks != null)
for(int i = beforeOnLivingUpdateHooks.length - 1; i >= 0 ; i--)
beforeOnLivingUpdateHooks[i].beforeOnLivingUpdate();
if(overrideOnLivingUpdateHooks != null)
overrideOnLivingUpdateHooks[overrideOnLivingUpdateHooks.length - 1].onLivingUpdate();
else
player.localOnLivingUpdate();
if(afterOnLivingUpdateHooks != null)
for(int i = 0; i < afterOnLivingUpdateHooks.length; i++)
afterOnLivingUpdateHooks[i].afterOnLivingUpdate();
}
protected ClientPlayerBase GetOverwrittenOnLivingUpdate(ClientPlayerBase overWriter)
{
if (overrideOnLivingUpdateHooks == null)
return overWriter;
for(int i = 0; i < overrideOnLivingUpdateHooks.length; i++)
if(overrideOnLivingUpdateHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideOnLivingUpdateHooks[i - 1];
return overWriter;
}
private final static List<String> beforeOnLivingUpdateHookTypes = new LinkedList<String>();
private final static List<String> overrideOnLivingUpdateHookTypes = new LinkedList<String>();
private final static List<String> afterOnLivingUpdateHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeOnLivingUpdateHooks;
private ClientPlayerBase[] overrideOnLivingUpdateHooks;
private ClientPlayerBase[] afterOnLivingUpdateHooks;
public boolean isOnLivingUpdateModded;
private static final Map<String, String[]> allBaseBeforeOnLivingUpdateSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeOnLivingUpdateInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideOnLivingUpdateSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideOnLivingUpdateInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterOnLivingUpdateSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterOnLivingUpdateInferiors = new Hashtable<String, String[]>(0);
public static void onKillEntity(IClientPlayerAPI target, net.minecraft.entity.EntityLivingBase paramEntityLivingBase)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isOnKillEntityModded)
clientPlayerAPI.onKillEntity(paramEntityLivingBase);
else
target.localOnKillEntity(paramEntityLivingBase);
}
private void onKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase)
{
if(beforeOnKillEntityHooks != null)
for(int i = beforeOnKillEntityHooks.length - 1; i >= 0 ; i--)
beforeOnKillEntityHooks[i].beforeOnKillEntity(paramEntityLivingBase);
if(overrideOnKillEntityHooks != null)
overrideOnKillEntityHooks[overrideOnKillEntityHooks.length - 1].onKillEntity(paramEntityLivingBase);
else
player.localOnKillEntity(paramEntityLivingBase);
if(afterOnKillEntityHooks != null)
for(int i = 0; i < afterOnKillEntityHooks.length; i++)
afterOnKillEntityHooks[i].afterOnKillEntity(paramEntityLivingBase);
}
protected ClientPlayerBase GetOverwrittenOnKillEntity(ClientPlayerBase overWriter)
{
if (overrideOnKillEntityHooks == null)
return overWriter;
for(int i = 0; i < overrideOnKillEntityHooks.length; i++)
if(overrideOnKillEntityHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideOnKillEntityHooks[i - 1];
return overWriter;
}
private final static List<String> beforeOnKillEntityHookTypes = new LinkedList<String>();
private final static List<String> overrideOnKillEntityHookTypes = new LinkedList<String>();
private final static List<String> afterOnKillEntityHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeOnKillEntityHooks;
private ClientPlayerBase[] overrideOnKillEntityHooks;
private ClientPlayerBase[] afterOnKillEntityHooks;
public boolean isOnKillEntityModded;
private static final Map<String, String[]> allBaseBeforeOnKillEntitySuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeOnKillEntityInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideOnKillEntitySuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideOnKillEntityInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterOnKillEntitySuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterOnKillEntityInferiors = new Hashtable<String, String[]>(0);
public static void onStruckByLightning(IClientPlayerAPI target, net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isOnStruckByLightningModded)
clientPlayerAPI.onStruckByLightning(paramEntityLightningBolt);
else
target.localOnStruckByLightning(paramEntityLightningBolt);
}
private void onStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt)
{
if(beforeOnStruckByLightningHooks != null)
for(int i = beforeOnStruckByLightningHooks.length - 1; i >= 0 ; i--)
beforeOnStruckByLightningHooks[i].beforeOnStruckByLightning(paramEntityLightningBolt);
if(overrideOnStruckByLightningHooks != null)
overrideOnStruckByLightningHooks[overrideOnStruckByLightningHooks.length - 1].onStruckByLightning(paramEntityLightningBolt);
else
player.localOnStruckByLightning(paramEntityLightningBolt);
if(afterOnStruckByLightningHooks != null)
for(int i = 0; i < afterOnStruckByLightningHooks.length; i++)
afterOnStruckByLightningHooks[i].afterOnStruckByLightning(paramEntityLightningBolt);
}
protected ClientPlayerBase GetOverwrittenOnStruckByLightning(ClientPlayerBase overWriter)
{
if (overrideOnStruckByLightningHooks == null)
return overWriter;
for(int i = 0; i < overrideOnStruckByLightningHooks.length; i++)
if(overrideOnStruckByLightningHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideOnStruckByLightningHooks[i - 1];
return overWriter;
}
private final static List<String> beforeOnStruckByLightningHookTypes = new LinkedList<String>();
private final static List<String> overrideOnStruckByLightningHookTypes = new LinkedList<String>();
private final static List<String> afterOnStruckByLightningHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeOnStruckByLightningHooks;
private ClientPlayerBase[] overrideOnStruckByLightningHooks;
private ClientPlayerBase[] afterOnStruckByLightningHooks;
public boolean isOnStruckByLightningModded;
private static final Map<String, String[]> allBaseBeforeOnStruckByLightningSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeOnStruckByLightningInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideOnStruckByLightningSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideOnStruckByLightningInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterOnStruckByLightningSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterOnStruckByLightningInferiors = new Hashtable<String, String[]>(0);
public static void onUpdate(IClientPlayerAPI target)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isOnUpdateModded)
clientPlayerAPI.onUpdate();
else
target.localOnUpdate();
}
private void onUpdate()
{
if(beforeOnUpdateHooks != null)
for(int i = beforeOnUpdateHooks.length - 1; i >= 0 ; i--)
beforeOnUpdateHooks[i].beforeOnUpdate();
if(overrideOnUpdateHooks != null)
overrideOnUpdateHooks[overrideOnUpdateHooks.length - 1].onUpdate();
else
player.localOnUpdate();
if(afterOnUpdateHooks != null)
for(int i = 0; i < afterOnUpdateHooks.length; i++)
afterOnUpdateHooks[i].afterOnUpdate();
}
protected ClientPlayerBase GetOverwrittenOnUpdate(ClientPlayerBase overWriter)
{
if (overrideOnUpdateHooks == null)
return overWriter;
for(int i = 0; i < overrideOnUpdateHooks.length; i++)
if(overrideOnUpdateHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideOnUpdateHooks[i - 1];
return overWriter;
}
private final static List<String> beforeOnUpdateHookTypes = new LinkedList<String>();
private final static List<String> overrideOnUpdateHookTypes = new LinkedList<String>();
private final static List<String> afterOnUpdateHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeOnUpdateHooks;
private ClientPlayerBase[] overrideOnUpdateHooks;
private ClientPlayerBase[] afterOnUpdateHooks;
public boolean isOnUpdateModded;
private static final Map<String, String[]> allBaseBeforeOnUpdateSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeOnUpdateInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideOnUpdateSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideOnUpdateInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterOnUpdateSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterOnUpdateInferiors = new Hashtable<String, String[]>(0);
public static void playStepSound(IClientPlayerAPI target, net.minecraft.util.BlockPos paramBlockPos, net.minecraft.block.Block paramBlock)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isPlayStepSoundModded)
clientPlayerAPI.playStepSound(paramBlockPos, paramBlock);
else
target.localPlayStepSound(paramBlockPos, paramBlock);
}
private void playStepSound(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.block.Block paramBlock)
{
if(beforePlayStepSoundHooks != null)
for(int i = beforePlayStepSoundHooks.length - 1; i >= 0 ; i--)
beforePlayStepSoundHooks[i].beforePlayStepSound(paramBlockPos, paramBlock);
if(overridePlayStepSoundHooks != null)
overridePlayStepSoundHooks[overridePlayStepSoundHooks.length - 1].playStepSound(paramBlockPos, paramBlock);
else
player.localPlayStepSound(paramBlockPos, paramBlock);
if(afterPlayStepSoundHooks != null)
for(int i = 0; i < afterPlayStepSoundHooks.length; i++)
afterPlayStepSoundHooks[i].afterPlayStepSound(paramBlockPos, paramBlock);
}
protected ClientPlayerBase GetOverwrittenPlayStepSound(ClientPlayerBase overWriter)
{
if (overridePlayStepSoundHooks == null)
return overWriter;
for(int i = 0; i < overridePlayStepSoundHooks.length; i++)
if(overridePlayStepSoundHooks[i] == overWriter)
if(i == 0)
return null;
else
return overridePlayStepSoundHooks[i - 1];
return overWriter;
}
private final static List<String> beforePlayStepSoundHookTypes = new LinkedList<String>();
private final static List<String> overridePlayStepSoundHookTypes = new LinkedList<String>();
private final static List<String> afterPlayStepSoundHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforePlayStepSoundHooks;
private ClientPlayerBase[] overridePlayStepSoundHooks;
private ClientPlayerBase[] afterPlayStepSoundHooks;
public boolean isPlayStepSoundModded;
private static final Map<String, String[]> allBaseBeforePlayStepSoundSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforePlayStepSoundInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverridePlayStepSoundSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverridePlayStepSoundInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterPlayStepSoundSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterPlayStepSoundInferiors = new Hashtable<String, String[]>(0);
public static boolean pushOutOfBlocks(IClientPlayerAPI target, double paramDouble1, double paramDouble2, double paramDouble3)
{
boolean _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isPushOutOfBlocksModded)
_result = clientPlayerAPI.pushOutOfBlocks(paramDouble1, paramDouble2, paramDouble3);
else
_result = target.localPushOutOfBlocks(paramDouble1, paramDouble2, paramDouble3);
return _result;
}
private boolean pushOutOfBlocks(double paramDouble1, double paramDouble2, double paramDouble3)
{
if(beforePushOutOfBlocksHooks != null)
for(int i = beforePushOutOfBlocksHooks.length - 1; i >= 0 ; i--)
beforePushOutOfBlocksHooks[i].beforePushOutOfBlocks(paramDouble1, paramDouble2, paramDouble3);
boolean _result;
if(overridePushOutOfBlocksHooks != null)
_result = overridePushOutOfBlocksHooks[overridePushOutOfBlocksHooks.length - 1].pushOutOfBlocks(paramDouble1, paramDouble2, paramDouble3);
else
_result = player.localPushOutOfBlocks(paramDouble1, paramDouble2, paramDouble3);
if(afterPushOutOfBlocksHooks != null)
for(int i = 0; i < afterPushOutOfBlocksHooks.length; i++)
afterPushOutOfBlocksHooks[i].afterPushOutOfBlocks(paramDouble1, paramDouble2, paramDouble3);
return _result;
}
protected ClientPlayerBase GetOverwrittenPushOutOfBlocks(ClientPlayerBase overWriter)
{
if (overridePushOutOfBlocksHooks == null)
return overWriter;
for(int i = 0; i < overridePushOutOfBlocksHooks.length; i++)
if(overridePushOutOfBlocksHooks[i] == overWriter)
if(i == 0)
return null;
else
return overridePushOutOfBlocksHooks[i - 1];
return overWriter;
}
private final static List<String> beforePushOutOfBlocksHookTypes = new LinkedList<String>();
private final static List<String> overridePushOutOfBlocksHookTypes = new LinkedList<String>();
private final static List<String> afterPushOutOfBlocksHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforePushOutOfBlocksHooks;
private ClientPlayerBase[] overridePushOutOfBlocksHooks;
private ClientPlayerBase[] afterPushOutOfBlocksHooks;
public boolean isPushOutOfBlocksModded;
private static final Map<String, String[]> allBaseBeforePushOutOfBlocksSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforePushOutOfBlocksInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverridePushOutOfBlocksSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverridePushOutOfBlocksInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterPushOutOfBlocksSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterPushOutOfBlocksInferiors = new Hashtable<String, String[]>(0);
public static net.minecraft.util.MovingObjectPosition rayTrace(IClientPlayerAPI target, double paramDouble, float paramFloat)
{
net.minecraft.util.MovingObjectPosition _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isRayTraceModded)
_result = clientPlayerAPI.rayTrace(paramDouble, paramFloat);
else
_result = target.localRayTrace(paramDouble, paramFloat);
return _result;
}
private net.minecraft.util.MovingObjectPosition rayTrace(double paramDouble, float paramFloat)
{
if(beforeRayTraceHooks != null)
for(int i = beforeRayTraceHooks.length - 1; i >= 0 ; i--)
beforeRayTraceHooks[i].beforeRayTrace(paramDouble, paramFloat);
net.minecraft.util.MovingObjectPosition _result;
if(overrideRayTraceHooks != null)
_result = overrideRayTraceHooks[overrideRayTraceHooks.length - 1].rayTrace(paramDouble, paramFloat);
else
_result = player.localRayTrace(paramDouble, paramFloat);
if(afterRayTraceHooks != null)
for(int i = 0; i < afterRayTraceHooks.length; i++)
afterRayTraceHooks[i].afterRayTrace(paramDouble, paramFloat);
return _result;
}
protected ClientPlayerBase GetOverwrittenRayTrace(ClientPlayerBase overWriter)
{
if (overrideRayTraceHooks == null)
return overWriter;
for(int i = 0; i < overrideRayTraceHooks.length; i++)
if(overrideRayTraceHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideRayTraceHooks[i - 1];
return overWriter;
}
private final static List<String> beforeRayTraceHookTypes = new LinkedList<String>();
private final static List<String> overrideRayTraceHookTypes = new LinkedList<String>();
private final static List<String> afterRayTraceHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeRayTraceHooks;
private ClientPlayerBase[] overrideRayTraceHooks;
private ClientPlayerBase[] afterRayTraceHooks;
public boolean isRayTraceModded;
private static final Map<String, String[]> allBaseBeforeRayTraceSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeRayTraceInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideRayTraceSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideRayTraceInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterRayTraceSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterRayTraceInferiors = new Hashtable<String, String[]>(0);
public static void readEntityFromNBT(IClientPlayerAPI target, net.minecraft.nbt.NBTTagCompound paramNBTTagCompound)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isReadEntityFromNBTModded)
clientPlayerAPI.readEntityFromNBT(paramNBTTagCompound);
else
target.localReadEntityFromNBT(paramNBTTagCompound);
}
private void readEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound)
{
if(beforeReadEntityFromNBTHooks != null)
for(int i = beforeReadEntityFromNBTHooks.length - 1; i >= 0 ; i--)
beforeReadEntityFromNBTHooks[i].beforeReadEntityFromNBT(paramNBTTagCompound);
if(overrideReadEntityFromNBTHooks != null)
overrideReadEntityFromNBTHooks[overrideReadEntityFromNBTHooks.length - 1].readEntityFromNBT(paramNBTTagCompound);
else
player.localReadEntityFromNBT(paramNBTTagCompound);
if(afterReadEntityFromNBTHooks != null)
for(int i = 0; i < afterReadEntityFromNBTHooks.length; i++)
afterReadEntityFromNBTHooks[i].afterReadEntityFromNBT(paramNBTTagCompound);
}
protected ClientPlayerBase GetOverwrittenReadEntityFromNBT(ClientPlayerBase overWriter)
{
if (overrideReadEntityFromNBTHooks == null)
return overWriter;
for(int i = 0; i < overrideReadEntityFromNBTHooks.length; i++)
if(overrideReadEntityFromNBTHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideReadEntityFromNBTHooks[i - 1];
return overWriter;
}
private final static List<String> beforeReadEntityFromNBTHookTypes = new LinkedList<String>();
private final static List<String> overrideReadEntityFromNBTHookTypes = new LinkedList<String>();
private final static List<String> afterReadEntityFromNBTHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeReadEntityFromNBTHooks;
private ClientPlayerBase[] overrideReadEntityFromNBTHooks;
private ClientPlayerBase[] afterReadEntityFromNBTHooks;
public boolean isReadEntityFromNBTModded;
private static final Map<String, String[]> allBaseBeforeReadEntityFromNBTSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeReadEntityFromNBTInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideReadEntityFromNBTSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideReadEntityFromNBTInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterReadEntityFromNBTSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterReadEntityFromNBTInferiors = new Hashtable<String, String[]>(0);
public static void respawnPlayer(IClientPlayerAPI target)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isRespawnPlayerModded)
clientPlayerAPI.respawnPlayer();
else
target.localRespawnPlayer();
}
private void respawnPlayer()
{
if(beforeRespawnPlayerHooks != null)
for(int i = beforeRespawnPlayerHooks.length - 1; i >= 0 ; i--)
beforeRespawnPlayerHooks[i].beforeRespawnPlayer();
if(overrideRespawnPlayerHooks != null)
overrideRespawnPlayerHooks[overrideRespawnPlayerHooks.length - 1].respawnPlayer();
else
player.localRespawnPlayer();
if(afterRespawnPlayerHooks != null)
for(int i = 0; i < afterRespawnPlayerHooks.length; i++)
afterRespawnPlayerHooks[i].afterRespawnPlayer();
}
protected ClientPlayerBase GetOverwrittenRespawnPlayer(ClientPlayerBase overWriter)
{
if (overrideRespawnPlayerHooks == null)
return overWriter;
for(int i = 0; i < overrideRespawnPlayerHooks.length; i++)
if(overrideRespawnPlayerHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideRespawnPlayerHooks[i - 1];
return overWriter;
}
private final static List<String> beforeRespawnPlayerHookTypes = new LinkedList<String>();
private final static List<String> overrideRespawnPlayerHookTypes = new LinkedList<String>();
private final static List<String> afterRespawnPlayerHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeRespawnPlayerHooks;
private ClientPlayerBase[] overrideRespawnPlayerHooks;
private ClientPlayerBase[] afterRespawnPlayerHooks;
public boolean isRespawnPlayerModded;
private static final Map<String, String[]> allBaseBeforeRespawnPlayerSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeRespawnPlayerInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideRespawnPlayerSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideRespawnPlayerInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterRespawnPlayerSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterRespawnPlayerInferiors = new Hashtable<String, String[]>(0);
public static void setDead(IClientPlayerAPI target)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isSetDeadModded)
clientPlayerAPI.setDead();
else
target.localSetDead();
}
private void setDead()
{
if(beforeSetDeadHooks != null)
for(int i = beforeSetDeadHooks.length - 1; i >= 0 ; i--)
beforeSetDeadHooks[i].beforeSetDead();
if(overrideSetDeadHooks != null)
overrideSetDeadHooks[overrideSetDeadHooks.length - 1].setDead();
else
player.localSetDead();
if(afterSetDeadHooks != null)
for(int i = 0; i < afterSetDeadHooks.length; i++)
afterSetDeadHooks[i].afterSetDead();
}
protected ClientPlayerBase GetOverwrittenSetDead(ClientPlayerBase overWriter)
{
if (overrideSetDeadHooks == null)
return overWriter;
for(int i = 0; i < overrideSetDeadHooks.length; i++)
if(overrideSetDeadHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideSetDeadHooks[i - 1];
return overWriter;
}
private final static List<String> beforeSetDeadHookTypes = new LinkedList<String>();
private final static List<String> overrideSetDeadHookTypes = new LinkedList<String>();
private final static List<String> afterSetDeadHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeSetDeadHooks;
private ClientPlayerBase[] overrideSetDeadHooks;
private ClientPlayerBase[] afterSetDeadHooks;
public boolean isSetDeadModded;
private static final Map<String, String[]> allBaseBeforeSetDeadSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeSetDeadInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideSetDeadSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideSetDeadInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterSetDeadSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterSetDeadInferiors = new Hashtable<String, String[]>(0);
public static void setPlayerSPHealth(IClientPlayerAPI target, float paramFloat)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isSetPlayerSPHealthModded)
clientPlayerAPI.setPlayerSPHealth(paramFloat);
else
target.localSetPlayerSPHealth(paramFloat);
}
private void setPlayerSPHealth(float paramFloat)
{
if(beforeSetPlayerSPHealthHooks != null)
for(int i = beforeSetPlayerSPHealthHooks.length - 1; i >= 0 ; i--)
beforeSetPlayerSPHealthHooks[i].beforeSetPlayerSPHealth(paramFloat);
if(overrideSetPlayerSPHealthHooks != null)
overrideSetPlayerSPHealthHooks[overrideSetPlayerSPHealthHooks.length - 1].setPlayerSPHealth(paramFloat);
else
player.localSetPlayerSPHealth(paramFloat);
if(afterSetPlayerSPHealthHooks != null)
for(int i = 0; i < afterSetPlayerSPHealthHooks.length; i++)
afterSetPlayerSPHealthHooks[i].afterSetPlayerSPHealth(paramFloat);
}
protected ClientPlayerBase GetOverwrittenSetPlayerSPHealth(ClientPlayerBase overWriter)
{
if (overrideSetPlayerSPHealthHooks == null)
return overWriter;
for(int i = 0; i < overrideSetPlayerSPHealthHooks.length; i++)
if(overrideSetPlayerSPHealthHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideSetPlayerSPHealthHooks[i - 1];
return overWriter;
}
private final static List<String> beforeSetPlayerSPHealthHookTypes = new LinkedList<String>();
private final static List<String> overrideSetPlayerSPHealthHookTypes = new LinkedList<String>();
private final static List<String> afterSetPlayerSPHealthHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeSetPlayerSPHealthHooks;
private ClientPlayerBase[] overrideSetPlayerSPHealthHooks;
private ClientPlayerBase[] afterSetPlayerSPHealthHooks;
public boolean isSetPlayerSPHealthModded;
private static final Map<String, String[]> allBaseBeforeSetPlayerSPHealthSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeSetPlayerSPHealthInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideSetPlayerSPHealthSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideSetPlayerSPHealthInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterSetPlayerSPHealthSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterSetPlayerSPHealthInferiors = new Hashtable<String, String[]>(0);
public static void setPositionAndRotation(IClientPlayerAPI target, double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat1, float paramFloat2)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isSetPositionAndRotationModded)
clientPlayerAPI.setPositionAndRotation(paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2);
else
target.localSetPositionAndRotation(paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2);
}
private void setPositionAndRotation(double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat1, float paramFloat2)
{
if(beforeSetPositionAndRotationHooks != null)
for(int i = beforeSetPositionAndRotationHooks.length - 1; i >= 0 ; i--)
beforeSetPositionAndRotationHooks[i].beforeSetPositionAndRotation(paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2);
if(overrideSetPositionAndRotationHooks != null)
overrideSetPositionAndRotationHooks[overrideSetPositionAndRotationHooks.length - 1].setPositionAndRotation(paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2);
else
player.localSetPositionAndRotation(paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2);
if(afterSetPositionAndRotationHooks != null)
for(int i = 0; i < afterSetPositionAndRotationHooks.length; i++)
afterSetPositionAndRotationHooks[i].afterSetPositionAndRotation(paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2);
}
protected ClientPlayerBase GetOverwrittenSetPositionAndRotation(ClientPlayerBase overWriter)
{
if (overrideSetPositionAndRotationHooks == null)
return overWriter;
for(int i = 0; i < overrideSetPositionAndRotationHooks.length; i++)
if(overrideSetPositionAndRotationHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideSetPositionAndRotationHooks[i - 1];
return overWriter;
}
private final static List<String> beforeSetPositionAndRotationHookTypes = new LinkedList<String>();
private final static List<String> overrideSetPositionAndRotationHookTypes = new LinkedList<String>();
private final static List<String> afterSetPositionAndRotationHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeSetPositionAndRotationHooks;
private ClientPlayerBase[] overrideSetPositionAndRotationHooks;
private ClientPlayerBase[] afterSetPositionAndRotationHooks;
public boolean isSetPositionAndRotationModded;
private static final Map<String, String[]> allBaseBeforeSetPositionAndRotationSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeSetPositionAndRotationInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideSetPositionAndRotationSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideSetPositionAndRotationInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterSetPositionAndRotationSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterSetPositionAndRotationInferiors = new Hashtable<String, String[]>(0);
public static void setSneaking(IClientPlayerAPI target, boolean paramBoolean)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isSetSneakingModded)
clientPlayerAPI.setSneaking(paramBoolean);
else
target.localSetSneaking(paramBoolean);
}
private void setSneaking(boolean paramBoolean)
{
if(beforeSetSneakingHooks != null)
for(int i = beforeSetSneakingHooks.length - 1; i >= 0 ; i--)
beforeSetSneakingHooks[i].beforeSetSneaking(paramBoolean);
if(overrideSetSneakingHooks != null)
overrideSetSneakingHooks[overrideSetSneakingHooks.length - 1].setSneaking(paramBoolean);
else
player.localSetSneaking(paramBoolean);
if(afterSetSneakingHooks != null)
for(int i = 0; i < afterSetSneakingHooks.length; i++)
afterSetSneakingHooks[i].afterSetSneaking(paramBoolean);
}
protected ClientPlayerBase GetOverwrittenSetSneaking(ClientPlayerBase overWriter)
{
if (overrideSetSneakingHooks == null)
return overWriter;
for(int i = 0; i < overrideSetSneakingHooks.length; i++)
if(overrideSetSneakingHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideSetSneakingHooks[i - 1];
return overWriter;
}
private final static List<String> beforeSetSneakingHookTypes = new LinkedList<String>();
private final static List<String> overrideSetSneakingHookTypes = new LinkedList<String>();
private final static List<String> afterSetSneakingHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeSetSneakingHooks;
private ClientPlayerBase[] overrideSetSneakingHooks;
private ClientPlayerBase[] afterSetSneakingHooks;
public boolean isSetSneakingModded;
private static final Map<String, String[]> allBaseBeforeSetSneakingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeSetSneakingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideSetSneakingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideSetSneakingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterSetSneakingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterSetSneakingInferiors = new Hashtable<String, String[]>(0);
public static void setSprinting(IClientPlayerAPI target, boolean paramBoolean)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isSetSprintingModded)
clientPlayerAPI.setSprinting(paramBoolean);
else
target.localSetSprinting(paramBoolean);
}
private void setSprinting(boolean paramBoolean)
{
if(beforeSetSprintingHooks != null)
for(int i = beforeSetSprintingHooks.length - 1; i >= 0 ; i--)
beforeSetSprintingHooks[i].beforeSetSprinting(paramBoolean);
if(overrideSetSprintingHooks != null)
overrideSetSprintingHooks[overrideSetSprintingHooks.length - 1].setSprinting(paramBoolean);
else
player.localSetSprinting(paramBoolean);
if(afterSetSprintingHooks != null)
for(int i = 0; i < afterSetSprintingHooks.length; i++)
afterSetSprintingHooks[i].afterSetSprinting(paramBoolean);
}
protected ClientPlayerBase GetOverwrittenSetSprinting(ClientPlayerBase overWriter)
{
if (overrideSetSprintingHooks == null)
return overWriter;
for(int i = 0; i < overrideSetSprintingHooks.length; i++)
if(overrideSetSprintingHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideSetSprintingHooks[i - 1];
return overWriter;
}
private final static List<String> beforeSetSprintingHookTypes = new LinkedList<String>();
private final static List<String> overrideSetSprintingHookTypes = new LinkedList<String>();
private final static List<String> afterSetSprintingHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeSetSprintingHooks;
private ClientPlayerBase[] overrideSetSprintingHooks;
private ClientPlayerBase[] afterSetSprintingHooks;
public boolean isSetSprintingModded;
private static final Map<String, String[]> allBaseBeforeSetSprintingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeSetSprintingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideSetSprintingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideSetSprintingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterSetSprintingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterSetSprintingInferiors = new Hashtable<String, String[]>(0);
public static net.minecraft.entity.player.EntityPlayer.EnumStatus trySleep(IClientPlayerAPI target, net.minecraft.util.BlockPos paramBlockPos)
{
net.minecraft.entity.player.EntityPlayer.EnumStatus _result;
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isTrySleepModded)
_result = clientPlayerAPI.trySleep(paramBlockPos);
else
_result = target.localTrySleep(paramBlockPos);
return _result;
}
private net.minecraft.entity.player.EntityPlayer.EnumStatus trySleep(net.minecraft.util.BlockPos paramBlockPos)
{
if(beforeTrySleepHooks != null)
for(int i = beforeTrySleepHooks.length - 1; i >= 0 ; i--)
beforeTrySleepHooks[i].beforeTrySleep(paramBlockPos);
net.minecraft.entity.player.EntityPlayer.EnumStatus _result;
if(overrideTrySleepHooks != null)
_result = overrideTrySleepHooks[overrideTrySleepHooks.length - 1].trySleep(paramBlockPos);
else
_result = player.localTrySleep(paramBlockPos);
if(afterTrySleepHooks != null)
for(int i = 0; i < afterTrySleepHooks.length; i++)
afterTrySleepHooks[i].afterTrySleep(paramBlockPos);
return _result;
}
protected ClientPlayerBase GetOverwrittenTrySleep(ClientPlayerBase overWriter)
{
if (overrideTrySleepHooks == null)
return overWriter;
for(int i = 0; i < overrideTrySleepHooks.length; i++)
if(overrideTrySleepHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideTrySleepHooks[i - 1];
return overWriter;
}
private final static List<String> beforeTrySleepHookTypes = new LinkedList<String>();
private final static List<String> overrideTrySleepHookTypes = new LinkedList<String>();
private final static List<String> afterTrySleepHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeTrySleepHooks;
private ClientPlayerBase[] overrideTrySleepHooks;
private ClientPlayerBase[] afterTrySleepHooks;
public boolean isTrySleepModded;
private static final Map<String, String[]> allBaseBeforeTrySleepSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeTrySleepInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideTrySleepSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideTrySleepInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterTrySleepSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterTrySleepInferiors = new Hashtable<String, String[]>(0);
public static void swingItem(IClientPlayerAPI target)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isSwingItemModded)
clientPlayerAPI.swingItem();
else
target.localSwingItem();
}
private void swingItem()
{
if(beforeSwingItemHooks != null)
for(int i = beforeSwingItemHooks.length - 1; i >= 0 ; i--)
beforeSwingItemHooks[i].beforeSwingItem();
if(overrideSwingItemHooks != null)
overrideSwingItemHooks[overrideSwingItemHooks.length - 1].swingItem();
else
player.localSwingItem();
if(afterSwingItemHooks != null)
for(int i = 0; i < afterSwingItemHooks.length; i++)
afterSwingItemHooks[i].afterSwingItem();
}
protected ClientPlayerBase GetOverwrittenSwingItem(ClientPlayerBase overWriter)
{
if (overrideSwingItemHooks == null)
return overWriter;
for(int i = 0; i < overrideSwingItemHooks.length; i++)
if(overrideSwingItemHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideSwingItemHooks[i - 1];
return overWriter;
}
private final static List<String> beforeSwingItemHookTypes = new LinkedList<String>();
private final static List<String> overrideSwingItemHookTypes = new LinkedList<String>();
private final static List<String> afterSwingItemHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeSwingItemHooks;
private ClientPlayerBase[] overrideSwingItemHooks;
private ClientPlayerBase[] afterSwingItemHooks;
public boolean isSwingItemModded;
private static final Map<String, String[]> allBaseBeforeSwingItemSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeSwingItemInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideSwingItemSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideSwingItemInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterSwingItemSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterSwingItemInferiors = new Hashtable<String, String[]>(0);
public static void updateEntityActionState(IClientPlayerAPI target)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isUpdateEntityActionStateModded)
clientPlayerAPI.updateEntityActionState();
else
target.localUpdateEntityActionState();
}
private void updateEntityActionState()
{
if(beforeUpdateEntityActionStateHooks != null)
for(int i = beforeUpdateEntityActionStateHooks.length - 1; i >= 0 ; i--)
beforeUpdateEntityActionStateHooks[i].beforeUpdateEntityActionState();
if(overrideUpdateEntityActionStateHooks != null)
overrideUpdateEntityActionStateHooks[overrideUpdateEntityActionStateHooks.length - 1].updateEntityActionState();
else
player.localUpdateEntityActionState();
if(afterUpdateEntityActionStateHooks != null)
for(int i = 0; i < afterUpdateEntityActionStateHooks.length; i++)
afterUpdateEntityActionStateHooks[i].afterUpdateEntityActionState();
}
protected ClientPlayerBase GetOverwrittenUpdateEntityActionState(ClientPlayerBase overWriter)
{
if (overrideUpdateEntityActionStateHooks == null)
return overWriter;
for(int i = 0; i < overrideUpdateEntityActionStateHooks.length; i++)
if(overrideUpdateEntityActionStateHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideUpdateEntityActionStateHooks[i - 1];
return overWriter;
}
private final static List<String> beforeUpdateEntityActionStateHookTypes = new LinkedList<String>();
private final static List<String> overrideUpdateEntityActionStateHookTypes = new LinkedList<String>();
private final static List<String> afterUpdateEntityActionStateHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeUpdateEntityActionStateHooks;
private ClientPlayerBase[] overrideUpdateEntityActionStateHooks;
private ClientPlayerBase[] afterUpdateEntityActionStateHooks;
public boolean isUpdateEntityActionStateModded;
private static final Map<String, String[]> allBaseBeforeUpdateEntityActionStateSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeUpdateEntityActionStateInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideUpdateEntityActionStateSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideUpdateEntityActionStateInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterUpdateEntityActionStateSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterUpdateEntityActionStateInferiors = new Hashtable<String, String[]>(0);
public static void updateRidden(IClientPlayerAPI target)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isUpdateRiddenModded)
clientPlayerAPI.updateRidden();
else
target.localUpdateRidden();
}
private void updateRidden()
{
if(beforeUpdateRiddenHooks != null)
for(int i = beforeUpdateRiddenHooks.length - 1; i >= 0 ; i--)
beforeUpdateRiddenHooks[i].beforeUpdateRidden();
if(overrideUpdateRiddenHooks != null)
overrideUpdateRiddenHooks[overrideUpdateRiddenHooks.length - 1].updateRidden();
else
player.localUpdateRidden();
if(afterUpdateRiddenHooks != null)
for(int i = 0; i < afterUpdateRiddenHooks.length; i++)
afterUpdateRiddenHooks[i].afterUpdateRidden();
}
protected ClientPlayerBase GetOverwrittenUpdateRidden(ClientPlayerBase overWriter)
{
if (overrideUpdateRiddenHooks == null)
return overWriter;
for(int i = 0; i < overrideUpdateRiddenHooks.length; i++)
if(overrideUpdateRiddenHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideUpdateRiddenHooks[i - 1];
return overWriter;
}
private final static List<String> beforeUpdateRiddenHookTypes = new LinkedList<String>();
private final static List<String> overrideUpdateRiddenHookTypes = new LinkedList<String>();
private final static List<String> afterUpdateRiddenHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeUpdateRiddenHooks;
private ClientPlayerBase[] overrideUpdateRiddenHooks;
private ClientPlayerBase[] afterUpdateRiddenHooks;
public boolean isUpdateRiddenModded;
private static final Map<String, String[]> allBaseBeforeUpdateRiddenSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeUpdateRiddenInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideUpdateRiddenSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideUpdateRiddenInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterUpdateRiddenSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterUpdateRiddenInferiors = new Hashtable<String, String[]>(0);
public static void wakeUpPlayer(IClientPlayerAPI target, boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isWakeUpPlayerModded)
clientPlayerAPI.wakeUpPlayer(paramBoolean1, paramBoolean2, paramBoolean3);
else
target.localWakeUpPlayer(paramBoolean1, paramBoolean2, paramBoolean3);
}
private void wakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3)
{
if(beforeWakeUpPlayerHooks != null)
for(int i = beforeWakeUpPlayerHooks.length - 1; i >= 0 ; i--)
beforeWakeUpPlayerHooks[i].beforeWakeUpPlayer(paramBoolean1, paramBoolean2, paramBoolean3);
if(overrideWakeUpPlayerHooks != null)
overrideWakeUpPlayerHooks[overrideWakeUpPlayerHooks.length - 1].wakeUpPlayer(paramBoolean1, paramBoolean2, paramBoolean3);
else
player.localWakeUpPlayer(paramBoolean1, paramBoolean2, paramBoolean3);
if(afterWakeUpPlayerHooks != null)
for(int i = 0; i < afterWakeUpPlayerHooks.length; i++)
afterWakeUpPlayerHooks[i].afterWakeUpPlayer(paramBoolean1, paramBoolean2, paramBoolean3);
}
protected ClientPlayerBase GetOverwrittenWakeUpPlayer(ClientPlayerBase overWriter)
{
if (overrideWakeUpPlayerHooks == null)
return overWriter;
for(int i = 0; i < overrideWakeUpPlayerHooks.length; i++)
if(overrideWakeUpPlayerHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideWakeUpPlayerHooks[i - 1];
return overWriter;
}
private final static List<String> beforeWakeUpPlayerHookTypes = new LinkedList<String>();
private final static List<String> overrideWakeUpPlayerHookTypes = new LinkedList<String>();
private final static List<String> afterWakeUpPlayerHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeWakeUpPlayerHooks;
private ClientPlayerBase[] overrideWakeUpPlayerHooks;
private ClientPlayerBase[] afterWakeUpPlayerHooks;
public boolean isWakeUpPlayerModded;
private static final Map<String, String[]> allBaseBeforeWakeUpPlayerSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeWakeUpPlayerInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideWakeUpPlayerSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideWakeUpPlayerInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterWakeUpPlayerSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterWakeUpPlayerInferiors = new Hashtable<String, String[]>(0);
public static void writeEntityToNBT(IClientPlayerAPI target, net.minecraft.nbt.NBTTagCompound paramNBTTagCompound)
{
ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI();
if(clientPlayerAPI != null && clientPlayerAPI.isWriteEntityToNBTModded)
clientPlayerAPI.writeEntityToNBT(paramNBTTagCompound);
else
target.localWriteEntityToNBT(paramNBTTagCompound);
}
private void writeEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound)
{
if(beforeWriteEntityToNBTHooks != null)
for(int i = beforeWriteEntityToNBTHooks.length - 1; i >= 0 ; i--)
beforeWriteEntityToNBTHooks[i].beforeWriteEntityToNBT(paramNBTTagCompound);
if(overrideWriteEntityToNBTHooks != null)
overrideWriteEntityToNBTHooks[overrideWriteEntityToNBTHooks.length - 1].writeEntityToNBT(paramNBTTagCompound);
else
player.localWriteEntityToNBT(paramNBTTagCompound);
if(afterWriteEntityToNBTHooks != null)
for(int i = 0; i < afterWriteEntityToNBTHooks.length; i++)
afterWriteEntityToNBTHooks[i].afterWriteEntityToNBT(paramNBTTagCompound);
}
protected ClientPlayerBase GetOverwrittenWriteEntityToNBT(ClientPlayerBase overWriter)
{
if (overrideWriteEntityToNBTHooks == null)
return overWriter;
for(int i = 0; i < overrideWriteEntityToNBTHooks.length; i++)
if(overrideWriteEntityToNBTHooks[i] == overWriter)
if(i == 0)
return null;
else
return overrideWriteEntityToNBTHooks[i - 1];
return overWriter;
}
private final static List<String> beforeWriteEntityToNBTHookTypes = new LinkedList<String>();
private final static List<String> overrideWriteEntityToNBTHookTypes = new LinkedList<String>();
private final static List<String> afterWriteEntityToNBTHookTypes = new LinkedList<String>();
private ClientPlayerBase[] beforeWriteEntityToNBTHooks;
private ClientPlayerBase[] overrideWriteEntityToNBTHooks;
private ClientPlayerBase[] afterWriteEntityToNBTHooks;
public boolean isWriteEntityToNBTModded;
private static final Map<String, String[]> allBaseBeforeWriteEntityToNBTSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeWriteEntityToNBTInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideWriteEntityToNBTSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseOverrideWriteEntityToNBTInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterWriteEntityToNBTSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterWriteEntityToNBTInferiors = new Hashtable<String, String[]>(0);
protected final IClientPlayerAPI player;
private final static Set<String> keys = new HashSet<String>();
private final static Map<String, String> keysToVirtualIds = new HashMap<String, String>();
private final static Set<Class<?>> dynamicTypes = new HashSet<Class<?>>();
private final static Map<Class<?>, Map<String, Method>> virtualDynamicHookMethods = new HashMap<Class<?>, Map<String, Method>>();
private final static Map<Class<?>, Map<String, Method>> beforeDynamicHookMethods = new HashMap<Class<?>, Map<String, Method>>();
private final static Map<Class<?>, Map<String, Method>> overrideDynamicHookMethods = new HashMap<Class<?>, Map<String, Method>>();
private final static Map<Class<?>, Map<String, Method>> afterDynamicHookMethods = new HashMap<Class<?>, Map<String, Method>>();
private final static List<String> beforeLocalConstructingHookTypes = new LinkedList<String>();
private final static List<String> afterLocalConstructingHookTypes = new LinkedList<String>();
private static final Map<String, List<String>> beforeDynamicHookTypes = new Hashtable<String, List<String>>(0);
private static final Map<String, List<String>> overrideDynamicHookTypes = new Hashtable<String, List<String>>(0);
private static final Map<String, List<String>> afterDynamicHookTypes = new Hashtable<String, List<String>>(0);
private ClientPlayerBase[] beforeLocalConstructingHooks;
private ClientPlayerBase[] afterLocalConstructingHooks;
private final Map<ClientPlayerBase, String> baseObjectsToId = new Hashtable<ClientPlayerBase, String>();
private final Map<String, ClientPlayerBase> allBaseObjects = new Hashtable<String, ClientPlayerBase>();
private final Set<String> unmodifiableAllBaseIds = Collections.unmodifiableSet(allBaseObjects.keySet());
private static final Map<String, Constructor<?>> allBaseConstructors = new Hashtable<String, Constructor<?>>();
private static final Set<String> unmodifiableAllIds = Collections.unmodifiableSet(allBaseConstructors.keySet());
private static final Map<String, String[]> allBaseBeforeLocalConstructingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseBeforeLocalConstructingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterLocalConstructingSuperiors = new Hashtable<String, String[]>(0);
private static final Map<String, String[]> allBaseAfterLocalConstructingInferiors = new Hashtable<String, String[]>(0);
private static final Map<String, Map<String, String[]>> allBaseBeforeDynamicSuperiors = new Hashtable<String, Map<String, String[]>>(0);
private static final Map<String, Map<String, String[]>> allBaseBeforeDynamicInferiors = new Hashtable<String, Map<String, String[]>>(0);
private static final Map<String, Map<String, String[]>> allBaseOverrideDynamicSuperiors = new Hashtable<String, Map<String, String[]>>(0);
private static final Map<String, Map<String, String[]>> allBaseOverrideDynamicInferiors = new Hashtable<String, Map<String, String[]>>(0);
private static final Map<String, Map<String, String[]>> allBaseAfterDynamicSuperiors = new Hashtable<String, Map<String, String[]>>(0);
private static final Map<String, Map<String, String[]>> allBaseAfterDynamicInferiors = new Hashtable<String, Map<String, String[]>>(0);
private static boolean initialized = false;
}