From f66fb1526fa85554842db425652545448495a2a0 Mon Sep 17 00:00:00 2001 From: Draknyte1 Date: Wed, 28 Dec 2016 16:00:53 +1000 Subject: + Added framework based on opensource works for player movement modification. + Added support for the builders ring to toggle Sneak on and Sprinting off while worn. + Added PlayerAPI. % Moved COFH api files into the same package as PlayerAPI. --- src/Java/api/cofh/energy/EnergyStorage.java | 129 + src/Java/api/cofh/energy/IEnergyConnection.java | 8 + src/Java/api/cofh/energy/IEnergyContainerItem.java | 14 + src/Java/api/cofh/energy/IEnergyHandler.java | 15 + src/Java/api/cofh/energy/IEnergyProvider.java | 13 + src/Java/api/cofh/energy/IEnergyReceiver.java | 13 + src/Java/api/cofh/energy/IEnergyStorage.java | 12 + src/Java/api/cofh/energy/ItemEnergyContainer.java | 98 + src/Java/api/cofh/energy/TileEnergyHandler.java | 49 + src/Java/api/player/client/ClientPlayerAPI.java | 7354 ++++++++++++++++++++ src/Java/api/player/client/ClientPlayerBase.java | 1525 ++++ .../api/player/client/ClientPlayerBaseSorter.java | 259 + .../api/player/client/ClientPlayerBaseSorting.java | 4847 +++++++++++++ .../player/client/ClientPlayerClassVisitor.java | 5400 ++++++++++++++ .../client/ClientPlayerConstructorVisitor.java | 65 + src/Java/api/player/client/IClientPlayer.java | 1047 +++ src/Java/api/player/client/IClientPlayerAPI.java | 26 + src/Java/api/player/forge/PlayerAPIContainer.java | 50 + src/Java/api/player/forge/PlayerAPIPlugin.java | 57 + .../api/player/forge/PlayerAPITransformer.java | 37 + src/Java/api/player/server/IServerPlayer.java | 983 +++ src/Java/api/player/server/IServerPlayerAPI.java | 26 + src/Java/api/player/server/ServerPlayerAPI.java | 6017 ++++++++++++++++ src/Java/api/player/server/ServerPlayerBase.java | 1207 ++++ .../api/player/server/ServerPlayerBaseSorter.java | 259 + .../api/player/server/ServerPlayerBaseSorting.java | 3909 +++++++++++ .../player/server/ServerPlayerClassVisitor.java | 4856 +++++++++++++ .../server/ServerPlayerConstructorVisitor.java | 65 + src/Java/cofh/api/energy/EnergyStorage.java | 129 - src/Java/cofh/api/energy/IEnergyConnection.java | 8 - src/Java/cofh/api/energy/IEnergyContainerItem.java | 14 - src/Java/cofh/api/energy/IEnergyHandler.java | 15 - src/Java/cofh/api/energy/IEnergyProvider.java | 13 - src/Java/cofh/api/energy/IEnergyReceiver.java | 13 - src/Java/cofh/api/energy/IEnergyStorage.java | 12 - src/Java/cofh/api/energy/ItemEnergyContainer.java | 98 - src/Java/cofh/api/energy/TileEnergyHandler.java | 49 - src/Java/gtPlusPlus/core/common/BasePlayer.java | 346 + .../core/handler/events/CustomMovementHandler.java | 160 + .../core/handler/events/SneakManager.java | 73 + .../core/item/general/ItemSlowBuildingRing.java | 12 + .../core/item/general/RF2EU_Battery.java | 2 +- src/Java/gtPlusPlus/core/proxy/ClientProxy.java | 12 +- .../GregtechMetaPipeEntity_Cable.java | 2 +- .../GregtechMetaPipeEntity_SuperConductor.java | 2 +- .../base/GregtechMetaPipeEntityBase_Cable.java | 2 +- 46 files changed, 38945 insertions(+), 357 deletions(-) create mode 100644 src/Java/api/cofh/energy/EnergyStorage.java create mode 100644 src/Java/api/cofh/energy/IEnergyConnection.java create mode 100644 src/Java/api/cofh/energy/IEnergyContainerItem.java create mode 100644 src/Java/api/cofh/energy/IEnergyHandler.java create mode 100644 src/Java/api/cofh/energy/IEnergyProvider.java create mode 100644 src/Java/api/cofh/energy/IEnergyReceiver.java create mode 100644 src/Java/api/cofh/energy/IEnergyStorage.java create mode 100644 src/Java/api/cofh/energy/ItemEnergyContainer.java create mode 100644 src/Java/api/cofh/energy/TileEnergyHandler.java create mode 100644 src/Java/api/player/client/ClientPlayerAPI.java create mode 100644 src/Java/api/player/client/ClientPlayerBase.java create mode 100644 src/Java/api/player/client/ClientPlayerBaseSorter.java create mode 100644 src/Java/api/player/client/ClientPlayerBaseSorting.java create mode 100644 src/Java/api/player/client/ClientPlayerClassVisitor.java create mode 100644 src/Java/api/player/client/ClientPlayerConstructorVisitor.java create mode 100644 src/Java/api/player/client/IClientPlayer.java create mode 100644 src/Java/api/player/client/IClientPlayerAPI.java create mode 100644 src/Java/api/player/forge/PlayerAPIContainer.java create mode 100644 src/Java/api/player/forge/PlayerAPIPlugin.java create mode 100644 src/Java/api/player/forge/PlayerAPITransformer.java create mode 100644 src/Java/api/player/server/IServerPlayer.java create mode 100644 src/Java/api/player/server/IServerPlayerAPI.java create mode 100644 src/Java/api/player/server/ServerPlayerAPI.java create mode 100644 src/Java/api/player/server/ServerPlayerBase.java create mode 100644 src/Java/api/player/server/ServerPlayerBaseSorter.java create mode 100644 src/Java/api/player/server/ServerPlayerBaseSorting.java create mode 100644 src/Java/api/player/server/ServerPlayerClassVisitor.java create mode 100644 src/Java/api/player/server/ServerPlayerConstructorVisitor.java delete mode 100644 src/Java/cofh/api/energy/EnergyStorage.java delete mode 100644 src/Java/cofh/api/energy/IEnergyConnection.java delete mode 100644 src/Java/cofh/api/energy/IEnergyContainerItem.java delete mode 100644 src/Java/cofh/api/energy/IEnergyHandler.java delete mode 100644 src/Java/cofh/api/energy/IEnergyProvider.java delete mode 100644 src/Java/cofh/api/energy/IEnergyReceiver.java delete mode 100644 src/Java/cofh/api/energy/IEnergyStorage.java delete mode 100644 src/Java/cofh/api/energy/ItemEnergyContainer.java delete mode 100644 src/Java/cofh/api/energy/TileEnergyHandler.java create mode 100644 src/Java/gtPlusPlus/core/common/BasePlayer.java create mode 100644 src/Java/gtPlusPlus/core/handler/events/CustomMovementHandler.java create mode 100644 src/Java/gtPlusPlus/core/handler/events/SneakManager.java (limited to 'src') diff --git a/src/Java/api/cofh/energy/EnergyStorage.java b/src/Java/api/cofh/energy/EnergyStorage.java new file mode 100644 index 0000000000..a6ec363709 --- /dev/null +++ b/src/Java/api/cofh/energy/EnergyStorage.java @@ -0,0 +1,129 @@ +package api.cofh.energy; + +import net.minecraft.nbt.NBTTagCompound; + +public class EnergyStorage + implements IEnergyStorage +{ + protected int energy; + protected int capacity; + protected int maxReceive; + protected int maxExtract; + + public EnergyStorage(int capacity) + { + this(capacity, capacity, capacity); + } + + public EnergyStorage(int capacity, int maxTransfer) + { + this(capacity, maxTransfer, maxTransfer); + } + + public EnergyStorage(int capacity, int maxReceive, int maxExtract) + { + this.capacity = capacity; + this.maxReceive = maxReceive; + this.maxExtract = maxExtract; + } + + public EnergyStorage readFromNBT(NBTTagCompound nbt) + { + this.energy = nbt.getInteger("Energy"); + if (this.energy > this.capacity) { + this.energy = this.capacity; + } + return this; + } + + public NBTTagCompound writeToNBT(NBTTagCompound nbt) + { + if (this.energy < 0) { + this.energy = 0; + } + nbt.setInteger("Energy", this.energy); + return nbt; + } + + public void setCapacity(int capacity) + { + this.capacity = capacity; + if (this.energy > capacity) { + this.energy = capacity; + } + } + + public void setMaxTransfer(int maxTransfer) + { + setMaxReceive(maxTransfer); + setMaxExtract(maxTransfer); + } + + public void setMaxReceive(int maxReceive) + { + this.maxReceive = maxReceive; + } + + public void setMaxExtract(int maxExtract) + { + this.maxExtract = maxExtract; + } + + public int getMaxReceive() + { + return this.maxReceive; + } + + public int getMaxExtract() + { + return this.maxExtract; + } + + public void setEnergyStored(int energy) + { + this.energy = energy; + if (this.energy > this.capacity) { + this.energy = this.capacity; + } else if (this.energy < 0) { + this.energy = 0; + } + } + + public void modifyEnergyStored(int energy) + { + this.energy += energy; + if (this.energy > this.capacity) { + this.energy = this.capacity; + } else if (this.energy < 0) { + this.energy = 0; + } + } + + public int receiveEnergy(int maxReceive, boolean simulate) + { + int energyReceived = Math.min(this.capacity - this.energy, Math.min(this.maxReceive, maxReceive)); + if (!simulate) { + this.energy += energyReceived; + } + return energyReceived; + } + + public int extractEnergy(int maxExtract, boolean simulate) + { + int energyExtracted = Math.min(this.energy, Math.min(this.maxExtract, maxExtract)); + if (!simulate) { + this.energy -= energyExtracted; + } + return energyExtracted; + } + + public int getEnergyStored() + { + return this.energy; + } + + public int getMaxEnergyStored() + { + return this.capacity; + } +} diff --git a/src/Java/api/cofh/energy/IEnergyConnection.java b/src/Java/api/cofh/energy/IEnergyConnection.java new file mode 100644 index 0000000000..6351f7702d --- /dev/null +++ b/src/Java/api/cofh/energy/IEnergyConnection.java @@ -0,0 +1,8 @@ +package api.cofh.energy; + +import net.minecraftforge.common.util.ForgeDirection; + +public abstract interface IEnergyConnection +{ + public abstract boolean canConnectEnergy(ForgeDirection paramForgeDirection); +} diff --git a/src/Java/api/cofh/energy/IEnergyContainerItem.java b/src/Java/api/cofh/energy/IEnergyContainerItem.java new file mode 100644 index 0000000000..1f2b8c3c52 --- /dev/null +++ b/src/Java/api/cofh/energy/IEnergyContainerItem.java @@ -0,0 +1,14 @@ +package api.cofh.energy; + +import net.minecraft.item.ItemStack; + +public abstract interface IEnergyContainerItem +{ + public abstract int receiveEnergy(ItemStack paramItemStack, int paramInt, boolean paramBoolean); + + public abstract int extractEnergy(ItemStack paramItemStack, int paramInt, boolean paramBoolean); + + public abstract int getEnergyStored(ItemStack paramItemStack); + + public abstract int getMaxEnergyStored(ItemStack paramItemStack); +} diff --git a/src/Java/api/cofh/energy/IEnergyHandler.java b/src/Java/api/cofh/energy/IEnergyHandler.java new file mode 100644 index 0000000000..9d3385c4c0 --- /dev/null +++ b/src/Java/api/cofh/energy/IEnergyHandler.java @@ -0,0 +1,15 @@ +package api.cofh.energy; + +import net.minecraftforge.common.util.ForgeDirection; + +public abstract interface IEnergyHandler + extends IEnergyProvider, IEnergyReceiver +{ + public abstract int receiveEnergy(ForgeDirection paramForgeDirection, int paramInt, boolean paramBoolean); + + public abstract int extractEnergy(ForgeDirection paramForgeDirection, int paramInt, boolean paramBoolean); + + public abstract int getEnergyStored(ForgeDirection paramForgeDirection); + + public abstract int getMaxEnergyStored(ForgeDirection paramForgeDirection); +} diff --git a/src/Java/api/cofh/energy/IEnergyProvider.java b/src/Java/api/cofh/energy/IEnergyProvider.java new file mode 100644 index 0000000000..ace09db65e --- /dev/null +++ b/src/Java/api/cofh/energy/IEnergyProvider.java @@ -0,0 +1,13 @@ +package api.cofh.energy; + +import net.minecraftforge.common.util.ForgeDirection; + +public abstract interface IEnergyProvider + extends IEnergyConnection +{ + public abstract int extractEnergy(ForgeDirection paramForgeDirection, int paramInt, boolean paramBoolean); + + public abstract int getEnergyStored(ForgeDirection paramForgeDirection); + + public abstract int getMaxEnergyStored(ForgeDirection paramForgeDirection); +} diff --git a/src/Java/api/cofh/energy/IEnergyReceiver.java b/src/Java/api/cofh/energy/IEnergyReceiver.java new file mode 100644 index 0000000000..68b071b028 --- /dev/null +++ b/src/Java/api/cofh/energy/IEnergyReceiver.java @@ -0,0 +1,13 @@ +package api.cofh.energy; + +import net.minecraftforge.common.util.ForgeDirection; + +public abstract interface IEnergyReceiver + extends IEnergyConnection +{ + public abstract int receiveEnergy(ForgeDirection paramForgeDirection, int paramInt, boolean paramBoolean); + + public abstract int getEnergyStored(ForgeDirection paramForgeDirection); + + public abstract int getMaxEnergyStored(ForgeDirection paramForgeDirection); +} diff --git a/src/Java/api/cofh/energy/IEnergyStorage.java b/src/Java/api/cofh/energy/IEnergyStorage.java new file mode 100644 index 0000000000..bf999f8670 --- /dev/null +++ b/src/Java/api/cofh/energy/IEnergyStorage.java @@ -0,0 +1,12 @@ +package api.cofh.energy; + +public abstract interface IEnergyStorage +{ + public abstract int receiveEnergy(int paramInt, boolean paramBoolean); + + public abstract int extractEnergy(int paramInt, boolean paramBoolean); + + public abstract int getEnergyStored(); + + public abstract int getMaxEnergyStored(); +} diff --git a/src/Java/api/cofh/energy/ItemEnergyContainer.java b/src/Java/api/cofh/energy/ItemEnergyContainer.java new file mode 100644 index 0000000000..f4da898919 --- /dev/null +++ b/src/Java/api/cofh/energy/ItemEnergyContainer.java @@ -0,0 +1,98 @@ +package api.cofh.energy; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class ItemEnergyContainer + extends Item + implements IEnergyContainerItem +{ + protected int capacity; + protected int maxReceive; + protected int maxExtract; + + public ItemEnergyContainer() {} + + public ItemEnergyContainer(int capacity) + { + this(capacity, capacity, capacity); + } + + public ItemEnergyContainer(int capacity, int maxTransfer) + { + this(capacity, maxTransfer, maxTransfer); + } + + public ItemEnergyContainer(int capacity, int maxReceive, int maxExtract) + { + this.capacity = capacity; + this.maxReceive = maxReceive; + this.maxExtract = maxExtract; + } + + public ItemEnergyContainer setCapacity(int capacity) + { + this.capacity = capacity; + return this; + } + + public void setMaxTransfer(int maxTransfer) + { + setMaxReceive(maxTransfer); + setMaxExtract(maxTransfer); + } + + public void setMaxReceive(int maxReceive) + { + this.maxReceive = maxReceive; + } + + public void setMaxExtract(int maxExtract) + { + this.maxExtract = maxExtract; + } + + public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) + { + if (container.stackTagCompound == null) { + container.stackTagCompound = new NBTTagCompound(); + } + int energy = container.stackTagCompound.getInteger("Energy"); + int energyReceived = Math.min(this.capacity - energy, Math.min(this.maxReceive, maxReceive)); + if (!simulate) + { + energy += energyReceived; + container.stackTagCompound.setInteger("Energy", energy); + } + return energyReceived; + } + + public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) + { + if ((container.stackTagCompound == null) || (!container.stackTagCompound.hasKey("Energy"))) { + return 0; + } + int energy = container.stackTagCompound.getInteger("Energy"); + int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract)); + if (!simulate) + { + energy -= energyExtracted; + container.stackTagCompound.setInteger("Energy", energy); + } + return energyExtracted; + } + + public int getEnergyStored(ItemStack container) + { + if ((container.stackTagCompound == null) || (!container.stackTagCompound.hasKey("Energy"))) { + return 0; + } + return container.stackTagCompound.getInteger("Energy"); + } + + public int getMaxEnergyStored(ItemStack container) + { + return this.capacity; + } +} diff --git a/src/Java/api/cofh/energy/TileEnergyHandler.java b/src/Java/api/cofh/energy/TileEnergyHandler.java new file mode 100644 index 0000000000..606b0ba44b --- /dev/null +++ b/src/Java/api/cofh/energy/TileEnergyHandler.java @@ -0,0 +1,49 @@ +package api.cofh.energy; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEnergyHandler + extends TileEntity + implements IEnergyHandler +{ + protected EnergyStorage storage = new EnergyStorage(32000); + + public void readFromNBT(NBTTagCompound nbt) + { + super.readFromNBT(nbt); + this.storage.readFromNBT(nbt); + } + + public void writeToNBT(NBTTagCompound nbt) + { + super.writeToNBT(nbt); + this.storage.writeToNBT(nbt); + } + + public boolean canConnectEnergy(ForgeDirection from) + { + return true; + } + + public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) + { + return this.storage.receiveEnergy(maxReceive, simulate); + } + + public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) + { + return this.storage.extractEnergy(maxExtract, simulate); + } + + public int getEnergyStored(ForgeDirection from) + { + return this.storage.getEnergyStored(); + } + + public int getMaxEnergyStored(ForgeDirection from) + { + return this.storage.getMaxEnergyStored(); + } +} diff --git a/src/Java/api/player/client/ClientPlayerAPI.java b/src/Java/api/player/client/ClientPlayerAPI.java new file mode 100644 index 0000000000..d421868b9a --- /dev/null +++ b/src/Java/api/player/client/ClientPlayerAPI.java @@ -0,0 +1,7354 @@ +// ================================================================== +// 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 . +// ================================================================== + +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 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, allBaseBeforeDisplayGUIBrewingStandSuperiors, baseSorting.getBeforeDisplayGUIBrewingStandSuperiors()); + addSorting(id, allBaseBeforeDisplayGUIBrewingStandInferiors, baseSorting.getBeforeDisplayGUIBrewingStandInferiors()); + addSorting(id, allBaseOverrideDisplayGUIBrewingStandSuperiors, baseSorting.getOverrideDisplayGUIBrewingStandSuperiors()); + addSorting(id, allBaseOverrideDisplayGUIBrewingStandInferiors, baseSorting.getOverrideDisplayGUIBrewingStandInferiors()); + addSorting(id, allBaseAfterDisplayGUIBrewingStandSuperiors, baseSorting.getAfterDisplayGUIBrewingStandSuperiors()); + addSorting(id, allBaseAfterDisplayGUIBrewingStandInferiors, baseSorting.getAfterDisplayGUIBrewingStandInferiors()); + + 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, allBaseBeforeDisplayGUIDispenserSuperiors, baseSorting.getBeforeDisplayGUIDispenserSuperiors()); + addSorting(id, allBaseBeforeDisplayGUIDispenserInferiors, baseSorting.getBeforeDisplayGUIDispenserInferiors()); + addSorting(id, allBaseOverrideDisplayGUIDispenserSuperiors, baseSorting.getOverrideDisplayGUIDispenserSuperiors()); + addSorting(id, allBaseOverrideDisplayGUIDispenserInferiors, baseSorting.getOverrideDisplayGUIDispenserInferiors()); + addSorting(id, allBaseAfterDisplayGUIDispenserSuperiors, baseSorting.getAfterDisplayGUIDispenserSuperiors()); + addSorting(id, allBaseAfterDisplayGUIDispenserInferiors, baseSorting.getAfterDisplayGUIDispenserInferiors()); + + addSorting(id, allBaseBeforeDisplayGUIEditSignSuperiors, baseSorting.getBeforeDisplayGUIEditSignSuperiors()); + addSorting(id, allBaseBeforeDisplayGUIEditSignInferiors, baseSorting.getBeforeDisplayGUIEditSignInferiors()); + addSorting(id, allBaseOverrideDisplayGUIEditSignSuperiors, baseSorting.getOverrideDisplayGUIEditSignSuperiors()); + addSorting(id, allBaseOverrideDisplayGUIEditSignInferiors, baseSorting.getOverrideDisplayGUIEditSignInferiors()); + addSorting(id, allBaseAfterDisplayGUIEditSignSuperiors, baseSorting.getAfterDisplayGUIEditSignSuperiors()); + addSorting(id, allBaseAfterDisplayGUIEditSignInferiors, baseSorting.getAfterDisplayGUIEditSignInferiors()); + + addSorting(id, allBaseBeforeDisplayGUIEnchantmentSuperiors, baseSorting.getBeforeDisplayGUIEnchantmentSuperiors()); + addSorting(id, allBaseBeforeDisplayGUIEnchantmentInferiors, baseSorting.getBeforeDisplayGUIEnchantmentInferiors()); + addSorting(id, allBaseOverrideDisplayGUIEnchantmentSuperiors, baseSorting.getOverrideDisplayGUIEnchantmentSuperiors()); + addSorting(id, allBaseOverrideDisplayGUIEnchantmentInferiors, baseSorting.getOverrideDisplayGUIEnchantmentInferiors()); + addSorting(id, allBaseAfterDisplayGUIEnchantmentSuperiors, baseSorting.getAfterDisplayGUIEnchantmentSuperiors()); + addSorting(id, allBaseAfterDisplayGUIEnchantmentInferiors, baseSorting.getAfterDisplayGUIEnchantmentInferiors()); + + addSorting(id, allBaseBeforeDisplayGUIFurnaceSuperiors, baseSorting.getBeforeDisplayGUIFurnaceSuperiors()); + addSorting(id, allBaseBeforeDisplayGUIFurnaceInferiors, baseSorting.getBeforeDisplayGUIFurnaceInferiors()); + addSorting(id, allBaseOverrideDisplayGUIFurnaceSuperiors, baseSorting.getOverrideDisplayGUIFurnaceSuperiors()); + addSorting(id, allBaseOverrideDisplayGUIFurnaceInferiors, baseSorting.getOverrideDisplayGUIFurnaceInferiors()); + addSorting(id, allBaseAfterDisplayGUIFurnaceSuperiors, baseSorting.getAfterDisplayGUIFurnaceSuperiors()); + addSorting(id, allBaseAfterDisplayGUIFurnaceInferiors, baseSorting.getAfterDisplayGUIFurnaceInferiors()); + + addSorting(id, allBaseBeforeDisplayGUIWorkbenchSuperiors, baseSorting.getBeforeDisplayGUIWorkbenchSuperiors()); + addSorting(id, allBaseBeforeDisplayGUIWorkbenchInferiors, baseSorting.getBeforeDisplayGUIWorkbenchInferiors()); + addSorting(id, allBaseOverrideDisplayGUIWorkbenchSuperiors, baseSorting.getOverrideDisplayGUIWorkbenchSuperiors()); + addSorting(id, allBaseOverrideDisplayGUIWorkbenchInferiors, baseSorting.getOverrideDisplayGUIWorkbenchInferiors()); + addSorting(id, allBaseAfterDisplayGUIWorkbenchSuperiors, baseSorting.getAfterDisplayGUIWorkbenchSuperiors()); + addSorting(id, allBaseAfterDisplayGUIWorkbenchInferiors, baseSorting.getAfterDisplayGUIWorkbenchInferiors()); + + 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, allBaseBeforeDropPlayerItemSuperiors, baseSorting.getBeforeDropPlayerItemSuperiors()); + addSorting(id, allBaseBeforeDropPlayerItemInferiors, baseSorting.getBeforeDropPlayerItemInferiors()); + addSorting(id, allBaseOverrideDropPlayerItemSuperiors, baseSorting.getOverrideDropPlayerItemSuperiors()); + addSorting(id, allBaseOverrideDropPlayerItemInferiors, baseSorting.getOverrideDropPlayerItemInferiors()); + addSorting(id, allBaseAfterDropPlayerItemSuperiors, baseSorting.getAfterDropPlayerItemSuperiors()); + addSorting(id, allBaseAfterDropPlayerItemInferiors, baseSorting.getAfterDropPlayerItemInferiors()); + + 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, allBaseBeforeGetCurrentPlayerStrVsBlockSuperiors, baseSorting.getBeforeGetCurrentPlayerStrVsBlockSuperiors()); + addSorting(id, allBaseBeforeGetCurrentPlayerStrVsBlockInferiors, baseSorting.getBeforeGetCurrentPlayerStrVsBlockInferiors()); + addSorting(id, allBaseOverrideGetCurrentPlayerStrVsBlockSuperiors, baseSorting.getOverrideGetCurrentPlayerStrVsBlockSuperiors()); + addSorting(id, allBaseOverrideGetCurrentPlayerStrVsBlockInferiors, baseSorting.getOverrideGetCurrentPlayerStrVsBlockInferiors()); + addSorting(id, allBaseAfterGetCurrentPlayerStrVsBlockSuperiors, baseSorting.getAfterGetCurrentPlayerStrVsBlockSuperiors()); + addSorting(id, allBaseAfterGetCurrentPlayerStrVsBlockInferiors, baseSorting.getAfterGetCurrentPlayerStrVsBlockInferiors()); + + addSorting(id, allBaseBeforeGetCurrentPlayerStrVsBlockForgeSuperiors, baseSorting.getBeforeGetCurrentPlayerStrVsBlockForgeSuperiors()); + addSorting(id, allBaseBeforeGetCurrentPlayerStrVsBlockForgeInferiors, baseSorting.getBeforeGetCurrentPlayerStrVsBlockForgeInferiors()); + addSorting(id, allBaseOverrideGetCurrentPlayerStrVsBlockForgeSuperiors, baseSorting.getOverrideGetCurrentPlayerStrVsBlockForgeSuperiors()); + addSorting(id, allBaseOverrideGetCurrentPlayerStrVsBlockForgeInferiors, baseSorting.getOverrideGetCurrentPlayerStrVsBlockForgeInferiors()); + addSorting(id, allBaseAfterGetCurrentPlayerStrVsBlockForgeSuperiors, baseSorting.getAfterGetCurrentPlayerStrVsBlockForgeSuperiors()); + addSorting(id, allBaseAfterGetCurrentPlayerStrVsBlockForgeInferiors, baseSorting.getAfterGetCurrentPlayerStrVsBlockForgeInferiors()); + + 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, allBaseBeforeGetFOVMultiplierSuperiors, baseSorting.getBeforeGetFOVMultiplierSuperiors()); + addSorting(id, allBaseBeforeGetFOVMultiplierInferiors, baseSorting.getBeforeGetFOVMultiplierInferiors()); + addSorting(id, allBaseOverrideGetFOVMultiplierSuperiors, baseSorting.getOverrideGetFOVMultiplierSuperiors()); + addSorting(id, allBaseOverrideGetFOVMultiplierInferiors, baseSorting.getOverrideGetFOVMultiplierInferiors()); + addSorting(id, allBaseAfterGetFOVMultiplierSuperiors, baseSorting.getAfterGetFOVMultiplierSuperiors()); + addSorting(id, allBaseAfterGetFOVMultiplierInferiors, baseSorting.getAfterGetFOVMultiplierInferiors()); + + 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, allBaseBeforeGetItemIconSuperiors, baseSorting.getBeforeGetItemIconSuperiors()); + addSorting(id, allBaseBeforeGetItemIconInferiors, baseSorting.getBeforeGetItemIconInferiors()); + addSorting(id, allBaseOverrideGetItemIconSuperiors, baseSorting.getOverrideGetItemIconSuperiors()); + addSorting(id, allBaseOverrideGetItemIconInferiors, baseSorting.getOverrideGetItemIconInferiors()); + addSorting(id, allBaseAfterGetItemIconSuperiors, baseSorting.getAfterGetItemIconSuperiors()); + addSorting(id, allBaseAfterGetItemIconInferiors, baseSorting.getAfterGetItemIconInferiors()); + + 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, allBaseBeforeHandleLavaMovementSuperiors, baseSorting.getBeforeHandleLavaMovementSuperiors()); + addSorting(id, allBaseBeforeHandleLavaMovementInferiors, baseSorting.getBeforeHandleLavaMovementInferiors()); + addSorting(id, allBaseOverrideHandleLavaMovementSuperiors, baseSorting.getOverrideHandleLavaMovementSuperiors()); + addSorting(id, allBaseOverrideHandleLavaMovementInferiors, baseSorting.getOverrideHandleLavaMovementInferiors()); + addSorting(id, allBaseAfterHandleLavaMovementSuperiors, baseSorting.getAfterHandleLavaMovementSuperiors()); + addSorting(id, allBaseAfterHandleLavaMovementInferiors, baseSorting.getAfterHandleLavaMovementInferiors()); + + 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, allBaseBeforeSleepInBedAtSuperiors, baseSorting.getBeforeSleepInBedAtSuperiors()); + addSorting(id, allBaseBeforeSleepInBedAtInferiors, baseSorting.getBeforeSleepInBedAtInferiors()); + addSorting(id, allBaseOverrideSleepInBedAtSuperiors, baseSorting.getOverrideSleepInBedAtSuperiors()); + addSorting(id, allBaseOverrideSleepInBedAtInferiors, baseSorting.getOverrideSleepInBedAtInferiors()); + addSorting(id, allBaseAfterSleepInBedAtSuperiors, baseSorting.getAfterSleepInBedAtSuperiors()); + addSorting(id, allBaseAfterSleepInBedAtInferiors, baseSorting.getAfterSleepInBedAtInferiors()); + + 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.util.Session.class, int.class); + addMethod(id, baseClass, afterLocalConstructingHookTypes, "afterLocalConstructing", net.minecraft.client.Minecraft.class, net.minecraft.world.World.class, net.minecraft.util.Session.class, int.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", int.class, int.class, int.class, int.class, net.minecraft.item.ItemStack.class); + addMethod(id, baseClass, overrideCanPlayerEditHookTypes, "canPlayerEdit", int.class, int.class, int.class, int.class, net.minecraft.item.ItemStack.class); + addMethod(id, baseClass, afterCanPlayerEditHookTypes, "afterCanPlayerEdit", int.class, int.class, int.class, int.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, beforeDisplayGUIBrewingStandHookTypes, "beforeDisplayGUIBrewingStand", net.minecraft.tileentity.TileEntityBrewingStand.class); + addMethod(id, baseClass, overrideDisplayGUIBrewingStandHookTypes, "displayGUIBrewingStand", net.minecraft.tileentity.TileEntityBrewingStand.class); + addMethod(id, baseClass, afterDisplayGUIBrewingStandHookTypes, "afterDisplayGUIBrewingStand", net.minecraft.tileentity.TileEntityBrewingStand.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, beforeDisplayGUIDispenserHookTypes, "beforeDisplayGUIDispenser", net.minecraft.tileentity.TileEntityDispenser.class); + addMethod(id, baseClass, overrideDisplayGUIDispenserHookTypes, "displayGUIDispenser", net.minecraft.tileentity.TileEntityDispenser.class); + addMethod(id, baseClass, afterDisplayGUIDispenserHookTypes, "afterDisplayGUIDispenser", net.minecraft.tileentity.TileEntityDispenser.class); + + addMethod(id, baseClass, beforeDisplayGUIEditSignHookTypes, "beforeDisplayGUIEditSign", net.minecraft.tileentity.TileEntity.class); + addMethod(id, baseClass, overrideDisplayGUIEditSignHookTypes, "displayGUIEditSign", net.minecraft.tileentity.TileEntity.class); + addMethod(id, baseClass, afterDisplayGUIEditSignHookTypes, "afterDisplayGUIEditSign", net.minecraft.tileentity.TileEntity.class); + + addMethod(id, baseClass, beforeDisplayGUIEnchantmentHookTypes, "beforeDisplayGUIEnchantment", int.class, int.class, int.class, String.class); + addMethod(id, baseClass, overrideDisplayGUIEnchantmentHookTypes, "displayGUIEnchantment", int.class, int.class, int.class, String.class); + addMethod(id, baseClass, afterDisplayGUIEnchantmentHookTypes, "afterDisplayGUIEnchantment", int.class, int.class, int.class, String.class); + + addMethod(id, baseClass, beforeDisplayGUIFurnaceHookTypes, "beforeDisplayGUIFurnace", net.minecraft.tileentity.TileEntityFurnace.class); + addMethod(id, baseClass, overrideDisplayGUIFurnaceHookTypes, "displayGUIFurnace", net.minecraft.tileentity.TileEntityFurnace.class); + addMethod(id, baseClass, afterDisplayGUIFurnaceHookTypes, "afterDisplayGUIFurnace", net.minecraft.tileentity.TileEntityFurnace.class); + + addMethod(id, baseClass, beforeDisplayGUIWorkbenchHookTypes, "beforeDisplayGUIWorkbench", int.class, int.class, int.class); + addMethod(id, baseClass, overrideDisplayGUIWorkbenchHookTypes, "displayGUIWorkbench", int.class, int.class, int.class); + addMethod(id, baseClass, afterDisplayGUIWorkbenchHookTypes, "afterDisplayGUIWorkbench", int.class, int.class, int.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, beforeDropPlayerItemHookTypes, "beforeDropPlayerItem", net.minecraft.item.ItemStack.class, boolean.class); + addMethod(id, baseClass, overrideDropPlayerItemHookTypes, "dropPlayerItem", net.minecraft.item.ItemStack.class, boolean.class); + addMethod(id, baseClass, afterDropPlayerItemHookTypes, "afterDropPlayerItem", net.minecraft.item.ItemStack.class, boolean.class); + + addMethod(id, baseClass, beforeDropPlayerItemWithRandomChoiceHookTypes, "beforeDropPlayerItemWithRandomChoice", net.minecraft.item.ItemStack.class, boolean.class, boolean.class); + addMethod(id, baseClass, overrideDropPlayerItemWithRandomChoiceHookTypes, "dropPlayerItemWithRandomChoice", net.minecraft.item.ItemStack.class, boolean.class, boolean.class); + addMethod(id, baseClass, afterDropPlayerItemWithRandomChoiceHookTypes, "afterDropPlayerItemWithRandomChoice", net.minecraft.item.ItemStack.class, boolean.class, boolean.class); + + addMethod(id, baseClass, beforeFallHookTypes, "beforeFall", float.class); + addMethod(id, baseClass, overrideFallHookTypes, "fall", float.class); + addMethod(id, baseClass, afterFallHookTypes, "afterFall", 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, beforeGetCurrentPlayerStrVsBlockHookTypes, "beforeGetCurrentPlayerStrVsBlock", net.minecraft.block.Block.class, boolean.class); + addMethod(id, baseClass, overrideGetCurrentPlayerStrVsBlockHookTypes, "getCurrentPlayerStrVsBlock", net.minecraft.block.Block.class, boolean.class); + addMethod(id, baseClass, afterGetCurrentPlayerStrVsBlockHookTypes, "afterGetCurrentPlayerStrVsBlock", net.minecraft.block.Block.class, boolean.class); + + addMethod(id, baseClass, beforeGetCurrentPlayerStrVsBlockForgeHookTypes, "beforeGetCurrentPlayerStrVsBlockForge", net.minecraft.block.Block.class, boolean.class, int.class); + addMethod(id, baseClass, overrideGetCurrentPlayerStrVsBlockForgeHookTypes, "getCurrentPlayerStrVsBlockForge", net.minecraft.block.Block.class, boolean.class, int.class); + addMethod(id, baseClass, afterGetCurrentPlayerStrVsBlockForgeHookTypes, "afterGetCurrentPlayerStrVsBlockForge", net.minecraft.block.Block.class, boolean.class, int.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, beforeGetFOVMultiplierHookTypes, "beforeGetFOVMultiplier"); + addMethod(id, baseClass, overrideGetFOVMultiplierHookTypes, "getFOVMultiplier"); + addMethod(id, baseClass, afterGetFOVMultiplierHookTypes, "afterGetFOVMultiplier"); + + addMethod(id, baseClass, beforeGetHurtSoundHookTypes, "beforeGetHurtSound"); + addMethod(id, baseClass, overrideGetHurtSoundHookTypes, "getHurtSound"); + addMethod(id, baseClass, afterGetHurtSoundHookTypes, "afterGetHurtSound"); + + addMethod(id, baseClass, beforeGetItemIconHookTypes, "beforeGetItemIcon", net.minecraft.item.ItemStack.class, int.class); + addMethod(id, baseClass, overrideGetItemIconHookTypes, "getItemIcon", net.minecraft.item.ItemStack.class, int.class); + addMethod(id, baseClass, afterGetItemIconHookTypes, "afterGetItemIcon", net.minecraft.item.ItemStack.class, int.class); + + addMethod(id, baseClass, beforeGetSleepTimerHookTypes, "beforeGetSleepTimer"); + addMethod(id, baseClass, overrideGetSleepTimerHookTypes, "getSleepTimer"); + addMethod(id, baseClass, afterGetSleepTimerHookTypes, "afterGetSleepTimer"); + + addMethod(id, baseClass, beforeHandleLavaMovementHookTypes, "beforeHandleLavaMovement"); + addMethod(id, baseClass, overrideHandleLavaMovementHookTypes, "handleLavaMovement"); + addMethod(id, baseClass, afterHandleLavaMovementHookTypes, "afterHandleLavaMovement"); + + 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", int.class, int.class, int.class, net.minecraft.block.Block.class); + addMethod(id, baseClass, overridePlayStepSoundHookTypes, "playStepSound", int.class, int.class, int.class, net.minecraft.block.Block.class); + addMethod(id, baseClass, afterPlayStepSoundHookTypes, "afterPlayStepSound", int.class, int.class, int.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, beforeSleepInBedAtHookTypes, "beforeSleepInBedAt", int.class, int.class, int.class); + addMethod(id, baseClass, overrideSleepInBedAtHookTypes, "sleepInBedAt", int.class, int.class, int.class); + addMethod(id, baseClass, afterSleepInBedAtHookTypes, "afterSleepInBedAt", int.class, int.class, int.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); + + allBaseBeforeDisplayGUIBrewingStandSuperiors.remove(id); + allBaseBeforeDisplayGUIBrewingStandInferiors.remove(id); + allBaseOverrideDisplayGUIBrewingStandSuperiors.remove(id); + allBaseOverrideDisplayGUIBrewingStandInferiors.remove(id); + allBaseAfterDisplayGUIBrewingStandSuperiors.remove(id); + allBaseAfterDisplayGUIBrewingStandInferiors.remove(id); + + beforeDisplayGUIBrewingStandHookTypes.remove(id); + overrideDisplayGUIBrewingStandHookTypes.remove(id); + afterDisplayGUIBrewingStandHookTypes.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); + + allBaseBeforeDisplayGUIDispenserSuperiors.remove(id); + allBaseBeforeDisplayGUIDispenserInferiors.remove(id); + allBaseOverrideDisplayGUIDispenserSuperiors.remove(id); + allBaseOverrideDisplayGUIDispenserInferiors.remove(id); + allBaseAfterDisplayGUIDispenserSuperiors.remove(id); + allBaseAfterDisplayGUIDispenserInferiors.remove(id); + + beforeDisplayGUIDispenserHookTypes.remove(id); + overrideDisplayGUIDispenserHookTypes.remove(id); + afterDisplayGUIDispenserHookTypes.remove(id); + + allBaseBeforeDisplayGUIEditSignSuperiors.remove(id); + allBaseBeforeDisplayGUIEditSignInferiors.remove(id); + allBaseOverrideDisplayGUIEditSignSuperiors.remove(id); + allBaseOverrideDisplayGUIEditSignInferiors.remove(id); + allBaseAfterDisplayGUIEditSignSuperiors.remove(id); + allBaseAfterDisplayGUIEditSignInferiors.remove(id); + + beforeDisplayGUIEditSignHookTypes.remove(id); + overrideDisplayGUIEditSignHookTypes.remove(id); + afterDisplayGUIEditSignHookTypes.remove(id); + + allBaseBeforeDisplayGUIEnchantmentSuperiors.remove(id); + allBaseBeforeDisplayGUIEnchantmentInferiors.remove(id); + allBaseOverrideDisplayGUIEnchantmentSuperiors.remove(id); + allBaseOverrideDisplayGUIEnchantmentInferiors.remove(id); + allBaseAfterDisplayGUIEnchantmentSuperiors.remove(id); + allBaseAfterDisplayGUIEnchantmentInferiors.remove(id); + + beforeDisplayGUIEnchantmentHookTypes.remove(id); + overrideDisplayGUIEnchantmentHookTypes.remove(id); + afterDisplayGUIEnchantmentHookTypes.remove(id); + + allBaseBeforeDisplayGUIFurnaceSuperiors.remove(id); + allBaseBeforeDisplayGUIFurnaceInferiors.remove(id); + allBaseOverrideDisplayGUIFurnaceSuperiors.remove(id); + allBaseOverrideDisplayGUIFurnaceInferiors.remove(id); + allBaseAfterDisplayGUIFurnaceSuperiors.remove(id); + allBaseAfterDisplayGUIFurnaceInferiors.remove(id); + + beforeDisplayGUIFurnaceHookTypes.remove(id); + overrideDisplayGUIFurnaceHookTypes.remove(id); + afterDisplayGUIFurnaceHookTypes.remove(id); + + allBaseBeforeDisplayGUIWorkbenchSuperiors.remove(id); + allBaseBeforeDisplayGUIWorkbenchInferiors.remove(id); + allBaseOverrideDisplayGUIWorkbenchSuperiors.remove(id); + allBaseOverrideDisplayGUIWorkbenchInferiors.remove(id); + allBaseAfterDisplayGUIWorkbenchSuperiors.remove(id); + allBaseAfterDisplayGUIWorkbenchInferiors.remove(id); + + beforeDisplayGUIWorkbenchHookTypes.remove(id); + overrideDisplayGUIWorkbenchHookTypes.remove(id); + afterDisplayGUIWorkbenchHookTypes.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); + + allBaseBeforeDropPlayerItemSuperiors.remove(id); + allBaseBeforeDropPlayerItemInferiors.remove(id); + allBaseOverrideDropPlayerItemSuperiors.remove(id); + allBaseOverrideDropPlayerItemInferiors.remove(id); + allBaseAfterDropPlayerItemSuperiors.remove(id); + allBaseAfterDropPlayerItemInferiors.remove(id); + + beforeDropPlayerItemHookTypes.remove(id); + overrideDropPlayerItemHookTypes.remove(id); + afterDropPlayerItemHookTypes.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); + + allBaseBeforeGetCurrentPlayerStrVsBlockSuperiors.remove(id); + allBaseBeforeGetCurrentPlayerStrVsBlockInferiors.remove(id); + allBaseOverrideGetCurrentPlayerStrVsBlockSuperiors.remove(id); + allBaseOverrideGetCurrentPlayerStrVsBlockInferiors.remove(id); + allBaseAfterGetCurrentPlayerStrVsBlockSuperiors.remove(id); + allBaseAfterGetCurrentPlayerStrVsBlockInferiors.remove(id); + + beforeGetCurrentPlayerStrVsBlockHookTypes.remove(id); + overrideGetCurrentPlayerStrVsBlockHookTypes.remove(id); + afterGetCurrentPlayerStrVsBlockHookTypes.remove(id); + + allBaseBeforeGetCurrentPlayerStrVsBlockForgeSuperiors.remove(id); + allBaseBeforeGetCurrentPlayerStrVsBlockForgeInferiors.remove(id); + allBaseOverrideGetCurrentPlayerStrVsBlockForgeSuperiors.remove(id); + allBaseOverrideGetCurrentPlayerStrVsBlockForgeInferiors.remove(id); + allBaseAfterGetCurrentPlayerStrVsBlockForgeSuperiors.remove(id); + allBaseAfterGetCurrentPlayerStrVsBlockForgeInferiors.remove(id); + + beforeGetCurrentPlayerStrVsBlockForgeHookTypes.remove(id); + overrideGetCurrentPlayerStrVsBlockForgeHookTypes.remove(id); + afterGetCurrentPlayerStrVsBlockForgeHookTypes.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); + + allBaseBeforeGetFOVMultiplierSuperiors.remove(id); + allBaseBeforeGetFOVMultiplierInferiors.remove(id); + allBaseOverrideGetFOVMultiplierSuperiors.remove(id); + allBaseOverrideGetFOVMultiplierInferiors.remove(id); + allBaseAfterGetFOVMultiplierSuperiors.remove(id); + allBaseAfterGetFOVMultiplierInferiors.remove(id); + + beforeGetFOVMultiplierHookTypes.remove(id); + overrideGetFOVMultiplierHookTypes.remove(id); + afterGetFOVMultiplierHookTypes.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); + + allBaseBeforeGetItemIconSuperiors.remove(id); + allBaseBeforeGetItemIconInferiors.remove(id); + allBaseOverrideGetItemIconSuperiors.remove(id); + allBaseOverrideGetItemIconInferiors.remove(id); + allBaseAfterGetItemIconSuperiors.remove(id); + allBaseAfterGetItemIconInferiors.remove(id); + + beforeGetItemIconHookTypes.remove(id); + overrideGetItemIconHookTypes.remove(id); + afterGetItemIconHookTypes.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); + + allBaseBeforeHandleLavaMovementSuperiors.remove(id); + allBaseBeforeHandleLavaMovementInferiors.remove(id); + allBaseOverrideHandleLavaMovementSuperiors.remove(id); + allBaseOverrideHandleLavaMovementInferiors.remove(id); + allBaseAfterHandleLavaMovementSuperiors.remove(id); + allBaseAfterHandleLavaMovementInferiors.remove(id); + + beforeHandleLavaMovementHookTypes.remove(id); + overrideHandleLavaMovementHookTypes.remove(id); + afterHandleLavaMovementHookTypes.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); + + allBaseBeforeSleepInBedAtSuperiors.remove(id); + allBaseBeforeSleepInBedAtInferiors.remove(id); + allBaseOverrideSleepInBedAtSuperiors.remove(id); + allBaseOverrideSleepInBedAtInferiors.remove(id); + allBaseAfterSleepInBedAtSuperiors.remove(id); + allBaseAfterSleepInBedAtInferiors.remove(id); + + beforeSleepInBedAtHookTypes.remove(id); + overrideSleepInBedAtHookTypes.remove(id); + afterSleepInBedAtHookTypes.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 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> map) + { + Iterator keys = map.keySet().iterator(); + while(keys.hasNext()) + map.get(keys.next()).remove(id); + } + + public static Set getRegisteredIds() + { + return unmodifiableAllIds; + } + + private static void addSorting(String id, Map map, String[] values) + { + if(values != null && values.length > 0) + map.put(id, values); + } + + private static void addDynamicSorting(String id, Map> map, Map values) + { + if(values != null && values.size() > 0) + map.put(id, values); + } + + private static boolean addMethod(String id, Class baseClass, List 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 virtuals = null; + Map befores = null; + Map overrides = null; + Map afters = null; + + Method[] methods = baseClass.getDeclaredMethods(); + for(int i=0; i= 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, Map> dynamicHookMethods, Map> dynamicHookTypes) + { + Map methods = dynamicHookMethods.get(baseClass); + if(methods == null || methods.size() == 0) + return; + + Iterator keys = methods.keySet().iterator(); + while(keys.hasNext()) + { + String key = keys.next(); + if(!dynamicHookTypes.containsKey(key)) + dynamicHookTypes.put(key, new ArrayList(1)); + dynamicHookTypes.get(key).add(id); + } + } + + private static Map addDynamicMethod(String key, Method method, Map methods) + { + if(methods == null) + methods = new HashMap(); + 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 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(beforeDisplayGUIBrewingStandHookTypes, allBaseBeforeDisplayGUIBrewingStandSuperiors, allBaseBeforeDisplayGUIBrewingStandInferiors, "beforeDisplayGUIBrewingStand"); + sortBases(overrideDisplayGUIBrewingStandHookTypes, allBaseOverrideDisplayGUIBrewingStandSuperiors, allBaseOverrideDisplayGUIBrewingStandInferiors, "overrideDisplayGUIBrewingStand"); + sortBases(afterDisplayGUIBrewingStandHookTypes, allBaseAfterDisplayGUIBrewingStandSuperiors, allBaseAfterDisplayGUIBrewingStandInferiors, "afterDisplayGUIBrewingStand"); + + sortBases(beforeDisplayGUIChestHookTypes, allBaseBeforeDisplayGUIChestSuperiors, allBaseBeforeDisplayGUIChestInferiors, "beforeDisplayGUIChest"); + sortBases(overrideDisplayGUIChestHookTypes, allBaseOverrideDisplayGUIChestSuperiors, allBaseOverrideDisplayGUIChestInferiors, "overrideDisplayGUIChest"); + sortBases(afterDisplayGUIChestHookTypes, allBaseAfterDisplayGUIChestSuperiors, allBaseAfterDisplayGUIChestInferiors, "afterDisplayGUIChest"); + + sortBases(beforeDisplayGUIDispenserHookTypes, allBaseBeforeDisplayGUIDispenserSuperiors, allBaseBeforeDisplayGUIDispenserInferiors, "beforeDisplayGUIDispenser"); + sortBases(overrideDisplayGUIDispenserHookTypes, allBaseOverrideDisplayGUIDispenserSuperiors, allBaseOverrideDisplayGUIDispenserInferiors, "overrideDisplayGUIDispenser"); + sortBases(afterDisplayGUIDispenserHookTypes, allBaseAfterDisplayGUIDispenserSuperiors, allBaseAfterDisplayGUIDispenserInferiors, "afterDisplayGUIDispenser"); + + sortBases(beforeDisplayGUIEditSignHookTypes, allBaseBeforeDisplayGUIEditSignSuperiors, allBaseBeforeDisplayGUIEditSignInferiors, "beforeDisplayGUIEditSign"); + sortBases(overrideDisplayGUIEditSignHookTypes, allBaseOverrideDisplayGUIEditSignSuperiors, allBaseOverrideDisplayGUIEditSignInferiors, "overrideDisplayGUIEditSign"); + sortBases(afterDisplayGUIEditSignHookTypes, allBaseAfterDisplayGUIEditSignSuperiors, allBaseAfterDisplayGUIEditSignInferiors, "afterDisplayGUIEditSign"); + + sortBases(beforeDisplayGUIEnchantmentHookTypes, allBaseBeforeDisplayGUIEnchantmentSuperiors, allBaseBeforeDisplayGUIEnchantmentInferiors, "beforeDisplayGUIEnchantment"); + sortBases(overrideDisplayGUIEnchantmentHookTypes, allBaseOverrideDisplayGUIEnchantmentSuperiors, allBaseOverrideDisplayGUIEnchantmentInferiors, "overrideDisplayGUIEnchantment"); + sortBases(afterDisplayGUIEnchantmentHookTypes, allBaseAfterDisplayGUIEnchantmentSuperiors, allBaseAfterDisplayGUIEnchantmentInferiors, "afterDisplayGUIEnchantment"); + + sortBases(beforeDisplayGUIFurnaceHookTypes, allBaseBeforeDisplayGUIFurnaceSuperiors, allBaseBeforeDisplayGUIFurnaceInferiors, "beforeDisplayGUIFurnace"); + sortBases(overrideDisplayGUIFurnaceHookTypes, allBaseOverrideDisplayGUIFurnaceSuperiors, allBaseOverrideDisplayGUIFurnaceInferiors, "overrideDisplayGUIFurnace"); + sortBases(afterDisplayGUIFurnaceHookTypes, allBaseAfterDisplayGUIFurnaceSuperiors, allBaseAfterDisplayGUIFurnaceInferiors, "afterDisplayGUIFurnace"); + + sortBases(beforeDisplayGUIWorkbenchHookTypes, allBaseBeforeDisplayGUIWorkbenchSuperiors, allBaseBeforeDisplayGUIWorkbenchInferiors, "beforeDisplayGUIWorkbench"); + sortBases(overrideDisplayGUIWorkbenchHookTypes, allBaseOverrideDisplayGUIWorkbenchSuperiors, allBaseOverrideDisplayGUIWorkbenchInferiors, "overrideDisplayGUIWorkbench"); + sortBases(afterDisplayGUIWorkbenchHookTypes, allBaseAfterDisplayGUIWorkbenchSuperiors, allBaseAfterDisplayGUIWorkbenchInferiors, "afterDisplayGUIWorkbench"); + + sortBases(beforeDropOneItemHookTypes, allBaseBeforeDropOneItemSuperiors, allBaseBeforeDropOneItemInferiors, "beforeDropOneItem"); + sortBases(overrideDropOneItemHookTypes, allBaseOverrideDropOneItemSuperiors, allBaseOverrideDropOneItemInferiors, "overrideDropOneItem"); + sortBases(afterDropOneItemHookTypes, allBaseAfterDropOneItemSuperiors, allBaseAfterDropOneItemInferiors, "afterDropOneItem"); + + sortBases(beforeDropPlayerItemHookTypes, allBaseBeforeDropPlayerItemSuperiors, allBaseBeforeDropPlayerItemInferiors, "beforeDropPlayerItem"); + sortBases(overrideDropPlayerItemHookTypes, allBaseOverrideDropPlayerItemSuperiors, allBaseOverrideDropPlayerItemInferiors, "overrideDropPlayerItem"); + sortBases(afterDropPlayerItemHookTypes, allBaseAfterDropPlayerItemSuperiors, allBaseAfterDropPlayerItemInferiors, "afterDropPlayerItem"); + + 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(beforeGetCurrentPlayerStrVsBlockHookTypes, allBaseBeforeGetCurrentPlayerStrVsBlockSuperiors, allBaseBeforeGetCurrentPlayerStrVsBlockInferiors, "beforeGetCurrentPlayerStrVsBlock"); + sortBases(overrideGetCurrentPlayerStrVsBlockHookTypes, allBaseOverrideGetCurrentPlayerStrVsBlockSuperiors, allBaseOverrideGetCurrentPlayerStrVsBlockInferiors, "overrideGetCurrentPlayerStrVsBlock"); + sortBases(afterGetCurrentPlayerStrVsBlockHookTypes, allBaseAfterGetCurrentPlayerStrVsBlockSuperiors, allBaseAfterGetCurrentPlayerStrVsBlockInferiors, "afterGetCurrentPlayerStrVsBlock"); + + sortBases(beforeGetCurrentPlayerStrVsBlockForgeHookTypes, allBaseBeforeGetCurrentPlayerStrVsBlockForgeSuperiors, allBaseBeforeGetCurrentPlayerStrVsBlockForgeInferiors, "beforeGetCurrentPlayerStrVsBlockForge"); + sortBases(overrideGetCurrentPlayerStrVsBlockForgeHookTypes, allBaseOverrideGetCurrentPlayerStrVsBlockForgeSuperiors, allBaseOverrideGetCurrentPlayerStrVsBlockForgeInferiors, "overrideGetCurrentPlayerStrVsBlockForge"); + sortBases(afterGetCurrentPlayerStrVsBlockForgeHookTypes, allBaseAfterGetCurrentPlayerStrVsBlockForgeSuperiors, allBaseAfterGetCurrentPlayerStrVsBlockForgeInferiors, "afterGetCurrentPlayerStrVsBlockForge"); + + 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(beforeGetFOVMultiplierHookTypes, allBaseBeforeGetFOVMultiplierSuperiors, allBaseBeforeGetFOVMultiplierInferiors, "beforeGetFOVMultiplier"); + sortBases(overrideGetFOVMultiplierHookTypes, allBaseOverrideGetFOVMultiplierSuperiors, allBaseOverrideGetFOVMultiplierInferiors, "overrideGetFOVMultiplier"); + sortBases(afterGetFOVMultiplierHookTypes, allBaseAfterGetFOVMultiplierSuperiors, allBaseAfterGetFOVMultiplierInferiors, "afterGetFOVMultiplier"); + + sortBases(beforeGetHurtSoundHookTypes, allBaseBeforeGetHurtSoundSuperiors, allBaseBeforeGetHurtSoundInferiors, "beforeGetHurtSound"); + sortBases(overrideGetHurtSoundHookTypes, allBaseOverrideGetHurtSoundSuperiors, allBaseOverrideGetHurtSoundInferiors, "overrideGetHurtSound"); + sortBases(afterGetHurtSoundHookTypes, allBaseAfterGetHurtSoundSuperiors, allBaseAfterGetHurtSoundInferiors, "afterGetHurtSound"); + + sortBases(beforeGetItemIconHookTypes, allBaseBeforeGetItemIconSuperiors, allBaseBeforeGetItemIconInferiors, "beforeGetItemIcon"); + sortBases(overrideGetItemIconHookTypes, allBaseOverrideGetItemIconSuperiors, allBaseOverrideGetItemIconInferiors, "overrideGetItemIcon"); + sortBases(afterGetItemIconHookTypes, allBaseAfterGetItemIconSuperiors, allBaseAfterGetItemIconInferiors, "afterGetItemIcon"); + + sortBases(beforeGetSleepTimerHookTypes, allBaseBeforeGetSleepTimerSuperiors, allBaseBeforeGetSleepTimerInferiors, "beforeGetSleepTimer"); + sortBases(overrideGetSleepTimerHookTypes, allBaseOverrideGetSleepTimerSuperiors, allBaseOverrideGetSleepTimerInferiors, "overrideGetSleepTimer"); + sortBases(afterGetSleepTimerHookTypes, allBaseAfterGetSleepTimerSuperiors, allBaseAfterGetSleepTimerInferiors, "afterGetSleepTimer"); + + sortBases(beforeHandleLavaMovementHookTypes, allBaseBeforeHandleLavaMovementSuperiors, allBaseBeforeHandleLavaMovementInferiors, "beforeHandleLavaMovement"); + sortBases(overrideHandleLavaMovementHookTypes, allBaseOverrideHandleLavaMovementSuperiors, allBaseOverrideHandleLavaMovementInferiors, "overrideHandleLavaMovement"); + sortBases(afterHandleLavaMovementHookTypes, allBaseAfterHandleLavaMovementSuperiors, allBaseAfterHandleLavaMovementInferiors, "afterHandleLavaMovement"); + + 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(beforeSleepInBedAtHookTypes, allBaseBeforeSleepInBedAtSuperiors, allBaseBeforeSleepInBedAtInferiors, "beforeSleepInBedAt"); + sortBases(overrideSleepInBedAtHookTypes, allBaseOverrideSleepInBedAtSuperiors, allBaseOverrideSleepInBedAtInferiors, "overrideSleepInBedAt"); + sortBases(afterSleepInBedAtHookTypes, allBaseAfterSleepInBedAtSuperiors, allBaseAfterSleepInBedAtInferiors, "afterSleepInBedAt"); + + 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 getAllInstancesList() + { + List result = new ArrayList(); + 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 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.util.Session paramSession, int paramInt) + { + ClientPlayerAPI clientPlayerAPI = clientPlayer.getClientPlayerAPI(); + if(clientPlayerAPI != null) + clientPlayerAPI.load(); + + if(clientPlayerAPI != null) + clientPlayerAPI.beforeLocalConstructing(paramMinecraft, paramWorld, paramSession, paramInt); + } + + public static void afterLocalConstructing(IClientPlayerAPI clientPlayer, net.minecraft.client.Minecraft paramMinecraft, net.minecraft.world.World paramWorld, net.minecraft.util.Session paramSession, int paramInt) + { + ClientPlayerAPI clientPlayerAPI = clientPlayer.getClientPlayerAPI(); + if(clientPlayerAPI != null) + clientPlayerAPI.afterLocalConstructing(paramMinecraft, paramWorld, paramSession, paramInt); + } + + public static ClientPlayerBase getClientPlayerBase(IClientPlayerAPI clientPlayer, String baseId) + { + ClientPlayerAPI clientPlayerAPI = clientPlayer.getClientPlayerAPI(); + if(clientPlayerAPI != null) + return clientPlayerAPI.getClientPlayerBase(baseId); + return null; + } + + public static Set getClientPlayerBaseIds(IClientPlayerAPI clientPlayer) + { + ClientPlayerAPI clientPlayerAPI = clientPlayer.getClientPlayerAPI(); + Set result = null; + if(clientPlayerAPI != null) + result = clientPlayerAPI.getClientPlayerBaseIds(); + else + result = Collections.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 list, Map allBaseSuperiors, Map allBaseInferiors, String methodName) + { + new ClientPlayerBaseSorter(list, allBaseSuperiors, allBaseInferiors, methodName).Sort(); + } + + private final static Map EmptySortMap = Collections.unmodifiableMap(new HashMap()); + + private static void sortDynamicBases(Map> lists, Map> allBaseSuperiors, Map> allBaseInferiors, String key) + { + List types = lists.get(key); + if(types != null && types.size() > 1) + sortBases(types, getDynamicSorters(key, types, allBaseSuperiors), getDynamicSorters(key, types, allBaseInferiors), key); + } + + private static Map getDynamicSorters(String key, List toSort, Map> allBaseValues) + { + Map superiors = null; + + Iterator ids = toSort.iterator(); + while(ids.hasNext()) + { + String id = ids.next(); + Map 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(1); + superiors.put(id, keySuperiorIds); + } + } + + return superiors != null ? superiors : EmptySortMap; + } + + private ClientPlayerAPI(IClientPlayerAPI player) + { + this.player = player; + } + + private void load() + { + Iterator 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; + + beforeDisplayGUIBrewingStandHooks = create(beforeDisplayGUIBrewingStandHookTypes); + overrideDisplayGUIBrewingStandHooks = create(overrideDisplayGUIBrewingStandHookTypes); + afterDisplayGUIBrewingStandHooks = create(afterDisplayGUIBrewingStandHookTypes); + isDisplayGUIBrewingStandModded = + beforeDisplayGUIBrewingStandHooks != null || + overrideDisplayGUIBrewingStandHooks != null || + afterDisplayGUIBrewingStandHooks != null; + + beforeDisplayGUIChestHooks = create(beforeDisplayGUIChestHookTypes); + overrideDisplayGUIChestHooks = create(overrideDisplayGUIChestHookTypes); + afterDisplayGUIChestHooks = create(afterDisplayGUIChestHookTypes); + isDisplayGUIChestModded = + beforeDisplayGUIChestHooks != null || + overrideDisplayGUIChestHooks != null || + afterDisplayGUIChestHooks != null; + + beforeDisplayGUIDispenserHooks = create(beforeDisplayGUIDispenserHookTypes); + overrideDisplayGUIDispenserHooks = create(overrideDisplayGUIDispenserHookTypes); + afterDisplayGUIDispenserHooks = create(afterDisplayGUIDispenserHookTypes); + isDisplayGUIDispenserModded = + beforeDisplayGUIDispenserHooks != null || + overrideDisplayGUIDispenserHooks != null || + afterDisplayGUIDispenserHooks != null; + + beforeDisplayGUIEditSignHooks = create(beforeDisplayGUIEditSignHookTypes); + overrideDisplayGUIEditSignHooks = create(overrideDisplayGUIEditSignHookTypes); + afterDisplayGUIEditSignHooks = create(afterDisplayGUIEditSignHookTypes); + isDisplayGUIEditSignModded = + beforeDisplayGUIEditSignHooks != null || + overrideDisplayGUIEditSignHooks != null || + afterDisplayGUIEditSignHooks != null; + + beforeDisplayGUIEnchantmentHooks = create(beforeDisplayGUIEnchantmentHookTypes); + overrideDisplayGUIEnchantmentHooks = create(overrideDisplayGUIEnchantmentHookTypes); + afterDisplayGUIEnchantmentHooks = create(afterDisplayGUIEnchantmentHookTypes); + isDisplayGUIEnchantmentModded = + beforeDisplayGUIEnchantmentHooks != null || + overrideDisplayGUIEnchantmentHooks != null || + afterDisplayGUIEnchantmentHooks != null; + + beforeDisplayGUIFurnaceHooks = create(beforeDisplayGUIFurnaceHookTypes); + overrideDisplayGUIFurnaceHooks = create(overrideDisplayGUIFurnaceHookTypes); + afterDisplayGUIFurnaceHooks = create(afterDisplayGUIFurnaceHookTypes); + isDisplayGUIFurnaceModded = + beforeDisplayGUIFurnaceHooks != null || + overrideDisplayGUIFurnaceHooks != null || + afterDisplayGUIFurnaceHooks != null; + + beforeDisplayGUIWorkbenchHooks = create(beforeDisplayGUIWorkbenchHookTypes); + overrideDisplayGUIWorkbenchHooks = create(overrideDisplayGUIWorkbenchHookTypes); + afterDisplayGUIWorkbenchHooks = create(afterDisplayGUIWorkbenchHookTypes); + isDisplayGUIWorkbenchModded = + beforeDisplayGUIWorkbenchHooks != null || + overrideDisplayGUIWorkbenchHooks != null || + afterDisplayGUIWorkbenchHooks != null; + + beforeDropOneItemHooks = create(beforeDropOneItemHookTypes); + overrideDropOneItemHooks = create(overrideDropOneItemHookTypes); + afterDropOneItemHooks = create(afterDropOneItemHookTypes); + isDropOneItemModded = + beforeDropOneItemHooks != null || + overrideDropOneItemHooks != null || + afterDropOneItemHooks != null; + + beforeDropPlayerItemHooks = create(beforeDropPlayerItemHookTypes); + overrideDropPlayerItemHooks = create(overrideDropPlayerItemHookTypes); + afterDropPlayerItemHooks = create(afterDropPlayerItemHookTypes); + isDropPlayerItemModded = + beforeDropPlayerItemHooks != null || + overrideDropPlayerItemHooks != null || + afterDropPlayerItemHooks != 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; + + beforeGetCurrentPlayerStrVsBlockHooks = create(beforeGetCurrentPlayerStrVsBlockHookTypes); + overrideGetCurrentPlayerStrVsBlockHooks = create(overrideGetCurrentPlayerStrVsBlockHookTypes); + afterGetCurrentPlayerStrVsBlockHooks = create(afterGetCurrentPlayerStrVsBlockHookTypes); + isGetCurrentPlayerStrVsBlockModded = + beforeGetCurrentPlayerStrVsBlockHooks != null || + overrideGetCurrentPlayerStrVsBlockHooks != null || + afterGetCurrentPlayerStrVsBlockHooks != null; + + beforeGetCurrentPlayerStrVsBlockForgeHooks = create(beforeGetCurrentPlayerStrVsBlockForgeHookTypes); + overrideGetCurrentPlayerStrVsBlockForgeHooks = create(overrideGetCurrentPlayerStrVsBlockForgeHookTypes); + afterGetCurrentPlayerStrVsBlockForgeHooks = create(afterGetCurrentPlayerStrVsBlockForgeHookTypes); + isGetCurrentPlayerStrVsBlockForgeModded = + beforeGetCurrentPlayerStrVsBlockForgeHooks != null || + overrideGetCurrentPlayerStrVsBlockForgeHooks != null || + afterGetCurrentPlayerStrVsBlockForgeHooks != 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; + + beforeGetFOVMultiplierHooks = create(beforeGetFOVMultiplierHookTypes); + overrideGetFOVMultiplierHooks = create(overrideGetFOVMultiplierHookTypes); + afterGetFOVMultiplierHooks = create(afterGetFOVMultiplierHookTypes); + isGetFOVMultiplierModded = + beforeGetFOVMultiplierHooks != null || + overrideGetFOVMultiplierHooks != null || + afterGetFOVMultiplierHooks != null; + + beforeGetHurtSoundHooks = create(beforeGetHurtSoundHookTypes); + overrideGetHurtSoundHooks = create(overrideGetHurtSoundHookTypes); + afterGetHurtSoundHooks = create(afterGetHurtSoundHookTypes); + isGetHurtSoundModded = + beforeGetHurtSoundHooks != null || + overrideGetHurtSoundHooks != null || + afterGetHurtSoundHooks != null; + + beforeGetItemIconHooks = create(beforeGetItemIconHookTypes); + overrideGetItemIconHooks = create(overrideGetItemIconHookTypes); + afterGetItemIconHooks = create(afterGetItemIconHookTypes); + isGetItemIconModded = + beforeGetItemIconHooks != null || + overrideGetItemIconHooks != null || + afterGetItemIconHooks != null; + + beforeGetSleepTimerHooks = create(beforeGetSleepTimerHookTypes); + overrideGetSleepTimerHooks = create(overrideGetSleepTimerHookTypes); + afterGetSleepTimerHooks = create(afterGetSleepTimerHookTypes); + isGetSleepTimerModded = + beforeGetSleepTimerHooks != null || + overrideGetSleepTimerHooks != null || + afterGetSleepTimerHooks != null; + + beforeHandleLavaMovementHooks = create(beforeHandleLavaMovementHookTypes); + overrideHandleLavaMovementHooks = create(overrideHandleLavaMovementHookTypes); + afterHandleLavaMovementHooks = create(afterHandleLavaMovementHookTypes); + isHandleLavaMovementModded = + beforeHandleLavaMovementHooks != null || + overrideHandleLavaMovementHooks != null || + afterHandleLavaMovementHooks != 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; + + beforeSleepInBedAtHooks = create(beforeSleepInBedAtHookTypes); + overrideSleepInBedAtHooks = create(overrideSleepInBedAtHookTypes); + afterSleepInBedAtHooks = create(afterSleepInBedAtHookTypes); + isSleepInBedAtModded = + beforeSleepInBedAtHooks != null || + overrideSleepInBedAtHooks != null || + afterSleepInBedAtHooks != 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 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.util.Session paramSession, int paramInt) + { + if(beforeLocalConstructingHooks != null) + for(int i = beforeLocalConstructingHooks.length - 1; i >= 0 ; i--) + beforeLocalConstructingHooks[i].beforeLocalConstructing(paramMinecraft, paramWorld, paramSession, paramInt); + beforeLocalConstructingHooks = null; + } + + private void afterLocalConstructing(net.minecraft.client.Minecraft paramMinecraft, net.minecraft.world.World paramWorld, net.minecraft.util.Session paramSession, int paramInt) + { + if(afterLocalConstructingHooks != null) + for(int i = 0; i < afterLocalConstructingHooks.length; i++) + afterLocalConstructingHooks[i].afterLocalConstructing(paramMinecraft, paramWorld, paramSession, paramInt); + afterLocalConstructingHooks = null; + } + + public ClientPlayerBase getClientPlayerBase(String id) + { + return allBaseObjects.get(id); + } + + public Set 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 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, Map> methodMap; + + if(id == null) + { + id = keysToVirtualIds.get(key); + if(id == null) + return null; + methodMap = virtualDynamicHookMethods; + } + else + methodMap = overrideDynamicHookMethods; + + Map 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> dynamicHookTypes, Map, Map> dynamicHookMethods, boolean reverse) + { + List 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 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 beforeAddExhaustionHookTypes = new LinkedList(); + private final static List overrideAddExhaustionHookTypes = new LinkedList(); + private final static List afterAddExhaustionHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeAddExhaustionHooks; + private ClientPlayerBase[] overrideAddExhaustionHooks; + private ClientPlayerBase[] afterAddExhaustionHooks; + + public boolean isAddExhaustionModded; + + private static final Map allBaseBeforeAddExhaustionSuperiors = new Hashtable(0); + private static final Map allBaseBeforeAddExhaustionInferiors = new Hashtable(0); + private static final Map allBaseOverrideAddExhaustionSuperiors = new Hashtable(0); + private static final Map allBaseOverrideAddExhaustionInferiors = new Hashtable(0); + private static final Map allBaseAfterAddExhaustionSuperiors = new Hashtable(0); + private static final Map allBaseAfterAddExhaustionInferiors = new Hashtable(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 beforeAddMovementStatHookTypes = new LinkedList(); + private final static List overrideAddMovementStatHookTypes = new LinkedList(); + private final static List afterAddMovementStatHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeAddMovementStatHooks; + private ClientPlayerBase[] overrideAddMovementStatHooks; + private ClientPlayerBase[] afterAddMovementStatHooks; + + public boolean isAddMovementStatModded; + + private static final Map allBaseBeforeAddMovementStatSuperiors = new Hashtable(0); + private static final Map allBaseBeforeAddMovementStatInferiors = new Hashtable(0); + private static final Map allBaseOverrideAddMovementStatSuperiors = new Hashtable(0); + private static final Map allBaseOverrideAddMovementStatInferiors = new Hashtable(0); + private static final Map allBaseAfterAddMovementStatSuperiors = new Hashtable(0); + private static final Map allBaseAfterAddMovementStatInferiors = new Hashtable(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 beforeAddStatHookTypes = new LinkedList(); + private final static List overrideAddStatHookTypes = new LinkedList(); + private final static List afterAddStatHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeAddStatHooks; + private ClientPlayerBase[] overrideAddStatHooks; + private ClientPlayerBase[] afterAddStatHooks; + + public boolean isAddStatModded; + + private static final Map allBaseBeforeAddStatSuperiors = new Hashtable(0); + private static final Map allBaseBeforeAddStatInferiors = new Hashtable(0); + private static final Map allBaseOverrideAddStatSuperiors = new Hashtable(0); + private static final Map allBaseOverrideAddStatInferiors = new Hashtable(0); + private static final Map allBaseAfterAddStatSuperiors = new Hashtable(0); + private static final Map allBaseAfterAddStatInferiors = new Hashtable(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 beforeAttackEntityFromHookTypes = new LinkedList(); + private final static List overrideAttackEntityFromHookTypes = new LinkedList(); + private final static List afterAttackEntityFromHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeAttackEntityFromHooks; + private ClientPlayerBase[] overrideAttackEntityFromHooks; + private ClientPlayerBase[] afterAttackEntityFromHooks; + + public boolean isAttackEntityFromModded; + + private static final Map allBaseBeforeAttackEntityFromSuperiors = new Hashtable(0); + private static final Map allBaseBeforeAttackEntityFromInferiors = new Hashtable(0); + private static final Map allBaseOverrideAttackEntityFromSuperiors = new Hashtable(0); + private static final Map allBaseOverrideAttackEntityFromInferiors = new Hashtable(0); + private static final Map allBaseAfterAttackEntityFromSuperiors = new Hashtable(0); + private static final Map allBaseAfterAttackEntityFromInferiors = new Hashtable(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 beforeAttackTargetEntityWithCurrentItemHookTypes = new LinkedList(); + private final static List overrideAttackTargetEntityWithCurrentItemHookTypes = new LinkedList(); + private final static List afterAttackTargetEntityWithCurrentItemHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeAttackTargetEntityWithCurrentItemHooks; + private ClientPlayerBase[] overrideAttackTargetEntityWithCurrentItemHooks; + private ClientPlayerBase[] afterAttackTargetEntityWithCurrentItemHooks; + + public boolean isAttackTargetEntityWithCurrentItemModded; + + private static final Map allBaseBeforeAttackTargetEntityWithCurrentItemSuperiors = new Hashtable(0); + private static final Map allBaseBeforeAttackTargetEntityWithCurrentItemInferiors = new Hashtable(0); + private static final Map allBaseOverrideAttackTargetEntityWithCurrentItemSuperiors = new Hashtable(0); + private static final Map allBaseOverrideAttackTargetEntityWithCurrentItemInferiors = new Hashtable(0); + private static final Map allBaseAfterAttackTargetEntityWithCurrentItemSuperiors = new Hashtable(0); + private static final Map allBaseAfterAttackTargetEntityWithCurrentItemInferiors = new Hashtable(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 beforeCanBreatheUnderwaterHookTypes = new LinkedList(); + private final static List overrideCanBreatheUnderwaterHookTypes = new LinkedList(); + private final static List afterCanBreatheUnderwaterHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeCanBreatheUnderwaterHooks; + private ClientPlayerBase[] overrideCanBreatheUnderwaterHooks; + private ClientPlayerBase[] afterCanBreatheUnderwaterHooks; + + public boolean isCanBreatheUnderwaterModded; + + private static final Map allBaseBeforeCanBreatheUnderwaterSuperiors = new Hashtable(0); + private static final Map allBaseBeforeCanBreatheUnderwaterInferiors = new Hashtable(0); + private static final Map allBaseOverrideCanBreatheUnderwaterSuperiors = new Hashtable(0); + private static final Map allBaseOverrideCanBreatheUnderwaterInferiors = new Hashtable(0); + private static final Map allBaseAfterCanBreatheUnderwaterSuperiors = new Hashtable(0); + private static final Map allBaseAfterCanBreatheUnderwaterInferiors = new Hashtable(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 beforeCanHarvestBlockHookTypes = new LinkedList(); + private final static List overrideCanHarvestBlockHookTypes = new LinkedList(); + private final static List afterCanHarvestBlockHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeCanHarvestBlockHooks; + private ClientPlayerBase[] overrideCanHarvestBlockHooks; + private ClientPlayerBase[] afterCanHarvestBlockHooks; + + public boolean isCanHarvestBlockModded; + + private static final Map allBaseBeforeCanHarvestBlockSuperiors = new Hashtable(0); + private static final Map allBaseBeforeCanHarvestBlockInferiors = new Hashtable(0); + private static final Map allBaseOverrideCanHarvestBlockSuperiors = new Hashtable(0); + private static final Map allBaseOverrideCanHarvestBlockInferiors = new Hashtable(0); + private static final Map allBaseAfterCanHarvestBlockSuperiors = new Hashtable(0); + private static final Map allBaseAfterCanHarvestBlockInferiors = new Hashtable(0); + + public static boolean canPlayerEdit(IClientPlayerAPI target, int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack) + { + boolean _result; + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isCanPlayerEditModded) + _result = clientPlayerAPI.canPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + else + _result = target.localCanPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + return _result; + } + + private boolean canPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack) + { + if(beforeCanPlayerEditHooks != null) + for(int i = beforeCanPlayerEditHooks.length - 1; i >= 0 ; i--) + beforeCanPlayerEditHooks[i].beforeCanPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + + boolean _result; + if(overrideCanPlayerEditHooks != null) + _result = overrideCanPlayerEditHooks[overrideCanPlayerEditHooks.length - 1].canPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + else + _result = player.localCanPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + + if(afterCanPlayerEditHooks != null) + for(int i = 0; i < afterCanPlayerEditHooks.length; i++) + afterCanPlayerEditHooks[i].afterCanPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, 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 beforeCanPlayerEditHookTypes = new LinkedList(); + private final static List overrideCanPlayerEditHookTypes = new LinkedList(); + private final static List afterCanPlayerEditHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeCanPlayerEditHooks; + private ClientPlayerBase[] overrideCanPlayerEditHooks; + private ClientPlayerBase[] afterCanPlayerEditHooks; + + public boolean isCanPlayerEditModded; + + private static final Map allBaseBeforeCanPlayerEditSuperiors = new Hashtable(0); + private static final Map allBaseBeforeCanPlayerEditInferiors = new Hashtable(0); + private static final Map allBaseOverrideCanPlayerEditSuperiors = new Hashtable(0); + private static final Map allBaseOverrideCanPlayerEditInferiors = new Hashtable(0); + private static final Map allBaseAfterCanPlayerEditSuperiors = new Hashtable(0); + private static final Map allBaseAfterCanPlayerEditInferiors = new Hashtable(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 beforeCanTriggerWalkingHookTypes = new LinkedList(); + private final static List overrideCanTriggerWalkingHookTypes = new LinkedList(); + private final static List afterCanTriggerWalkingHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeCanTriggerWalkingHooks; + private ClientPlayerBase[] overrideCanTriggerWalkingHooks; + private ClientPlayerBase[] afterCanTriggerWalkingHooks; + + public boolean isCanTriggerWalkingModded; + + private static final Map allBaseBeforeCanTriggerWalkingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeCanTriggerWalkingInferiors = new Hashtable(0); + private static final Map allBaseOverrideCanTriggerWalkingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideCanTriggerWalkingInferiors = new Hashtable(0); + private static final Map allBaseAfterCanTriggerWalkingSuperiors = new Hashtable(0); + private static final Map allBaseAfterCanTriggerWalkingInferiors = new Hashtable(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 beforeCloseScreenHookTypes = new LinkedList(); + private final static List overrideCloseScreenHookTypes = new LinkedList(); + private final static List afterCloseScreenHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeCloseScreenHooks; + private ClientPlayerBase[] overrideCloseScreenHooks; + private ClientPlayerBase[] afterCloseScreenHooks; + + public boolean isCloseScreenModded; + + private static final Map allBaseBeforeCloseScreenSuperiors = new Hashtable(0); + private static final Map allBaseBeforeCloseScreenInferiors = new Hashtable(0); + private static final Map allBaseOverrideCloseScreenSuperiors = new Hashtable(0); + private static final Map allBaseOverrideCloseScreenInferiors = new Hashtable(0); + private static final Map allBaseAfterCloseScreenSuperiors = new Hashtable(0); + private static final Map allBaseAfterCloseScreenInferiors = new Hashtable(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 beforeDamageEntityHookTypes = new LinkedList(); + private final static List overrideDamageEntityHookTypes = new LinkedList(); + private final static List afterDamageEntityHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeDamageEntityHooks; + private ClientPlayerBase[] overrideDamageEntityHooks; + private ClientPlayerBase[] afterDamageEntityHooks; + + public boolean isDamageEntityModded; + + private static final Map allBaseBeforeDamageEntitySuperiors = new Hashtable(0); + private static final Map allBaseBeforeDamageEntityInferiors = new Hashtable(0); + private static final Map allBaseOverrideDamageEntitySuperiors = new Hashtable(0); + private static final Map allBaseOverrideDamageEntityInferiors = new Hashtable(0); + private static final Map allBaseAfterDamageEntitySuperiors = new Hashtable(0); + private static final Map allBaseAfterDamageEntityInferiors = new Hashtable(0); + + public static void displayGUIBrewingStand(IClientPlayerAPI target, net.minecraft.tileentity.TileEntityBrewingStand paramTileEntityBrewingStand) + { + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isDisplayGUIBrewingStandModded) + clientPlayerAPI.displayGUIBrewingStand(paramTileEntityBrewingStand); + else + target.localDisplayGUIBrewingStand(paramTileEntityBrewingStand); + } + + private void displayGUIBrewingStand(net.minecraft.tileentity.TileEntityBrewingStand paramTileEntityBrewingStand) + { + if(beforeDisplayGUIBrewingStandHooks != null) + for(int i = beforeDisplayGUIBrewingStandHooks.length - 1; i >= 0 ; i--) + beforeDisplayGUIBrewingStandHooks[i].beforeDisplayGUIBrewingStand(paramTileEntityBrewingStand); + + if(overrideDisplayGUIBrewingStandHooks != null) + overrideDisplayGUIBrewingStandHooks[overrideDisplayGUIBrewingStandHooks.length - 1].displayGUIBrewingStand(paramTileEntityBrewingStand); + else + player.localDisplayGUIBrewingStand(paramTileEntityBrewingStand); + + if(afterDisplayGUIBrewingStandHooks != null) + for(int i = 0; i < afterDisplayGUIBrewingStandHooks.length; i++) + afterDisplayGUIBrewingStandHooks[i].afterDisplayGUIBrewingStand(paramTileEntityBrewingStand); + + } + + protected ClientPlayerBase GetOverwrittenDisplayGUIBrewingStand(ClientPlayerBase overWriter) + { + if (overrideDisplayGUIBrewingStandHooks == null) + return overWriter; + + for(int i = 0; i < overrideDisplayGUIBrewingStandHooks.length; i++) + if(overrideDisplayGUIBrewingStandHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideDisplayGUIBrewingStandHooks[i - 1]; + + return overWriter; + } + + private final static List beforeDisplayGUIBrewingStandHookTypes = new LinkedList(); + private final static List overrideDisplayGUIBrewingStandHookTypes = new LinkedList(); + private final static List afterDisplayGUIBrewingStandHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeDisplayGUIBrewingStandHooks; + private ClientPlayerBase[] overrideDisplayGUIBrewingStandHooks; + private ClientPlayerBase[] afterDisplayGUIBrewingStandHooks; + + public boolean isDisplayGUIBrewingStandModded; + + private static final Map allBaseBeforeDisplayGUIBrewingStandSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDisplayGUIBrewingStandInferiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIBrewingStandSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIBrewingStandInferiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIBrewingStandSuperiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIBrewingStandInferiors = new Hashtable(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 beforeDisplayGUIChestHookTypes = new LinkedList(); + private final static List overrideDisplayGUIChestHookTypes = new LinkedList(); + private final static List afterDisplayGUIChestHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeDisplayGUIChestHooks; + private ClientPlayerBase[] overrideDisplayGUIChestHooks; + private ClientPlayerBase[] afterDisplayGUIChestHooks; + + public boolean isDisplayGUIChestModded; + + private static final Map allBaseBeforeDisplayGUIChestSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDisplayGUIChestInferiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIChestSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIChestInferiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIChestSuperiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIChestInferiors = new Hashtable(0); + + public static void displayGUIDispenser(IClientPlayerAPI target, net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser) + { + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isDisplayGUIDispenserModded) + clientPlayerAPI.displayGUIDispenser(paramTileEntityDispenser); + else + target.localDisplayGUIDispenser(paramTileEntityDispenser); + } + + private void displayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser) + { + if(beforeDisplayGUIDispenserHooks != null) + for(int i = beforeDisplayGUIDispenserHooks.length - 1; i >= 0 ; i--) + beforeDisplayGUIDispenserHooks[i].beforeDisplayGUIDispenser(paramTileEntityDispenser); + + if(overrideDisplayGUIDispenserHooks != null) + overrideDisplayGUIDispenserHooks[overrideDisplayGUIDispenserHooks.length - 1].displayGUIDispenser(paramTileEntityDispenser); + else + player.localDisplayGUIDispenser(paramTileEntityDispenser); + + if(afterDisplayGUIDispenserHooks != null) + for(int i = 0; i < afterDisplayGUIDispenserHooks.length; i++) + afterDisplayGUIDispenserHooks[i].afterDisplayGUIDispenser(paramTileEntityDispenser); + + } + + protected ClientPlayerBase GetOverwrittenDisplayGUIDispenser(ClientPlayerBase overWriter) + { + if (overrideDisplayGUIDispenserHooks == null) + return overWriter; + + for(int i = 0; i < overrideDisplayGUIDispenserHooks.length; i++) + if(overrideDisplayGUIDispenserHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideDisplayGUIDispenserHooks[i - 1]; + + return overWriter; + } + + private final static List beforeDisplayGUIDispenserHookTypes = new LinkedList(); + private final static List overrideDisplayGUIDispenserHookTypes = new LinkedList(); + private final static List afterDisplayGUIDispenserHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeDisplayGUIDispenserHooks; + private ClientPlayerBase[] overrideDisplayGUIDispenserHooks; + private ClientPlayerBase[] afterDisplayGUIDispenserHooks; + + public boolean isDisplayGUIDispenserModded; + + private static final Map allBaseBeforeDisplayGUIDispenserSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDisplayGUIDispenserInferiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIDispenserSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIDispenserInferiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIDispenserSuperiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIDispenserInferiors = new Hashtable(0); + + public static void displayGUIEditSign(IClientPlayerAPI target, net.minecraft.tileentity.TileEntity paramTileEntity) + { + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isDisplayGUIEditSignModded) + clientPlayerAPI.displayGUIEditSign(paramTileEntity); + else + target.localDisplayGUIEditSign(paramTileEntity); + } + + private void displayGUIEditSign(net.minecraft.tileentity.TileEntity paramTileEntity) + { + if(beforeDisplayGUIEditSignHooks != null) + for(int i = beforeDisplayGUIEditSignHooks.length - 1; i >= 0 ; i--) + beforeDisplayGUIEditSignHooks[i].beforeDisplayGUIEditSign(paramTileEntity); + + if(overrideDisplayGUIEditSignHooks != null) + overrideDisplayGUIEditSignHooks[overrideDisplayGUIEditSignHooks.length - 1].displayGUIEditSign(paramTileEntity); + else + player.localDisplayGUIEditSign(paramTileEntity); + + if(afterDisplayGUIEditSignHooks != null) + for(int i = 0; i < afterDisplayGUIEditSignHooks.length; i++) + afterDisplayGUIEditSignHooks[i].afterDisplayGUIEditSign(paramTileEntity); + + } + + protected ClientPlayerBase GetOverwrittenDisplayGUIEditSign(ClientPlayerBase overWriter) + { + if (overrideDisplayGUIEditSignHooks == null) + return overWriter; + + for(int i = 0; i < overrideDisplayGUIEditSignHooks.length; i++) + if(overrideDisplayGUIEditSignHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideDisplayGUIEditSignHooks[i - 1]; + + return overWriter; + } + + private final static List beforeDisplayGUIEditSignHookTypes = new LinkedList(); + private final static List overrideDisplayGUIEditSignHookTypes = new LinkedList(); + private final static List afterDisplayGUIEditSignHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeDisplayGUIEditSignHooks; + private ClientPlayerBase[] overrideDisplayGUIEditSignHooks; + private ClientPlayerBase[] afterDisplayGUIEditSignHooks; + + public boolean isDisplayGUIEditSignModded; + + private static final Map allBaseBeforeDisplayGUIEditSignSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDisplayGUIEditSignInferiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIEditSignSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIEditSignInferiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIEditSignSuperiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIEditSignInferiors = new Hashtable(0); + + public static void displayGUIEnchantment(IClientPlayerAPI target, int paramInt1, int paramInt2, int paramInt3, String paramString) + { + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isDisplayGUIEnchantmentModded) + clientPlayerAPI.displayGUIEnchantment(paramInt1, paramInt2, paramInt3, paramString); + else + target.localDisplayGUIEnchantment(paramInt1, paramInt2, paramInt3, paramString); + } + + private void displayGUIEnchantment(int paramInt1, int paramInt2, int paramInt3, String paramString) + { + if(beforeDisplayGUIEnchantmentHooks != null) + for(int i = beforeDisplayGUIEnchantmentHooks.length - 1; i >= 0 ; i--) + beforeDisplayGUIEnchantmentHooks[i].beforeDisplayGUIEnchantment(paramInt1, paramInt2, paramInt3, paramString); + + if(overrideDisplayGUIEnchantmentHooks != null) + overrideDisplayGUIEnchantmentHooks[overrideDisplayGUIEnchantmentHooks.length - 1].displayGUIEnchantment(paramInt1, paramInt2, paramInt3, paramString); + else + player.localDisplayGUIEnchantment(paramInt1, paramInt2, paramInt3, paramString); + + if(afterDisplayGUIEnchantmentHooks != null) + for(int i = 0; i < afterDisplayGUIEnchantmentHooks.length; i++) + afterDisplayGUIEnchantmentHooks[i].afterDisplayGUIEnchantment(paramInt1, paramInt2, paramInt3, paramString); + + } + + protected ClientPlayerBase GetOverwrittenDisplayGUIEnchantment(ClientPlayerBase overWriter) + { + if (overrideDisplayGUIEnchantmentHooks == null) + return overWriter; + + for(int i = 0; i < overrideDisplayGUIEnchantmentHooks.length; i++) + if(overrideDisplayGUIEnchantmentHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideDisplayGUIEnchantmentHooks[i - 1]; + + return overWriter; + } + + private final static List beforeDisplayGUIEnchantmentHookTypes = new LinkedList(); + private final static List overrideDisplayGUIEnchantmentHookTypes = new LinkedList(); + private final static List afterDisplayGUIEnchantmentHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeDisplayGUIEnchantmentHooks; + private ClientPlayerBase[] overrideDisplayGUIEnchantmentHooks; + private ClientPlayerBase[] afterDisplayGUIEnchantmentHooks; + + public boolean isDisplayGUIEnchantmentModded; + + private static final Map allBaseBeforeDisplayGUIEnchantmentSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDisplayGUIEnchantmentInferiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIEnchantmentSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIEnchantmentInferiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIEnchantmentSuperiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIEnchantmentInferiors = new Hashtable(0); + + public static void displayGUIFurnace(IClientPlayerAPI target, net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace) + { + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isDisplayGUIFurnaceModded) + clientPlayerAPI.displayGUIFurnace(paramTileEntityFurnace); + else + target.localDisplayGUIFurnace(paramTileEntityFurnace); + } + + private void displayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace) + { + if(beforeDisplayGUIFurnaceHooks != null) + for(int i = beforeDisplayGUIFurnaceHooks.length - 1; i >= 0 ; i--) + beforeDisplayGUIFurnaceHooks[i].beforeDisplayGUIFurnace(paramTileEntityFurnace); + + if(overrideDisplayGUIFurnaceHooks != null) + overrideDisplayGUIFurnaceHooks[overrideDisplayGUIFurnaceHooks.length - 1].displayGUIFurnace(paramTileEntityFurnace); + else + player.localDisplayGUIFurnace(paramTileEntityFurnace); + + if(afterDisplayGUIFurnaceHooks != null) + for(int i = 0; i < afterDisplayGUIFurnaceHooks.length; i++) + afterDisplayGUIFurnaceHooks[i].afterDisplayGUIFurnace(paramTileEntityFurnace); + + } + + protected ClientPlayerBase GetOverwrittenDisplayGUIFurnace(ClientPlayerBase overWriter) + { + if (overrideDisplayGUIFurnaceHooks == null) + return overWriter; + + for(int i = 0; i < overrideDisplayGUIFurnaceHooks.length; i++) + if(overrideDisplayGUIFurnaceHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideDisplayGUIFurnaceHooks[i - 1]; + + return overWriter; + } + + private final static List beforeDisplayGUIFurnaceHookTypes = new LinkedList(); + private final static List overrideDisplayGUIFurnaceHookTypes = new LinkedList(); + private final static List afterDisplayGUIFurnaceHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeDisplayGUIFurnaceHooks; + private ClientPlayerBase[] overrideDisplayGUIFurnaceHooks; + private ClientPlayerBase[] afterDisplayGUIFurnaceHooks; + + public boolean isDisplayGUIFurnaceModded; + + private static final Map allBaseBeforeDisplayGUIFurnaceSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDisplayGUIFurnaceInferiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIFurnaceSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIFurnaceInferiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIFurnaceSuperiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIFurnaceInferiors = new Hashtable(0); + + public static void displayGUIWorkbench(IClientPlayerAPI target, int paramInt1, int paramInt2, int paramInt3) + { + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isDisplayGUIWorkbenchModded) + clientPlayerAPI.displayGUIWorkbench(paramInt1, paramInt2, paramInt3); + else + target.localDisplayGUIWorkbench(paramInt1, paramInt2, paramInt3); + } + + private void displayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3) + { + if(beforeDisplayGUIWorkbenchHooks != null) + for(int i = beforeDisplayGUIWorkbenchHooks.length - 1; i >= 0 ; i--) + beforeDisplayGUIWorkbenchHooks[i].beforeDisplayGUIWorkbench(paramInt1, paramInt2, paramInt3); + + if(overrideDisplayGUIWorkbenchHooks != null) + overrideDisplayGUIWorkbenchHooks[overrideDisplayGUIWorkbenchHooks.length - 1].displayGUIWorkbench(paramInt1, paramInt2, paramInt3); + else + player.localDisplayGUIWorkbench(paramInt1, paramInt2, paramInt3); + + if(afterDisplayGUIWorkbenchHooks != null) + for(int i = 0; i < afterDisplayGUIWorkbenchHooks.length; i++) + afterDisplayGUIWorkbenchHooks[i].afterDisplayGUIWorkbench(paramInt1, paramInt2, paramInt3); + + } + + protected ClientPlayerBase GetOverwrittenDisplayGUIWorkbench(ClientPlayerBase overWriter) + { + if (overrideDisplayGUIWorkbenchHooks == null) + return overWriter; + + for(int i = 0; i < overrideDisplayGUIWorkbenchHooks.length; i++) + if(overrideDisplayGUIWorkbenchHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideDisplayGUIWorkbenchHooks[i - 1]; + + return overWriter; + } + + private final static List beforeDisplayGUIWorkbenchHookTypes = new LinkedList(); + private final static List overrideDisplayGUIWorkbenchHookTypes = new LinkedList(); + private final static List afterDisplayGUIWorkbenchHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeDisplayGUIWorkbenchHooks; + private ClientPlayerBase[] overrideDisplayGUIWorkbenchHooks; + private ClientPlayerBase[] afterDisplayGUIWorkbenchHooks; + + public boolean isDisplayGUIWorkbenchModded; + + private static final Map allBaseBeforeDisplayGUIWorkbenchSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDisplayGUIWorkbenchInferiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIWorkbenchSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIWorkbenchInferiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIWorkbenchSuperiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIWorkbenchInferiors = new Hashtable(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 beforeDropOneItemHookTypes = new LinkedList(); + private final static List overrideDropOneItemHookTypes = new LinkedList(); + private final static List afterDropOneItemHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeDropOneItemHooks; + private ClientPlayerBase[] overrideDropOneItemHooks; + private ClientPlayerBase[] afterDropOneItemHooks; + + public boolean isDropOneItemModded; + + private static final Map allBaseBeforeDropOneItemSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDropOneItemInferiors = new Hashtable(0); + private static final Map allBaseOverrideDropOneItemSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDropOneItemInferiors = new Hashtable(0); + private static final Map allBaseAfterDropOneItemSuperiors = new Hashtable(0); + private static final Map allBaseAfterDropOneItemInferiors = new Hashtable(0); + + public static net.minecraft.entity.item.EntityItem dropPlayerItem(IClientPlayerAPI target, net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) + { + net.minecraft.entity.item.EntityItem _result; + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isDropPlayerItemModded) + _result = clientPlayerAPI.dropPlayerItem(paramItemStack, paramBoolean); + else + _result = target.localDropPlayerItem(paramItemStack, paramBoolean); + return _result; + } + + private net.minecraft.entity.item.EntityItem dropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) + { + if(beforeDropPlayerItemHooks != null) + for(int i = beforeDropPlayerItemHooks.length - 1; i >= 0 ; i--) + beforeDropPlayerItemHooks[i].beforeDropPlayerItem(paramItemStack, paramBoolean); + + net.minecraft.entity.item.EntityItem _result; + if(overrideDropPlayerItemHooks != null) + _result = overrideDropPlayerItemHooks[overrideDropPlayerItemHooks.length - 1].dropPlayerItem(paramItemStack, paramBoolean); + else + _result = player.localDropPlayerItem(paramItemStack, paramBoolean); + + if(afterDropPlayerItemHooks != null) + for(int i = 0; i < afterDropPlayerItemHooks.length; i++) + afterDropPlayerItemHooks[i].afterDropPlayerItem(paramItemStack, paramBoolean); + + return _result; + } + + protected ClientPlayerBase GetOverwrittenDropPlayerItem(ClientPlayerBase overWriter) + { + if (overrideDropPlayerItemHooks == null) + return overWriter; + + for(int i = 0; i < overrideDropPlayerItemHooks.length; i++) + if(overrideDropPlayerItemHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideDropPlayerItemHooks[i - 1]; + + return overWriter; + } + + private final static List beforeDropPlayerItemHookTypes = new LinkedList(); + private final static List overrideDropPlayerItemHookTypes = new LinkedList(); + private final static List afterDropPlayerItemHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeDropPlayerItemHooks; + private ClientPlayerBase[] overrideDropPlayerItemHooks; + private ClientPlayerBase[] afterDropPlayerItemHooks; + + public boolean isDropPlayerItemModded; + + private static final Map allBaseBeforeDropPlayerItemSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDropPlayerItemInferiors = new Hashtable(0); + private static final Map allBaseOverrideDropPlayerItemSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDropPlayerItemInferiors = new Hashtable(0); + private static final Map allBaseAfterDropPlayerItemSuperiors = new Hashtable(0); + private static final Map allBaseAfterDropPlayerItemInferiors = new Hashtable(0); + + public static net.minecraft.entity.item.EntityItem dropPlayerItemWithRandomChoice(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.isDropPlayerItemWithRandomChoiceModded) + _result = clientPlayerAPI.dropPlayerItemWithRandomChoice(paramItemStack, paramBoolean1, paramBoolean2); + else + _result = target.localDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean1, paramBoolean2); + return _result; + } + + private net.minecraft.entity.item.EntityItem dropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2) + { + if(beforeDropPlayerItemWithRandomChoiceHooks != null) + for(int i = beforeDropPlayerItemWithRandomChoiceHooks.length - 1; i >= 0 ; i--) + beforeDropPlayerItemWithRandomChoiceHooks[i].beforeDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean1, paramBoolean2); + + net.minecraft.entity.item.EntityItem _result; + if(overrideDropPlayerItemWithRandomChoiceHooks != null) + _result = overrideDropPlayerItemWithRandomChoiceHooks[overrideDropPlayerItemWithRandomChoiceHooks.length - 1].dropPlayerItemWithRandomChoice(paramItemStack, paramBoolean1, paramBoolean2); + else + _result = player.localDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean1, paramBoolean2); + + if(afterDropPlayerItemWithRandomChoiceHooks != null) + for(int i = 0; i < afterDropPlayerItemWithRandomChoiceHooks.length; i++) + afterDropPlayerItemWithRandomChoiceHooks[i].afterDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean1, paramBoolean2); + + 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 beforeDropPlayerItemWithRandomChoiceHookTypes = new LinkedList(); + private final static List overrideDropPlayerItemWithRandomChoiceHookTypes = new LinkedList(); + private final static List afterDropPlayerItemWithRandomChoiceHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeDropPlayerItemWithRandomChoiceHooks; + private ClientPlayerBase[] overrideDropPlayerItemWithRandomChoiceHooks; + private ClientPlayerBase[] afterDropPlayerItemWithRandomChoiceHooks; + + public boolean isDropPlayerItemWithRandomChoiceModded; + + private static final Map allBaseBeforeDropPlayerItemWithRandomChoiceSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDropPlayerItemWithRandomChoiceInferiors = new Hashtable(0); + private static final Map allBaseOverrideDropPlayerItemWithRandomChoiceSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDropPlayerItemWithRandomChoiceInferiors = new Hashtable(0); + private static final Map allBaseAfterDropPlayerItemWithRandomChoiceSuperiors = new Hashtable(0); + private static final Map allBaseAfterDropPlayerItemWithRandomChoiceInferiors = new Hashtable(0); + + public static void fall(IClientPlayerAPI target, float paramFloat) + { + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isFallModded) + clientPlayerAPI.fall(paramFloat); + else + target.localFall(paramFloat); + } + + private void fall(float paramFloat) + { + if(beforeFallHooks != null) + for(int i = beforeFallHooks.length - 1; i >= 0 ; i--) + beforeFallHooks[i].beforeFall(paramFloat); + + if(overrideFallHooks != null) + overrideFallHooks[overrideFallHooks.length - 1].fall(paramFloat); + else + player.localFall(paramFloat); + + if(afterFallHooks != null) + for(int i = 0; i < afterFallHooks.length; i++) + afterFallHooks[i].afterFall(paramFloat); + + } + + 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 beforeFallHookTypes = new LinkedList(); + private final static List overrideFallHookTypes = new LinkedList(); + private final static List afterFallHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeFallHooks; + private ClientPlayerBase[] overrideFallHooks; + private ClientPlayerBase[] afterFallHooks; + + public boolean isFallModded; + + private static final Map allBaseBeforeFallSuperiors = new Hashtable(0); + private static final Map allBaseBeforeFallInferiors = new Hashtable(0); + private static final Map allBaseOverrideFallSuperiors = new Hashtable(0); + private static final Map allBaseOverrideFallInferiors = new Hashtable(0); + private static final Map allBaseAfterFallSuperiors = new Hashtable(0); + private static final Map allBaseAfterFallInferiors = new Hashtable(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 beforeGetAIMoveSpeedHookTypes = new LinkedList(); + private final static List overrideGetAIMoveSpeedHookTypes = new LinkedList(); + private final static List afterGetAIMoveSpeedHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeGetAIMoveSpeedHooks; + private ClientPlayerBase[] overrideGetAIMoveSpeedHooks; + private ClientPlayerBase[] afterGetAIMoveSpeedHooks; + + public boolean isGetAIMoveSpeedModded; + + private static final Map allBaseBeforeGetAIMoveSpeedSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetAIMoveSpeedInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetAIMoveSpeedSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetAIMoveSpeedInferiors = new Hashtable(0); + private static final Map allBaseAfterGetAIMoveSpeedSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetAIMoveSpeedInferiors = new Hashtable(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 beforeGetBedOrientationInDegreesHookTypes = new LinkedList(); + private final static List overrideGetBedOrientationInDegreesHookTypes = new LinkedList(); + private final static List afterGetBedOrientationInDegreesHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeGetBedOrientationInDegreesHooks; + private ClientPlayerBase[] overrideGetBedOrientationInDegreesHooks; + private ClientPlayerBase[] afterGetBedOrientationInDegreesHooks; + + public boolean isGetBedOrientationInDegreesModded; + + private static final Map allBaseBeforeGetBedOrientationInDegreesSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetBedOrientationInDegreesInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetBedOrientationInDegreesSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetBedOrientationInDegreesInferiors = new Hashtable(0); + private static final Map allBaseAfterGetBedOrientationInDegreesSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetBedOrientationInDegreesInferiors = new Hashtable(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 beforeGetBrightnessHookTypes = new LinkedList(); + private final static List overrideGetBrightnessHookTypes = new LinkedList(); + private final static List afterGetBrightnessHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeGetBrightnessHooks; + private ClientPlayerBase[] overrideGetBrightnessHooks; + private ClientPlayerBase[] afterGetBrightnessHooks; + + public boolean isGetBrightnessModded; + + private static final Map allBaseBeforeGetBrightnessSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetBrightnessInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetBrightnessSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetBrightnessInferiors = new Hashtable(0); + private static final Map allBaseAfterGetBrightnessSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetBrightnessInferiors = new Hashtable(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 beforeGetBrightnessForRenderHookTypes = new LinkedList(); + private final static List overrideGetBrightnessForRenderHookTypes = new LinkedList(); + private final static List afterGetBrightnessForRenderHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeGetBrightnessForRenderHooks; + private ClientPlayerBase[] overrideGetBrightnessForRenderHooks; + private ClientPlayerBase[] afterGetBrightnessForRenderHooks; + + public boolean isGetBrightnessForRenderModded; + + private static final Map allBaseBeforeGetBrightnessForRenderSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetBrightnessForRenderInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetBrightnessForRenderSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetBrightnessForRenderInferiors = new Hashtable(0); + private static final Map allBaseAfterGetBrightnessForRenderSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetBrightnessForRenderInferiors = new Hashtable(0); + + public static float getCurrentPlayerStrVsBlock(IClientPlayerAPI target, net.minecraft.block.Block paramBlock, boolean paramBoolean) + { + float _result; + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isGetCurrentPlayerStrVsBlockModded) + _result = clientPlayerAPI.getCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + else + _result = target.localGetCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + return _result; + } + + private float getCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean) + { + if(beforeGetCurrentPlayerStrVsBlockHooks != null) + for(int i = beforeGetCurrentPlayerStrVsBlockHooks.length - 1; i >= 0 ; i--) + beforeGetCurrentPlayerStrVsBlockHooks[i].beforeGetCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + + float _result; + if(overrideGetCurrentPlayerStrVsBlockHooks != null) + _result = overrideGetCurrentPlayerStrVsBlockHooks[overrideGetCurrentPlayerStrVsBlockHooks.length - 1].getCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + else + _result = player.localGetCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + + if(afterGetCurrentPlayerStrVsBlockHooks != null) + for(int i = 0; i < afterGetCurrentPlayerStrVsBlockHooks.length; i++) + afterGetCurrentPlayerStrVsBlockHooks[i].afterGetCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + + return _result; + } + + protected ClientPlayerBase GetOverwrittenGetCurrentPlayerStrVsBlock(ClientPlayerBase overWriter) + { + if (overrideGetCurrentPlayerStrVsBlockHooks == null) + return overWriter; + + for(int i = 0; i < overrideGetCurrentPlayerStrVsBlockHooks.length; i++) + if(overrideGetCurrentPlayerStrVsBlockHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideGetCurrentPlayerStrVsBlockHooks[i - 1]; + + return overWriter; + } + + private final static List beforeGetCurrentPlayerStrVsBlockHookTypes = new LinkedList(); + private final static List overrideGetCurrentPlayerStrVsBlockHookTypes = new LinkedList(); + private final static List afterGetCurrentPlayerStrVsBlockHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeGetCurrentPlayerStrVsBlockHooks; + private ClientPlayerBase[] overrideGetCurrentPlayerStrVsBlockHooks; + private ClientPlayerBase[] afterGetCurrentPlayerStrVsBlockHooks; + + public boolean isGetCurrentPlayerStrVsBlockModded; + + private static final Map allBaseBeforeGetCurrentPlayerStrVsBlockSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetCurrentPlayerStrVsBlockInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetCurrentPlayerStrVsBlockSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetCurrentPlayerStrVsBlockInferiors = new Hashtable(0); + private static final Map allBaseAfterGetCurrentPlayerStrVsBlockSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetCurrentPlayerStrVsBlockInferiors = new Hashtable(0); + + public static float getCurrentPlayerStrVsBlockForge(IClientPlayerAPI target, net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt) + { + float _result; + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isGetCurrentPlayerStrVsBlockForgeModded) + _result = clientPlayerAPI.getCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + else + _result = target.localGetCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + return _result; + } + + private float getCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt) + { + if(beforeGetCurrentPlayerStrVsBlockForgeHooks != null) + for(int i = beforeGetCurrentPlayerStrVsBlockForgeHooks.length - 1; i >= 0 ; i--) + beforeGetCurrentPlayerStrVsBlockForgeHooks[i].beforeGetCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + + float _result; + if(overrideGetCurrentPlayerStrVsBlockForgeHooks != null) + _result = overrideGetCurrentPlayerStrVsBlockForgeHooks[overrideGetCurrentPlayerStrVsBlockForgeHooks.length - 1].getCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + else + _result = player.localGetCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + + if(afterGetCurrentPlayerStrVsBlockForgeHooks != null) + for(int i = 0; i < afterGetCurrentPlayerStrVsBlockForgeHooks.length; i++) + afterGetCurrentPlayerStrVsBlockForgeHooks[i].afterGetCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + + return _result; + } + + protected ClientPlayerBase GetOverwrittenGetCurrentPlayerStrVsBlockForge(ClientPlayerBase overWriter) + { + if (overrideGetCurrentPlayerStrVsBlockForgeHooks == null) + return overWriter; + + for(int i = 0; i < overrideGetCurrentPlayerStrVsBlockForgeHooks.length; i++) + if(overrideGetCurrentPlayerStrVsBlockForgeHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideGetCurrentPlayerStrVsBlockForgeHooks[i - 1]; + + return overWriter; + } + + private final static List beforeGetCurrentPlayerStrVsBlockForgeHookTypes = new LinkedList(); + private final static List overrideGetCurrentPlayerStrVsBlockForgeHookTypes = new LinkedList(); + private final static List afterGetCurrentPlayerStrVsBlockForgeHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeGetCurrentPlayerStrVsBlockForgeHooks; + private ClientPlayerBase[] overrideGetCurrentPlayerStrVsBlockForgeHooks; + private ClientPlayerBase[] afterGetCurrentPlayerStrVsBlockForgeHooks; + + public boolean isGetCurrentPlayerStrVsBlockForgeModded; + + private static final Map allBaseBeforeGetCurrentPlayerStrVsBlockForgeSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetCurrentPlayerStrVsBlockForgeInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetCurrentPlayerStrVsBlockForgeSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetCurrentPlayerStrVsBlockForgeInferiors = new Hashtable(0); + private static final Map allBaseAfterGetCurrentPlayerStrVsBlockForgeSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetCurrentPlayerStrVsBlockForgeInferiors = new Hashtable(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 beforeGetDistanceSqHookTypes = new LinkedList(); + private final static List overrideGetDistanceSqHookTypes = new LinkedList(); + private final static List afterGetDistanceSqHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeGetDistanceSqHooks; + private ClientPlayerBase[] overrideGetDistanceSqHooks; + private ClientPlayerBase[] afterGetDistanceSqHooks; + + public boolean isGetDistanceSqModded; + + private static final Map allBaseBeforeGetDistanceSqSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetDistanceSqInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetDistanceSqSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetDistanceSqInferiors = new Hashtable(0); + private static final Map allBaseAfterGetDistanceSqSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetDistanceSqInferiors = new Hashtable(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 beforeGetDistanceSqToEntityHookTypes = new LinkedList(); + private final static List overrideGetDistanceSqToEntityHookTypes = new LinkedList(); + private final static List afterGetDistanceSqToEntityHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeGetDistanceSqToEntityHooks; + private ClientPlayerBase[] overrideGetDistanceSqToEntityHooks; + private ClientPlayerBase[] afterGetDistanceSqToEntityHooks; + + public boolean isGetDistanceSqToEntityModded; + + private static final Map allBaseBeforeGetDistanceSqToEntitySuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetDistanceSqToEntityInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetDistanceSqToEntitySuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetDistanceSqToEntityInferiors = new Hashtable(0); + private static final Map allBaseAfterGetDistanceSqToEntitySuperiors = new Hashtable(0); + private static final Map allBaseAfterGetDistanceSqToEntityInferiors = new Hashtable(0); + + public static float getFOVMultiplier(IClientPlayerAPI target) + { + float _result; + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isGetFOVMultiplierModded) + _result = clientPlayerAPI.getFOVMultiplier(); + else + _result = target.localGetFOVMultiplier(); + return _result; + } + + private float getFOVMultiplier() + { + if(beforeGetFOVMultiplierHooks != null) + for(int i = beforeGetFOVMultiplierHooks.length - 1; i >= 0 ; i--) + beforeGetFOVMultiplierHooks[i].beforeGetFOVMultiplier(); + + float _result; + if(overrideGetFOVMultiplierHooks != null) + _result = overrideGetFOVMultiplierHooks[overrideGetFOVMultiplierHooks.length - 1].getFOVMultiplier(); + else + _result = player.localGetFOVMultiplier(); + + if(afterGetFOVMultiplierHooks != null) + for(int i = 0; i < afterGetFOVMultiplierHooks.length; i++) + afterGetFOVMultiplierHooks[i].afterGetFOVMultiplier(); + + return _result; + } + + protected ClientPlayerBase GetOverwrittenGetFOVMultiplier(ClientPlayerBase overWriter) + { + if (overrideGetFOVMultiplierHooks == null) + return overWriter; + + for(int i = 0; i < overrideGetFOVMultiplierHooks.length; i++) + if(overrideGetFOVMultiplierHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideGetFOVMultiplierHooks[i - 1]; + + return overWriter; + } + + private final static List beforeGetFOVMultiplierHookTypes = new LinkedList(); + private final static List overrideGetFOVMultiplierHookTypes = new LinkedList(); + private final static List afterGetFOVMultiplierHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeGetFOVMultiplierHooks; + private ClientPlayerBase[] overrideGetFOVMultiplierHooks; + private ClientPlayerBase[] afterGetFOVMultiplierHooks; + + public boolean isGetFOVMultiplierModded; + + private static final Map allBaseBeforeGetFOVMultiplierSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetFOVMultiplierInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetFOVMultiplierSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetFOVMultiplierInferiors = new Hashtable(0); + private static final Map allBaseAfterGetFOVMultiplierSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetFOVMultiplierInferiors = new Hashtable(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 beforeGetHurtSoundHookTypes = new LinkedList(); + private final static List overrideGetHurtSoundHookTypes = new LinkedList(); + private final static List afterGetHurtSoundHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeGetHurtSoundHooks; + private ClientPlayerBase[] overrideGetHurtSoundHooks; + private ClientPlayerBase[] afterGetHurtSoundHooks; + + public boolean isGetHurtSoundModded; + + private static final Map allBaseBeforeGetHurtSoundSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetHurtSoundInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetHurtSoundSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetHurtSoundInferiors = new Hashtable(0); + private static final Map allBaseAfterGetHurtSoundSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetHurtSoundInferiors = new Hashtable(0); + + public static net.minecraft.util.IIcon getItemIcon(IClientPlayerAPI target, net.minecraft.item.ItemStack paramItemStack, int paramInt) + { + net.minecraft.util.IIcon _result; + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isGetItemIconModded) + _result = clientPlayerAPI.getItemIcon(paramItemStack, paramInt); + else + _result = target.localGetItemIcon(paramItemStack, paramInt); + return _result; + } + + private net.minecraft.util.IIcon getItemIcon(net.minecraft.item.ItemStack paramItemStack, int paramInt) + { + if(beforeGetItemIconHooks != null) + for(int i = beforeGetItemIconHooks.length - 1; i >= 0 ; i--) + beforeGetItemIconHooks[i].beforeGetItemIcon(paramItemStack, paramInt); + + net.minecraft.util.IIcon _result; + if(overrideGetItemIconHooks != null) + _result = overrideGetItemIconHooks[overrideGetItemIconHooks.length - 1].getItemIcon(paramItemStack, paramInt); + else + _result = player.localGetItemIcon(paramItemStack, paramInt); + + if(afterGetItemIconHooks != null) + for(int i = 0; i < afterGetItemIconHooks.length; i++) + afterGetItemIconHooks[i].afterGetItemIcon(paramItemStack, paramInt); + + return _result; + } + + protected ClientPlayerBase GetOverwrittenGetItemIcon(ClientPlayerBase overWriter) + { + if (overrideGetItemIconHooks == null) + return overWriter; + + for(int i = 0; i < overrideGetItemIconHooks.length; i++) + if(overrideGetItemIconHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideGetItemIconHooks[i - 1]; + + return overWriter; + } + + private final static List beforeGetItemIconHookTypes = new LinkedList(); + private final static List overrideGetItemIconHookTypes = new LinkedList(); + private final static List afterGetItemIconHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeGetItemIconHooks; + private ClientPlayerBase[] overrideGetItemIconHooks; + private ClientPlayerBase[] afterGetItemIconHooks; + + public boolean isGetItemIconModded; + + private static final Map allBaseBeforeGetItemIconSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetItemIconInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetItemIconSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetItemIconInferiors = new Hashtable(0); + private static final Map allBaseAfterGetItemIconSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetItemIconInferiors = new Hashtable(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 beforeGetSleepTimerHookTypes = new LinkedList(); + private final static List overrideGetSleepTimerHookTypes = new LinkedList(); + private final static List afterGetSleepTimerHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeGetSleepTimerHooks; + private ClientPlayerBase[] overrideGetSleepTimerHooks; + private ClientPlayerBase[] afterGetSleepTimerHooks; + + public boolean isGetSleepTimerModded; + + private static final Map allBaseBeforeGetSleepTimerSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetSleepTimerInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetSleepTimerSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetSleepTimerInferiors = new Hashtable(0); + private static final Map allBaseAfterGetSleepTimerSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetSleepTimerInferiors = new Hashtable(0); + + public static boolean handleLavaMovement(IClientPlayerAPI target) + { + boolean _result; + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isHandleLavaMovementModded) + _result = clientPlayerAPI.handleLavaMovement(); + else + _result = target.localHandleLavaMovement(); + return _result; + } + + private boolean handleLavaMovement() + { + if(beforeHandleLavaMovementHooks != null) + for(int i = beforeHandleLavaMovementHooks.length - 1; i >= 0 ; i--) + beforeHandleLavaMovementHooks[i].beforeHandleLavaMovement(); + + boolean _result; + if(overrideHandleLavaMovementHooks != null) + _result = overrideHandleLavaMovementHooks[overrideHandleLavaMovementHooks.length - 1].handleLavaMovement(); + else + _result = player.localHandleLavaMovement(); + + if(afterHandleLavaMovementHooks != null) + for(int i = 0; i < afterHandleLavaMovementHooks.length; i++) + afterHandleLavaMovementHooks[i].afterHandleLavaMovement(); + + return _result; + } + + protected ClientPlayerBase GetOverwrittenHandleLavaMovement(ClientPlayerBase overWriter) + { + if (overrideHandleLavaMovementHooks == null) + return overWriter; + + for(int i = 0; i < overrideHandleLavaMovementHooks.length; i++) + if(overrideHandleLavaMovementHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideHandleLavaMovementHooks[i - 1]; + + return overWriter; + } + + private final static List beforeHandleLavaMovementHookTypes = new LinkedList(); + private final static List overrideHandleLavaMovementHookTypes = new LinkedList(); + private final static List afterHandleLavaMovementHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeHandleLavaMovementHooks; + private ClientPlayerBase[] overrideHandleLavaMovementHooks; + private ClientPlayerBase[] afterHandleLavaMovementHooks; + + public boolean isHandleLavaMovementModded; + + private static final Map allBaseBeforeHandleLavaMovementSuperiors = new Hashtable(0); + private static final Map allBaseBeforeHandleLavaMovementInferiors = new Hashtable(0); + private static final Map allBaseOverrideHandleLavaMovementSuperiors = new Hashtable(0); + private static final Map allBaseOverrideHandleLavaMovementInferiors = new Hashtable(0); + private static final Map allBaseAfterHandleLavaMovementSuperiors = new Hashtable(0); + private static final Map allBaseAfterHandleLavaMovementInferiors = new Hashtable(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 beforeHandleWaterMovementHookTypes = new LinkedList(); + private final static List overrideHandleWaterMovementHookTypes = new LinkedList(); + private final static List afterHandleWaterMovementHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeHandleWaterMovementHooks; + private ClientPlayerBase[] overrideHandleWaterMovementHooks; + private ClientPlayerBase[] afterHandleWaterMovementHooks; + + public boolean isHandleWaterMovementModded; + + private static final Map allBaseBeforeHandleWaterMovementSuperiors = new Hashtable(0); + private static final Map allBaseBeforeHandleWaterMovementInferiors = new Hashtable(0); + private static final Map allBaseOverrideHandleWaterMovementSuperiors = new Hashtable(0); + private static final Map allBaseOverrideHandleWaterMovementInferiors = new Hashtable(0); + private static final Map allBaseAfterHandleWaterMovementSuperiors = new Hashtable(0); + private static final Map allBaseAfterHandleWaterMovementInferiors = new Hashtable(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 beforeHealHookTypes = new LinkedList(); + private final static List overrideHealHookTypes = new LinkedList(); + private final static List afterHealHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeHealHooks; + private ClientPlayerBase[] overrideHealHooks; + private ClientPlayerBase[] afterHealHooks; + + public boolean isHealModded; + + private static final Map allBaseBeforeHealSuperiors = new Hashtable(0); + private static final Map allBaseBeforeHealInferiors = new Hashtable(0); + private static final Map allBaseOverrideHealSuperiors = new Hashtable(0); + private static final Map allBaseOverrideHealInferiors = new Hashtable(0); + private static final Map allBaseAfterHealSuperiors = new Hashtable(0); + private static final Map allBaseAfterHealInferiors = new Hashtable(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 beforeIsEntityInsideOpaqueBlockHookTypes = new LinkedList(); + private final static List overrideIsEntityInsideOpaqueBlockHookTypes = new LinkedList(); + private final static List afterIsEntityInsideOpaqueBlockHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeIsEntityInsideOpaqueBlockHooks; + private ClientPlayerBase[] overrideIsEntityInsideOpaqueBlockHooks; + private ClientPlayerBase[] afterIsEntityInsideOpaqueBlockHooks; + + public boolean isIsEntityInsideOpaqueBlockModded; + + private static final Map allBaseBeforeIsEntityInsideOpaqueBlockSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsEntityInsideOpaqueBlockInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsEntityInsideOpaqueBlockSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsEntityInsideOpaqueBlockInferiors = new Hashtable(0); + private static final Map allBaseAfterIsEntityInsideOpaqueBlockSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsEntityInsideOpaqueBlockInferiors = new Hashtable(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 beforeIsInWaterHookTypes = new LinkedList(); + private final static List overrideIsInWaterHookTypes = new LinkedList(); + private final static List afterIsInWaterHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeIsInWaterHooks; + private ClientPlayerBase[] overrideIsInWaterHooks; + private ClientPlayerBase[] afterIsInWaterHooks; + + public boolean isIsInWaterModded; + + private static final Map allBaseBeforeIsInWaterSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsInWaterInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsInWaterSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsInWaterInferiors = new Hashtable(0); + private static final Map allBaseAfterIsInWaterSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsInWaterInferiors = new Hashtable(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 beforeIsInsideOfMaterialHookTypes = new LinkedList(); + private final static List overrideIsInsideOfMaterialHookTypes = new LinkedList(); + private final static List afterIsInsideOfMaterialHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeIsInsideOfMaterialHooks; + private ClientPlayerBase[] overrideIsInsideOfMaterialHooks; + private ClientPlayerBase[] afterIsInsideOfMaterialHooks; + + public boolean isIsInsideOfMaterialModded; + + private static final Map allBaseBeforeIsInsideOfMaterialSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsInsideOfMaterialInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsInsideOfMaterialSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsInsideOfMaterialInferiors = new Hashtable(0); + private static final Map allBaseAfterIsInsideOfMaterialSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsInsideOfMaterialInferiors = new Hashtable(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 beforeIsOnLadderHookTypes = new LinkedList(); + private final static List overrideIsOnLadderHookTypes = new LinkedList(); + private final static List afterIsOnLadderHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeIsOnLadderHooks; + private ClientPlayerBase[] overrideIsOnLadderHooks; + private ClientPlayerBase[] afterIsOnLadderHooks; + + public boolean isIsOnLadderModded; + + private static final Map allBaseBeforeIsOnLadderSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsOnLadderInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsOnLadderSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsOnLadderInferiors = new Hashtable(0); + private static final Map allBaseAfterIsOnLadderSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsOnLadderInferiors = new Hashtable(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 beforeIsPlayerSleepingHookTypes = new LinkedList(); + private final static List overrideIsPlayerSleepingHookTypes = new LinkedList(); + private final static List afterIsPlayerSleepingHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeIsPlayerSleepingHooks; + private ClientPlayerBase[] overrideIsPlayerSleepingHooks; + private ClientPlayerBase[] afterIsPlayerSleepingHooks; + + public boolean isIsPlayerSleepingModded; + + private static final Map allBaseBeforeIsPlayerSleepingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsPlayerSleepingInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsPlayerSleepingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsPlayerSleepingInferiors = new Hashtable(0); + private static final Map allBaseAfterIsPlayerSleepingSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsPlayerSleepingInferiors = new Hashtable(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 beforeIsSneakingHookTypes = new LinkedList(); + private final static List overrideIsSneakingHookTypes = new LinkedList(); + private final static List afterIsSneakingHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeIsSneakingHooks; + private ClientPlayerBase[] overrideIsSneakingHooks; + private ClientPlayerBase[] afterIsSneakingHooks; + + public boolean isIsSneakingModded; + + private static final Map allBaseBeforeIsSneakingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsSneakingInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsSneakingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsSneakingInferiors = new Hashtable(0); + private static final Map allBaseAfterIsSneakingSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsSneakingInferiors = new Hashtable(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 beforeIsSprintingHookTypes = new LinkedList(); + private final static List overrideIsSprintingHookTypes = new LinkedList(); + private final static List afterIsSprintingHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeIsSprintingHooks; + private ClientPlayerBase[] overrideIsSprintingHooks; + private ClientPlayerBase[] afterIsSprintingHooks; + + public boolean isIsSprintingModded; + + private static final Map allBaseBeforeIsSprintingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsSprintingInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsSprintingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsSprintingInferiors = new Hashtable(0); + private static final Map allBaseAfterIsSprintingSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsSprintingInferiors = new Hashtable(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 beforeJumpHookTypes = new LinkedList(); + private final static List overrideJumpHookTypes = new LinkedList(); + private final static List afterJumpHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeJumpHooks; + private ClientPlayerBase[] overrideJumpHooks; + private ClientPlayerBase[] afterJumpHooks; + + public boolean isJumpModded; + + private static final Map allBaseBeforeJumpSuperiors = new Hashtable(0); + private static final Map allBaseBeforeJumpInferiors = new Hashtable(0); + private static final Map allBaseOverrideJumpSuperiors = new Hashtable(0); + private static final Map allBaseOverrideJumpInferiors = new Hashtable(0); + private static final Map allBaseAfterJumpSuperiors = new Hashtable(0); + private static final Map allBaseAfterJumpInferiors = new Hashtable(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 beforeKnockBackHookTypes = new LinkedList(); + private final static List overrideKnockBackHookTypes = new LinkedList(); + private final static List afterKnockBackHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeKnockBackHooks; + private ClientPlayerBase[] overrideKnockBackHooks; + private ClientPlayerBase[] afterKnockBackHooks; + + public boolean isKnockBackModded; + + private static final Map allBaseBeforeKnockBackSuperiors = new Hashtable(0); + private static final Map allBaseBeforeKnockBackInferiors = new Hashtable(0); + private static final Map allBaseOverrideKnockBackSuperiors = new Hashtable(0); + private static final Map allBaseOverrideKnockBackInferiors = new Hashtable(0); + private static final Map allBaseAfterKnockBackSuperiors = new Hashtable(0); + private static final Map allBaseAfterKnockBackInferiors = new Hashtable(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 beforeMoveEntityHookTypes = new LinkedList(); + private final static List overrideMoveEntityHookTypes = new LinkedList(); + private final static List afterMoveEntityHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeMoveEntityHooks; + private ClientPlayerBase[] overrideMoveEntityHooks; + private ClientPlayerBase[] afterMoveEntityHooks; + + public boolean isMoveEntityModded; + + private static final Map allBaseBeforeMoveEntitySuperiors = new Hashtable(0); + private static final Map allBaseBeforeMoveEntityInferiors = new Hashtable(0); + private static final Map allBaseOverrideMoveEntitySuperiors = new Hashtable(0); + private static final Map allBaseOverrideMoveEntityInferiors = new Hashtable(0); + private static final Map allBaseAfterMoveEntitySuperiors = new Hashtable(0); + private static final Map allBaseAfterMoveEntityInferiors = new Hashtable(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 beforeMoveEntityWithHeadingHookTypes = new LinkedList(); + private final static List overrideMoveEntityWithHeadingHookTypes = new LinkedList(); + private final static List afterMoveEntityWithHeadingHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeMoveEntityWithHeadingHooks; + private ClientPlayerBase[] overrideMoveEntityWithHeadingHooks; + private ClientPlayerBase[] afterMoveEntityWithHeadingHooks; + + public boolean isMoveEntityWithHeadingModded; + + private static final Map allBaseBeforeMoveEntityWithHeadingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeMoveEntityWithHeadingInferiors = new Hashtable(0); + private static final Map allBaseOverrideMoveEntityWithHeadingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideMoveEntityWithHeadingInferiors = new Hashtable(0); + private static final Map allBaseAfterMoveEntityWithHeadingSuperiors = new Hashtable(0); + private static final Map allBaseAfterMoveEntityWithHeadingInferiors = new Hashtable(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 beforeMoveFlyingHookTypes = new LinkedList(); + private final static List overrideMoveFlyingHookTypes = new LinkedList(); + private final static List afterMoveFlyingHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeMoveFlyingHooks; + private ClientPlayerBase[] overrideMoveFlyingHooks; + private ClientPlayerBase[] afterMoveFlyingHooks; + + public boolean isMoveFlyingModded; + + private static final Map allBaseBeforeMoveFlyingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeMoveFlyingInferiors = new Hashtable(0); + private static final Map allBaseOverrideMoveFlyingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideMoveFlyingInferiors = new Hashtable(0); + private static final Map allBaseAfterMoveFlyingSuperiors = new Hashtable(0); + private static final Map allBaseAfterMoveFlyingInferiors = new Hashtable(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 beforeOnDeathHookTypes = new LinkedList(); + private final static List overrideOnDeathHookTypes = new LinkedList(); + private final static List afterOnDeathHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeOnDeathHooks; + private ClientPlayerBase[] overrideOnDeathHooks; + private ClientPlayerBase[] afterOnDeathHooks; + + public boolean isOnDeathModded; + + private static final Map allBaseBeforeOnDeathSuperiors = new Hashtable(0); + private static final Map allBaseBeforeOnDeathInferiors = new Hashtable(0); + private static final Map allBaseOverrideOnDeathSuperiors = new Hashtable(0); + private static final Map allBaseOverrideOnDeathInferiors = new Hashtable(0); + private static final Map allBaseAfterOnDeathSuperiors = new Hashtable(0); + private static final Map allBaseAfterOnDeathInferiors = new Hashtable(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 beforeOnLivingUpdateHookTypes = new LinkedList(); + private final static List overrideOnLivingUpdateHookTypes = new LinkedList(); + private final static List afterOnLivingUpdateHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeOnLivingUpdateHooks; + private ClientPlayerBase[] overrideOnLivingUpdateHooks; + private ClientPlayerBase[] afterOnLivingUpdateHooks; + + public boolean isOnLivingUpdateModded; + + private static final Map allBaseBeforeOnLivingUpdateSuperiors = new Hashtable(0); + private static final Map allBaseBeforeOnLivingUpdateInferiors = new Hashtable(0); + private static final Map allBaseOverrideOnLivingUpdateSuperiors = new Hashtable(0); + private static final Map allBaseOverrideOnLivingUpdateInferiors = new Hashtable(0); + private static final Map allBaseAfterOnLivingUpdateSuperiors = new Hashtable(0); + private static final Map allBaseAfterOnLivingUpdateInferiors = new Hashtable(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 beforeOnKillEntityHookTypes = new LinkedList(); + private final static List overrideOnKillEntityHookTypes = new LinkedList(); + private final static List afterOnKillEntityHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeOnKillEntityHooks; + private ClientPlayerBase[] overrideOnKillEntityHooks; + private ClientPlayerBase[] afterOnKillEntityHooks; + + public boolean isOnKillEntityModded; + + private static final Map allBaseBeforeOnKillEntitySuperiors = new Hashtable(0); + private static final Map allBaseBeforeOnKillEntityInferiors = new Hashtable(0); + private static final Map allBaseOverrideOnKillEntitySuperiors = new Hashtable(0); + private static final Map allBaseOverrideOnKillEntityInferiors = new Hashtable(0); + private static final Map allBaseAfterOnKillEntitySuperiors = new Hashtable(0); + private static final Map allBaseAfterOnKillEntityInferiors = new Hashtable(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 beforeOnStruckByLightningHookTypes = new LinkedList(); + private final static List overrideOnStruckByLightningHookTypes = new LinkedList(); + private final static List afterOnStruckByLightningHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeOnStruckByLightningHooks; + private ClientPlayerBase[] overrideOnStruckByLightningHooks; + private ClientPlayerBase[] afterOnStruckByLightningHooks; + + public boolean isOnStruckByLightningModded; + + private static final Map allBaseBeforeOnStruckByLightningSuperiors = new Hashtable(0); + private static final Map allBaseBeforeOnStruckByLightningInferiors = new Hashtable(0); + private static final Map allBaseOverrideOnStruckByLightningSuperiors = new Hashtable(0); + private static final Map allBaseOverrideOnStruckByLightningInferiors = new Hashtable(0); + private static final Map allBaseAfterOnStruckByLightningSuperiors = new Hashtable(0); + private static final Map allBaseAfterOnStruckByLightningInferiors = new Hashtable(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 beforeOnUpdateHookTypes = new LinkedList(); + private final static List overrideOnUpdateHookTypes = new LinkedList(); + private final static List afterOnUpdateHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeOnUpdateHooks; + private ClientPlayerBase[] overrideOnUpdateHooks; + private ClientPlayerBase[] afterOnUpdateHooks; + + public boolean isOnUpdateModded; + + private static final Map allBaseBeforeOnUpdateSuperiors = new Hashtable(0); + private static final Map allBaseBeforeOnUpdateInferiors = new Hashtable(0); + private static final Map allBaseOverrideOnUpdateSuperiors = new Hashtable(0); + private static final Map allBaseOverrideOnUpdateInferiors = new Hashtable(0); + private static final Map allBaseAfterOnUpdateSuperiors = new Hashtable(0); + private static final Map allBaseAfterOnUpdateInferiors = new Hashtable(0); + + public static void playStepSound(IClientPlayerAPI target, int paramInt1, int paramInt2, int paramInt3, net.minecraft.block.Block paramBlock) + { + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isPlayStepSoundModded) + clientPlayerAPI.playStepSound(paramInt1, paramInt2, paramInt3, paramBlock); + else + target.localPlayStepSound(paramInt1, paramInt2, paramInt3, paramBlock); + } + + private void playStepSound(int paramInt1, int paramInt2, int paramInt3, net.minecraft.block.Block paramBlock) + { + if(beforePlayStepSoundHooks != null) + for(int i = beforePlayStepSoundHooks.length - 1; i >= 0 ; i--) + beforePlayStepSoundHooks[i].beforePlayStepSound(paramInt1, paramInt2, paramInt3, paramBlock); + + if(overridePlayStepSoundHooks != null) + overridePlayStepSoundHooks[overridePlayStepSoundHooks.length - 1].playStepSound(paramInt1, paramInt2, paramInt3, paramBlock); + else + player.localPlayStepSound(paramInt1, paramInt2, paramInt3, paramBlock); + + if(afterPlayStepSoundHooks != null) + for(int i = 0; i < afterPlayStepSoundHooks.length; i++) + afterPlayStepSoundHooks[i].afterPlayStepSound(paramInt1, paramInt2, paramInt3, 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 beforePlayStepSoundHookTypes = new LinkedList(); + private final static List overridePlayStepSoundHookTypes = new LinkedList(); + private final static List afterPlayStepSoundHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforePlayStepSoundHooks; + private ClientPlayerBase[] overridePlayStepSoundHooks; + private ClientPlayerBase[] afterPlayStepSoundHooks; + + public boolean isPlayStepSoundModded; + + private static final Map allBaseBeforePlayStepSoundSuperiors = new Hashtable(0); + private static final Map allBaseBeforePlayStepSoundInferiors = new Hashtable(0); + private static final Map allBaseOverridePlayStepSoundSuperiors = new Hashtable(0); + private static final Map allBaseOverridePlayStepSoundInferiors = new Hashtable(0); + private static final Map allBaseAfterPlayStepSoundSuperiors = new Hashtable(0); + private static final Map allBaseAfterPlayStepSoundInferiors = new Hashtable(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 beforePushOutOfBlocksHookTypes = new LinkedList(); + private final static List overridePushOutOfBlocksHookTypes = new LinkedList(); + private final static List afterPushOutOfBlocksHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforePushOutOfBlocksHooks; + private ClientPlayerBase[] overridePushOutOfBlocksHooks; + private ClientPlayerBase[] afterPushOutOfBlocksHooks; + + public boolean isPushOutOfBlocksModded; + + private static final Map allBaseBeforePushOutOfBlocksSuperiors = new Hashtable(0); + private static final Map allBaseBeforePushOutOfBlocksInferiors = new Hashtable(0); + private static final Map allBaseOverridePushOutOfBlocksSuperiors = new Hashtable(0); + private static final Map allBaseOverridePushOutOfBlocksInferiors = new Hashtable(0); + private static final Map allBaseAfterPushOutOfBlocksSuperiors = new Hashtable(0); + private static final Map allBaseAfterPushOutOfBlocksInferiors = new Hashtable(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 beforeRayTraceHookTypes = new LinkedList(); + private final static List overrideRayTraceHookTypes = new LinkedList(); + private final static List afterRayTraceHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeRayTraceHooks; + private ClientPlayerBase[] overrideRayTraceHooks; + private ClientPlayerBase[] afterRayTraceHooks; + + public boolean isRayTraceModded; + + private static final Map allBaseBeforeRayTraceSuperiors = new Hashtable(0); + private static final Map allBaseBeforeRayTraceInferiors = new Hashtable(0); + private static final Map allBaseOverrideRayTraceSuperiors = new Hashtable(0); + private static final Map allBaseOverrideRayTraceInferiors = new Hashtable(0); + private static final Map allBaseAfterRayTraceSuperiors = new Hashtable(0); + private static final Map allBaseAfterRayTraceInferiors = new Hashtable(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 beforeReadEntityFromNBTHookTypes = new LinkedList(); + private final static List overrideReadEntityFromNBTHookTypes = new LinkedList(); + private final static List afterReadEntityFromNBTHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeReadEntityFromNBTHooks; + private ClientPlayerBase[] overrideReadEntityFromNBTHooks; + private ClientPlayerBase[] afterReadEntityFromNBTHooks; + + public boolean isReadEntityFromNBTModded; + + private static final Map allBaseBeforeReadEntityFromNBTSuperiors = new Hashtable(0); + private static final Map allBaseBeforeReadEntityFromNBTInferiors = new Hashtable(0); + private static final Map allBaseOverrideReadEntityFromNBTSuperiors = new Hashtable(0); + private static final Map allBaseOverrideReadEntityFromNBTInferiors = new Hashtable(0); + private static final Map allBaseAfterReadEntityFromNBTSuperiors = new Hashtable(0); + private static final Map allBaseAfterReadEntityFromNBTInferiors = new Hashtable(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 beforeRespawnPlayerHookTypes = new LinkedList(); + private final static List overrideRespawnPlayerHookTypes = new LinkedList(); + private final static List afterRespawnPlayerHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeRespawnPlayerHooks; + private ClientPlayerBase[] overrideRespawnPlayerHooks; + private ClientPlayerBase[] afterRespawnPlayerHooks; + + public boolean isRespawnPlayerModded; + + private static final Map allBaseBeforeRespawnPlayerSuperiors = new Hashtable(0); + private static final Map allBaseBeforeRespawnPlayerInferiors = new Hashtable(0); + private static final Map allBaseOverrideRespawnPlayerSuperiors = new Hashtable(0); + private static final Map allBaseOverrideRespawnPlayerInferiors = new Hashtable(0); + private static final Map allBaseAfterRespawnPlayerSuperiors = new Hashtable(0); + private static final Map allBaseAfterRespawnPlayerInferiors = new Hashtable(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 beforeSetDeadHookTypes = new LinkedList(); + private final static List overrideSetDeadHookTypes = new LinkedList(); + private final static List afterSetDeadHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeSetDeadHooks; + private ClientPlayerBase[] overrideSetDeadHooks; + private ClientPlayerBase[] afterSetDeadHooks; + + public boolean isSetDeadModded; + + private static final Map allBaseBeforeSetDeadSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSetDeadInferiors = new Hashtable(0); + private static final Map allBaseOverrideSetDeadSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSetDeadInferiors = new Hashtable(0); + private static final Map allBaseAfterSetDeadSuperiors = new Hashtable(0); + private static final Map allBaseAfterSetDeadInferiors = new Hashtable(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 beforeSetPlayerSPHealthHookTypes = new LinkedList(); + private final static List overrideSetPlayerSPHealthHookTypes = new LinkedList(); + private final static List afterSetPlayerSPHealthHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeSetPlayerSPHealthHooks; + private ClientPlayerBase[] overrideSetPlayerSPHealthHooks; + private ClientPlayerBase[] afterSetPlayerSPHealthHooks; + + public boolean isSetPlayerSPHealthModded; + + private static final Map allBaseBeforeSetPlayerSPHealthSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSetPlayerSPHealthInferiors = new Hashtable(0); + private static final Map allBaseOverrideSetPlayerSPHealthSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSetPlayerSPHealthInferiors = new Hashtable(0); + private static final Map allBaseAfterSetPlayerSPHealthSuperiors = new Hashtable(0); + private static final Map allBaseAfterSetPlayerSPHealthInferiors = new Hashtable(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 beforeSetPositionAndRotationHookTypes = new LinkedList(); + private final static List overrideSetPositionAndRotationHookTypes = new LinkedList(); + private final static List afterSetPositionAndRotationHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeSetPositionAndRotationHooks; + private ClientPlayerBase[] overrideSetPositionAndRotationHooks; + private ClientPlayerBase[] afterSetPositionAndRotationHooks; + + public boolean isSetPositionAndRotationModded; + + private static final Map allBaseBeforeSetPositionAndRotationSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSetPositionAndRotationInferiors = new Hashtable(0); + private static final Map allBaseOverrideSetPositionAndRotationSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSetPositionAndRotationInferiors = new Hashtable(0); + private static final Map allBaseAfterSetPositionAndRotationSuperiors = new Hashtable(0); + private static final Map allBaseAfterSetPositionAndRotationInferiors = new Hashtable(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 beforeSetSneakingHookTypes = new LinkedList(); + private final static List overrideSetSneakingHookTypes = new LinkedList(); + private final static List afterSetSneakingHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeSetSneakingHooks; + private ClientPlayerBase[] overrideSetSneakingHooks; + private ClientPlayerBase[] afterSetSneakingHooks; + + public boolean isSetSneakingModded; + + private static final Map allBaseBeforeSetSneakingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSetSneakingInferiors = new Hashtable(0); + private static final Map allBaseOverrideSetSneakingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSetSneakingInferiors = new Hashtable(0); + private static final Map allBaseAfterSetSneakingSuperiors = new Hashtable(0); + private static final Map allBaseAfterSetSneakingInferiors = new Hashtable(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 beforeSetSprintingHookTypes = new LinkedList(); + private final static List overrideSetSprintingHookTypes = new LinkedList(); + private final static List afterSetSprintingHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeSetSprintingHooks; + private ClientPlayerBase[] overrideSetSprintingHooks; + private ClientPlayerBase[] afterSetSprintingHooks; + + public boolean isSetSprintingModded; + + private static final Map allBaseBeforeSetSprintingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSetSprintingInferiors = new Hashtable(0); + private static final Map allBaseOverrideSetSprintingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSetSprintingInferiors = new Hashtable(0); + private static final Map allBaseAfterSetSprintingSuperiors = new Hashtable(0); + private static final Map allBaseAfterSetSprintingInferiors = new Hashtable(0); + + public static net.minecraft.entity.player.EntityPlayer.EnumStatus sleepInBedAt(IClientPlayerAPI target, int paramInt1, int paramInt2, int paramInt3) + { + net.minecraft.entity.player.EntityPlayer.EnumStatus _result; + ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); + if(clientPlayerAPI != null && clientPlayerAPI.isSleepInBedAtModded) + _result = clientPlayerAPI.sleepInBedAt(paramInt1, paramInt2, paramInt3); + else + _result = target.localSleepInBedAt(paramInt1, paramInt2, paramInt3); + return _result; + } + + private net.minecraft.entity.player.EntityPlayer.EnumStatus sleepInBedAt(int paramInt1, int paramInt2, int paramInt3) + { + if(beforeSleepInBedAtHooks != null) + for(int i = beforeSleepInBedAtHooks.length - 1; i >= 0 ; i--) + beforeSleepInBedAtHooks[i].beforeSleepInBedAt(paramInt1, paramInt2, paramInt3); + + net.minecraft.entity.player.EntityPlayer.EnumStatus _result; + if(overrideSleepInBedAtHooks != null) + _result = overrideSleepInBedAtHooks[overrideSleepInBedAtHooks.length - 1].sleepInBedAt(paramInt1, paramInt2, paramInt3); + else + _result = player.localSleepInBedAt(paramInt1, paramInt2, paramInt3); + + if(afterSleepInBedAtHooks != null) + for(int i = 0; i < afterSleepInBedAtHooks.length; i++) + afterSleepInBedAtHooks[i].afterSleepInBedAt(paramInt1, paramInt2, paramInt3); + + return _result; + } + + protected ClientPlayerBase GetOverwrittenSleepInBedAt(ClientPlayerBase overWriter) + { + if (overrideSleepInBedAtHooks == null) + return overWriter; + + for(int i = 0; i < overrideSleepInBedAtHooks.length; i++) + if(overrideSleepInBedAtHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideSleepInBedAtHooks[i - 1]; + + return overWriter; + } + + private final static List beforeSleepInBedAtHookTypes = new LinkedList(); + private final static List overrideSleepInBedAtHookTypes = new LinkedList(); + private final static List afterSleepInBedAtHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeSleepInBedAtHooks; + private ClientPlayerBase[] overrideSleepInBedAtHooks; + private ClientPlayerBase[] afterSleepInBedAtHooks; + + public boolean isSleepInBedAtModded; + + private static final Map allBaseBeforeSleepInBedAtSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSleepInBedAtInferiors = new Hashtable(0); + private static final Map allBaseOverrideSleepInBedAtSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSleepInBedAtInferiors = new Hashtable(0); + private static final Map allBaseAfterSleepInBedAtSuperiors = new Hashtable(0); + private static final Map allBaseAfterSleepInBedAtInferiors = new Hashtable(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 beforeSwingItemHookTypes = new LinkedList(); + private final static List overrideSwingItemHookTypes = new LinkedList(); + private final static List afterSwingItemHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeSwingItemHooks; + private ClientPlayerBase[] overrideSwingItemHooks; + private ClientPlayerBase[] afterSwingItemHooks; + + public boolean isSwingItemModded; + + private static final Map allBaseBeforeSwingItemSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSwingItemInferiors = new Hashtable(0); + private static final Map allBaseOverrideSwingItemSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSwingItemInferiors = new Hashtable(0); + private static final Map allBaseAfterSwingItemSuperiors = new Hashtable(0); + private static final Map allBaseAfterSwingItemInferiors = new Hashtable(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 beforeUpdateEntityActionStateHookTypes = new LinkedList(); + private final static List overrideUpdateEntityActionStateHookTypes = new LinkedList(); + private final static List afterUpdateEntityActionStateHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeUpdateEntityActionStateHooks; + private ClientPlayerBase[] overrideUpdateEntityActionStateHooks; + private ClientPlayerBase[] afterUpdateEntityActionStateHooks; + + public boolean isUpdateEntityActionStateModded; + + private static final Map allBaseBeforeUpdateEntityActionStateSuperiors = new Hashtable(0); + private static final Map allBaseBeforeUpdateEntityActionStateInferiors = new Hashtable(0); + private static final Map allBaseOverrideUpdateEntityActionStateSuperiors = new Hashtable(0); + private static final Map allBaseOverrideUpdateEntityActionStateInferiors = new Hashtable(0); + private static final Map allBaseAfterUpdateEntityActionStateSuperiors = new Hashtable(0); + private static final Map allBaseAfterUpdateEntityActionStateInferiors = new Hashtable(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 beforeUpdateRiddenHookTypes = new LinkedList(); + private final static List overrideUpdateRiddenHookTypes = new LinkedList(); + private final static List afterUpdateRiddenHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeUpdateRiddenHooks; + private ClientPlayerBase[] overrideUpdateRiddenHooks; + private ClientPlayerBase[] afterUpdateRiddenHooks; + + public boolean isUpdateRiddenModded; + + private static final Map allBaseBeforeUpdateRiddenSuperiors = new Hashtable(0); + private static final Map allBaseBeforeUpdateRiddenInferiors = new Hashtable(0); + private static final Map allBaseOverrideUpdateRiddenSuperiors = new Hashtable(0); + private static final Map allBaseOverrideUpdateRiddenInferiors = new Hashtable(0); + private static final Map allBaseAfterUpdateRiddenSuperiors = new Hashtable(0); + private static final Map allBaseAfterUpdateRiddenInferiors = new Hashtable(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 beforeWakeUpPlayerHookTypes = new LinkedList(); + private final static List overrideWakeUpPlayerHookTypes = new LinkedList(); + private final static List afterWakeUpPlayerHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeWakeUpPlayerHooks; + private ClientPlayerBase[] overrideWakeUpPlayerHooks; + private ClientPlayerBase[] afterWakeUpPlayerHooks; + + public boolean isWakeUpPlayerModded; + + private static final Map allBaseBeforeWakeUpPlayerSuperiors = new Hashtable(0); + private static final Map allBaseBeforeWakeUpPlayerInferiors = new Hashtable(0); + private static final Map allBaseOverrideWakeUpPlayerSuperiors = new Hashtable(0); + private static final Map allBaseOverrideWakeUpPlayerInferiors = new Hashtable(0); + private static final Map allBaseAfterWakeUpPlayerSuperiors = new Hashtable(0); + private static final Map allBaseAfterWakeUpPlayerInferiors = new Hashtable(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 beforeWriteEntityToNBTHookTypes = new LinkedList(); + private final static List overrideWriteEntityToNBTHookTypes = new LinkedList(); + private final static List afterWriteEntityToNBTHookTypes = new LinkedList(); + + private ClientPlayerBase[] beforeWriteEntityToNBTHooks; + private ClientPlayerBase[] overrideWriteEntityToNBTHooks; + private ClientPlayerBase[] afterWriteEntityToNBTHooks; + + public boolean isWriteEntityToNBTModded; + + private static final Map allBaseBeforeWriteEntityToNBTSuperiors = new Hashtable(0); + private static final Map allBaseBeforeWriteEntityToNBTInferiors = new Hashtable(0); + private static final Map allBaseOverrideWriteEntityToNBTSuperiors = new Hashtable(0); + private static final Map allBaseOverrideWriteEntityToNBTInferiors = new Hashtable(0); + private static final Map allBaseAfterWriteEntityToNBTSuperiors = new Hashtable(0); + private static final Map allBaseAfterWriteEntityToNBTInferiors = new Hashtable(0); + + + protected final IClientPlayerAPI player; + + private final static Set keys = new HashSet(); + private final static Map keysToVirtualIds = new HashMap(); + private final static Set> dynamicTypes = new HashSet>(); + + private final static Map, Map> virtualDynamicHookMethods = new HashMap, Map>(); + + private final static Map, Map> beforeDynamicHookMethods = new HashMap, Map>(); + private final static Map, Map> overrideDynamicHookMethods = new HashMap, Map>(); + private final static Map, Map> afterDynamicHookMethods = new HashMap, Map>(); + + private final static List beforeLocalConstructingHookTypes = new LinkedList(); + private final static List afterLocalConstructingHookTypes = new LinkedList(); + + private static final Map> beforeDynamicHookTypes = new Hashtable>(0); + private static final Map> overrideDynamicHookTypes = new Hashtable>(0); + private static final Map> afterDynamicHookTypes = new Hashtable>(0); + + private ClientPlayerBase[] beforeLocalConstructingHooks; + private ClientPlayerBase[] afterLocalConstructingHooks; + + private final Map baseObjectsToId = new Hashtable(); + private final Map allBaseObjects = new Hashtable(); + private final Set unmodifiableAllBaseIds = Collections.unmodifiableSet(allBaseObjects.keySet()); + + private static final Map> allBaseConstructors = new Hashtable>(); + private static final Set unmodifiableAllIds = Collections.unmodifiableSet(allBaseConstructors.keySet()); + + private static final Map allBaseBeforeLocalConstructingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeLocalConstructingInferiors = new Hashtable(0); + private static final Map allBaseAfterLocalConstructingSuperiors = new Hashtable(0); + private static final Map allBaseAfterLocalConstructingInferiors = new Hashtable(0); + + private static final Map> allBaseBeforeDynamicSuperiors = new Hashtable>(0); + private static final Map> allBaseBeforeDynamicInferiors = new Hashtable>(0); + private static final Map> allBaseOverrideDynamicSuperiors = new Hashtable>(0); + private static final Map> allBaseOverrideDynamicInferiors = new Hashtable>(0); + private static final Map> allBaseAfterDynamicSuperiors = new Hashtable>(0); + private static final Map> allBaseAfterDynamicInferiors = new Hashtable>(0); + + private static boolean initialized = false; +} diff --git a/src/Java/api/player/client/ClientPlayerBase.java b/src/Java/api/player/client/ClientPlayerBase.java new file mode 100644 index 0000000000..30f2a58643 --- /dev/null +++ b/src/Java/api/player/client/ClientPlayerBase.java @@ -0,0 +1,1525 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.client; + +public abstract class ClientPlayerBase +{ + public ClientPlayerBase(ClientPlayerAPI playerAPI) + { + this.internalClientPlayerAPI = playerAPI; + this.playerAPI = playerAPI.player; + this.player = playerAPI.player.getEntityPlayerSP(); + } + + public void beforeBaseAttach(boolean onTheFly) + { + } + + public void afterBaseAttach(boolean onTheFly) + { + } + + public void beforeLocalConstructing(net.minecraft.client.Minecraft paramMinecraft, net.minecraft.world.World paramWorld, net.minecraft.util.Session paramSession, int paramInt) + { + } + + public void afterLocalConstructing(net.minecraft.client.Minecraft paramMinecraft, net.minecraft.world.World paramWorld, net.minecraft.util.Session paramSession, int paramInt) + { + } + + public void beforeBaseDetach(boolean onTheFly) + { + } + + public void afterBaseDetach(boolean onTheFly) + { + } + + public Object dynamic(String key, Object[] parameters) + { + return internalClientPlayerAPI.dynamicOverwritten(key, parameters, this); + } + + public final int hashCode() + { + return super.hashCode(); + } + + public void beforeAddExhaustion(float paramFloat) + { + } + + public void addExhaustion(float paramFloat) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenAddExhaustion(this); + + if(overwritten == null) + playerAPI.localAddExhaustion(paramFloat); + else if(overwritten != this) + overwritten.addExhaustion(paramFloat); + + } + + public void afterAddExhaustion(float paramFloat) + { + } + + public void beforeAddMovementStat(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void addMovementStat(double paramDouble1, double paramDouble2, double paramDouble3) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenAddMovementStat(this); + + if(overwritten == null) + playerAPI.localAddMovementStat(paramDouble1, paramDouble2, paramDouble3); + else if(overwritten != this) + overwritten.addMovementStat(paramDouble1, paramDouble2, paramDouble3); + + } + + public void afterAddMovementStat(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void beforeAddStat(net.minecraft.stats.StatBase paramStatBase, int paramInt) + { + } + + public void addStat(net.minecraft.stats.StatBase paramStatBase, int paramInt) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenAddStat(this); + + if(overwritten == null) + playerAPI.localAddStat(paramStatBase, paramInt); + else if(overwritten != this) + overwritten.addStat(paramStatBase, paramInt); + + } + + public void afterAddStat(net.minecraft.stats.StatBase paramStatBase, int paramInt) + { + } + + public void beforeAttackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + } + + public boolean attackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenAttackEntityFrom(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localAttackEntityFrom(paramDamageSource, paramFloat); + else if(overwritten != this) + _result = overwritten.attackEntityFrom(paramDamageSource, paramFloat); + else + _result = false; + + return _result; + } + + public void afterAttackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + } + + public void beforeAttackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity) + { + } + + public void attackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenAttackTargetEntityWithCurrentItem(this); + + if(overwritten == null) + playerAPI.localAttackTargetEntityWithCurrentItem(paramEntity); + else if(overwritten != this) + overwritten.attackTargetEntityWithCurrentItem(paramEntity); + + } + + public void afterAttackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity) + { + } + + public void beforeCanBreatheUnderwater() + { + } + + public boolean canBreatheUnderwater() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenCanBreatheUnderwater(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localCanBreatheUnderwater(); + else if(overwritten != this) + _result = overwritten.canBreatheUnderwater(); + else + _result = false; + + return _result; + } + + public void afterCanBreatheUnderwater() + { + } + + public void beforeCanHarvestBlock(net.minecraft.block.Block paramBlock) + { + } + + public boolean canHarvestBlock(net.minecraft.block.Block paramBlock) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenCanHarvestBlock(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localCanHarvestBlock(paramBlock); + else if(overwritten != this) + _result = overwritten.canHarvestBlock(paramBlock); + else + _result = false; + + return _result; + } + + public void afterCanHarvestBlock(net.minecraft.block.Block paramBlock) + { + } + + public void beforeCanPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack) + { + } + + public boolean canPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenCanPlayerEdit(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localCanPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + else if(overwritten != this) + _result = overwritten.canPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + else + _result = false; + + return _result; + } + + public void afterCanPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack) + { + } + + public void beforeCanTriggerWalking() + { + } + + public boolean canTriggerWalking() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenCanTriggerWalking(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localCanTriggerWalking(); + else if(overwritten != this) + _result = overwritten.canTriggerWalking(); + else + _result = false; + + return _result; + } + + public void afterCanTriggerWalking() + { + } + + public void beforeCloseScreen() + { + } + + public void closeScreen() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenCloseScreen(this); + + if(overwritten == null) + playerAPI.localCloseScreen(); + else if(overwritten != this) + overwritten.closeScreen(); + + } + + public void afterCloseScreen() + { + } + + public void beforeDamageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + } + + public void damageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDamageEntity(this); + + if(overwritten == null) + playerAPI.localDamageEntity(paramDamageSource, paramFloat); + else if(overwritten != this) + overwritten.damageEntity(paramDamageSource, paramFloat); + + } + + public void afterDamageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + } + + public void beforeDisplayGUIBrewingStand(net.minecraft.tileentity.TileEntityBrewingStand paramTileEntityBrewingStand) + { + } + + public void displayGUIBrewingStand(net.minecraft.tileentity.TileEntityBrewingStand paramTileEntityBrewingStand) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDisplayGUIBrewingStand(this); + + if(overwritten == null) + playerAPI.localDisplayGUIBrewingStand(paramTileEntityBrewingStand); + else if(overwritten != this) + overwritten.displayGUIBrewingStand(paramTileEntityBrewingStand); + + } + + public void afterDisplayGUIBrewingStand(net.minecraft.tileentity.TileEntityBrewingStand paramTileEntityBrewingStand) + { + } + + public void beforeDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory) + { + } + + public void displayGUIChest(net.minecraft.inventory.IInventory paramIInventory) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDisplayGUIChest(this); + + if(overwritten == null) + playerAPI.localDisplayGUIChest(paramIInventory); + else if(overwritten != this) + overwritten.displayGUIChest(paramIInventory); + + } + + public void afterDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory) + { + } + + public void beforeDisplayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser) + { + } + + public void displayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDisplayGUIDispenser(this); + + if(overwritten == null) + playerAPI.localDisplayGUIDispenser(paramTileEntityDispenser); + else if(overwritten != this) + overwritten.displayGUIDispenser(paramTileEntityDispenser); + + } + + public void afterDisplayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser) + { + } + + public void beforeDisplayGUIEditSign(net.minecraft.tileentity.TileEntity paramTileEntity) + { + } + + public void displayGUIEditSign(net.minecraft.tileentity.TileEntity paramTileEntity) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDisplayGUIEditSign(this); + + if(overwritten == null) + playerAPI.localDisplayGUIEditSign(paramTileEntity); + else if(overwritten != this) + overwritten.displayGUIEditSign(paramTileEntity); + + } + + public void afterDisplayGUIEditSign(net.minecraft.tileentity.TileEntity paramTileEntity) + { + } + + public void beforeDisplayGUIEnchantment(int paramInt1, int paramInt2, int paramInt3, String paramString) + { + } + + public void displayGUIEnchantment(int paramInt1, int paramInt2, int paramInt3, String paramString) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDisplayGUIEnchantment(this); + + if(overwritten == null) + playerAPI.localDisplayGUIEnchantment(paramInt1, paramInt2, paramInt3, paramString); + else if(overwritten != this) + overwritten.displayGUIEnchantment(paramInt1, paramInt2, paramInt3, paramString); + + } + + public void afterDisplayGUIEnchantment(int paramInt1, int paramInt2, int paramInt3, String paramString) + { + } + + public void beforeDisplayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace) + { + } + + public void displayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDisplayGUIFurnace(this); + + if(overwritten == null) + playerAPI.localDisplayGUIFurnace(paramTileEntityFurnace); + else if(overwritten != this) + overwritten.displayGUIFurnace(paramTileEntityFurnace); + + } + + public void afterDisplayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace) + { + } + + public void beforeDisplayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3) + { + } + + public void displayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDisplayGUIWorkbench(this); + + if(overwritten == null) + playerAPI.localDisplayGUIWorkbench(paramInt1, paramInt2, paramInt3); + else if(overwritten != this) + overwritten.displayGUIWorkbench(paramInt1, paramInt2, paramInt3); + + } + + public void afterDisplayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3) + { + } + + public void beforeDropOneItem(boolean paramBoolean) + { + } + + public net.minecraft.entity.item.EntityItem dropOneItem(boolean paramBoolean) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDropOneItem(this); + + net.minecraft.entity.item.EntityItem _result; + if(overwritten == null) + _result = playerAPI.localDropOneItem(paramBoolean); + else if(overwritten != this) + _result = overwritten.dropOneItem(paramBoolean); + else + _result = null; + + return _result; + } + + public void afterDropOneItem(boolean paramBoolean) + { + } + + public void beforeDropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) + { + } + + public net.minecraft.entity.item.EntityItem dropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDropPlayerItem(this); + + net.minecraft.entity.item.EntityItem _result; + if(overwritten == null) + _result = playerAPI.localDropPlayerItem(paramItemStack, paramBoolean); + else if(overwritten != this) + _result = overwritten.dropPlayerItem(paramItemStack, paramBoolean); + else + _result = null; + + return _result; + } + + public void afterDropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) + { + } + + public void beforeDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2) + { + } + + public net.minecraft.entity.item.EntityItem dropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDropPlayerItemWithRandomChoice(this); + + net.minecraft.entity.item.EntityItem _result; + if(overwritten == null) + _result = playerAPI.localDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean1, paramBoolean2); + else if(overwritten != this) + _result = overwritten.dropPlayerItemWithRandomChoice(paramItemStack, paramBoolean1, paramBoolean2); + else + _result = null; + + return _result; + } + + public void afterDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2) + { + } + + public void beforeFall(float paramFloat) + { + } + + public void fall(float paramFloat) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenFall(this); + + if(overwritten == null) + playerAPI.localFall(paramFloat); + else if(overwritten != this) + overwritten.fall(paramFloat); + + } + + public void afterFall(float paramFloat) + { + } + + public void beforeGetAIMoveSpeed() + { + } + + public float getAIMoveSpeed() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetAIMoveSpeed(this); + + float _result; + if(overwritten == null) + _result = playerAPI.localGetAIMoveSpeed(); + else if(overwritten != this) + _result = overwritten.getAIMoveSpeed(); + else + _result = 0; + + return _result; + } + + public void afterGetAIMoveSpeed() + { + } + + public void beforeGetBedOrientationInDegrees() + { + } + + public float getBedOrientationInDegrees() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetBedOrientationInDegrees(this); + + float _result; + if(overwritten == null) + _result = playerAPI.localGetBedOrientationInDegrees(); + else if(overwritten != this) + _result = overwritten.getBedOrientationInDegrees(); + else + _result = 0; + + return _result; + } + + public void afterGetBedOrientationInDegrees() + { + } + + public void beforeGetBrightness(float paramFloat) + { + } + + public float getBrightness(float paramFloat) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetBrightness(this); + + float _result; + if(overwritten == null) + _result = playerAPI.localGetBrightness(paramFloat); + else if(overwritten != this) + _result = overwritten.getBrightness(paramFloat); + else + _result = 0; + + return _result; + } + + public void afterGetBrightness(float paramFloat) + { + } + + public void beforeGetBrightnessForRender(float paramFloat) + { + } + + public int getBrightnessForRender(float paramFloat) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetBrightnessForRender(this); + + int _result; + if(overwritten == null) + _result = playerAPI.localGetBrightnessForRender(paramFloat); + else if(overwritten != this) + _result = overwritten.getBrightnessForRender(paramFloat); + else + _result = 0; + + return _result; + } + + public void afterGetBrightnessForRender(float paramFloat) + { + } + + public void beforeGetCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean) + { + } + + public float getCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetCurrentPlayerStrVsBlock(this); + + float _result; + if(overwritten == null) + _result = playerAPI.localGetCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + else if(overwritten != this) + _result = overwritten.getCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + else + _result = 0; + + return _result; + } + + public void afterGetCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean) + { + } + + public void beforeGetCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt) + { + } + + public float getCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetCurrentPlayerStrVsBlockForge(this); + + float _result; + if(overwritten == null) + _result = playerAPI.localGetCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + else if(overwritten != this) + _result = overwritten.getCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + else + _result = 0; + + return _result; + } + + public void afterGetCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt) + { + } + + public void beforeGetDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public double getDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetDistanceSq(this); + + double _result; + if(overwritten == null) + _result = playerAPI.localGetDistanceSq(paramDouble1, paramDouble2, paramDouble3); + else if(overwritten != this) + _result = overwritten.getDistanceSq(paramDouble1, paramDouble2, paramDouble3); + else + _result = 0; + + return _result; + } + + public void afterGetDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void beforeGetDistanceSqToEntity(net.minecraft.entity.Entity paramEntity) + { + } + + public double getDistanceSqToEntity(net.minecraft.entity.Entity paramEntity) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetDistanceSqToEntity(this); + + double _result; + if(overwritten == null) + _result = playerAPI.localGetDistanceSqToEntity(paramEntity); + else if(overwritten != this) + _result = overwritten.getDistanceSqToEntity(paramEntity); + else + _result = 0; + + return _result; + } + + public void afterGetDistanceSqToEntity(net.minecraft.entity.Entity paramEntity) + { + } + + public void beforeGetFOVMultiplier() + { + } + + public float getFOVMultiplier() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetFOVMultiplier(this); + + float _result; + if(overwritten == null) + _result = playerAPI.localGetFOVMultiplier(); + else if(overwritten != this) + _result = overwritten.getFOVMultiplier(); + else + _result = 0; + + return _result; + } + + public void afterGetFOVMultiplier() + { + } + + public void beforeGetHurtSound() + { + } + + public java.lang.String getHurtSound() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetHurtSound(this); + + java.lang.String _result; + if(overwritten == null) + _result = playerAPI.localGetHurtSound(); + else if(overwritten != this) + _result = overwritten.getHurtSound(); + else + _result = null; + + return _result; + } + + public void afterGetHurtSound() + { + } + + public void beforeGetItemIcon(net.minecraft.item.ItemStack paramItemStack, int paramInt) + { + } + + public net.minecraft.util.IIcon getItemIcon(net.minecraft.item.ItemStack paramItemStack, int paramInt) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetItemIcon(this); + + net.minecraft.util.IIcon _result; + if(overwritten == null) + _result = playerAPI.localGetItemIcon(paramItemStack, paramInt); + else if(overwritten != this) + _result = overwritten.getItemIcon(paramItemStack, paramInt); + else + _result = null; + + return _result; + } + + public void afterGetItemIcon(net.minecraft.item.ItemStack paramItemStack, int paramInt) + { + } + + public void beforeGetSleepTimer() + { + } + + public int getSleepTimer() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetSleepTimer(this); + + int _result; + if(overwritten == null) + _result = playerAPI.localGetSleepTimer(); + else if(overwritten != this) + _result = overwritten.getSleepTimer(); + else + _result = 0; + + return _result; + } + + public void afterGetSleepTimer() + { + } + + public void beforeHandleLavaMovement() + { + } + + public boolean handleLavaMovement() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenHandleLavaMovement(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localHandleLavaMovement(); + else if(overwritten != this) + _result = overwritten.handleLavaMovement(); + else + _result = false; + + return _result; + } + + public void afterHandleLavaMovement() + { + } + + public void beforeHandleWaterMovement() + { + } + + public boolean handleWaterMovement() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenHandleWaterMovement(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localHandleWaterMovement(); + else if(overwritten != this) + _result = overwritten.handleWaterMovement(); + else + _result = false; + + return _result; + } + + public void afterHandleWaterMovement() + { + } + + public void beforeHeal(float paramFloat) + { + } + + public void heal(float paramFloat) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenHeal(this); + + if(overwritten == null) + playerAPI.localHeal(paramFloat); + else if(overwritten != this) + overwritten.heal(paramFloat); + + } + + public void afterHeal(float paramFloat) + { + } + + public void beforeIsEntityInsideOpaqueBlock() + { + } + + public boolean isEntityInsideOpaqueBlock() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenIsEntityInsideOpaqueBlock(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsEntityInsideOpaqueBlock(); + else if(overwritten != this) + _result = overwritten.isEntityInsideOpaqueBlock(); + else + _result = false; + + return _result; + } + + public void afterIsEntityInsideOpaqueBlock() + { + } + + public void beforeIsInWater() + { + } + + public boolean isInWater() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenIsInWater(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsInWater(); + else if(overwritten != this) + _result = overwritten.isInWater(); + else + _result = false; + + return _result; + } + + public void afterIsInWater() + { + } + + public void beforeIsInsideOfMaterial(net.minecraft.block.material.Material paramMaterial) + { + } + + public boolean isInsideOfMaterial(net.minecraft.block.material.Material paramMaterial) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenIsInsideOfMaterial(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsInsideOfMaterial(paramMaterial); + else if(overwritten != this) + _result = overwritten.isInsideOfMaterial(paramMaterial); + else + _result = false; + + return _result; + } + + public void afterIsInsideOfMaterial(net.minecraft.block.material.Material paramMaterial) + { + } + + public void beforeIsOnLadder() + { + } + + public boolean isOnLadder() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenIsOnLadder(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsOnLadder(); + else if(overwritten != this) + _result = overwritten.isOnLadder(); + else + _result = false; + + return _result; + } + + public void afterIsOnLadder() + { + } + + public void beforeIsPlayerSleeping() + { + } + + public boolean isPlayerSleeping() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenIsPlayerSleeping(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsPlayerSleeping(); + else if(overwritten != this) + _result = overwritten.isPlayerSleeping(); + else + _result = false; + + return _result; + } + + public void afterIsPlayerSleeping() + { + } + + public void beforeIsSneaking() + { + } + + public boolean isSneaking() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenIsSneaking(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsSneaking(); + else if(overwritten != this) + _result = overwritten.isSneaking(); + else + _result = false; + + return _result; + } + + public void afterIsSneaking() + { + } + + public void beforeIsSprinting() + { + } + + public boolean isSprinting() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenIsSprinting(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsSprinting(); + else if(overwritten != this) + _result = overwritten.isSprinting(); + else + _result = false; + + return _result; + } + + public void afterIsSprinting() + { + } + + public void beforeJump() + { + } + + public void jump() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenJump(this); + + if(overwritten == null) + playerAPI.localJump(); + else if(overwritten != this) + overwritten.jump(); + + } + + public void afterJump() + { + } + + public void beforeKnockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2) + { + } + + public void knockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenKnockBack(this); + + if(overwritten == null) + playerAPI.localKnockBack(paramEntity, paramFloat, paramDouble1, paramDouble2); + else if(overwritten != this) + overwritten.knockBack(paramEntity, paramFloat, paramDouble1, paramDouble2); + + } + + public void afterKnockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2) + { + } + + public void beforeMoveEntity(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void moveEntity(double paramDouble1, double paramDouble2, double paramDouble3) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenMoveEntity(this); + + if(overwritten == null) + playerAPI.localMoveEntity(paramDouble1, paramDouble2, paramDouble3); + else if(overwritten != this) + overwritten.moveEntity(paramDouble1, paramDouble2, paramDouble3); + + } + + public void afterMoveEntity(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void beforeMoveEntityWithHeading(float paramFloat1, float paramFloat2) + { + } + + public void moveEntityWithHeading(float paramFloat1, float paramFloat2) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenMoveEntityWithHeading(this); + + if(overwritten == null) + playerAPI.localMoveEntityWithHeading(paramFloat1, paramFloat2); + else if(overwritten != this) + overwritten.moveEntityWithHeading(paramFloat1, paramFloat2); + + } + + public void afterMoveEntityWithHeading(float paramFloat1, float paramFloat2) + { + } + + public void beforeMoveFlying(float paramFloat1, float paramFloat2, float paramFloat3) + { + } + + public void moveFlying(float paramFloat1, float paramFloat2, float paramFloat3) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenMoveFlying(this); + + if(overwritten == null) + playerAPI.localMoveFlying(paramFloat1, paramFloat2, paramFloat3); + else if(overwritten != this) + overwritten.moveFlying(paramFloat1, paramFloat2, paramFloat3); + + } + + public void afterMoveFlying(float paramFloat1, float paramFloat2, float paramFloat3) + { + } + + public void beforeOnDeath(net.minecraft.util.DamageSource paramDamageSource) + { + } + + public void onDeath(net.minecraft.util.DamageSource paramDamageSource) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenOnDeath(this); + + if(overwritten == null) + playerAPI.localOnDeath(paramDamageSource); + else if(overwritten != this) + overwritten.onDeath(paramDamageSource); + + } + + public void afterOnDeath(net.minecraft.util.DamageSource paramDamageSource) + { + } + + public void beforeOnLivingUpdate() + { + } + + public void onLivingUpdate() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenOnLivingUpdate(this); + + if(overwritten == null) + playerAPI.localOnLivingUpdate(); + else if(overwritten != this) + overwritten.onLivingUpdate(); + + } + + public void afterOnLivingUpdate() + { + } + + public void beforeOnKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase) + { + } + + public void onKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenOnKillEntity(this); + + if(overwritten == null) + playerAPI.localOnKillEntity(paramEntityLivingBase); + else if(overwritten != this) + overwritten.onKillEntity(paramEntityLivingBase); + + } + + public void afterOnKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase) + { + } + + public void beforeOnStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt) + { + } + + public void onStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenOnStruckByLightning(this); + + if(overwritten == null) + playerAPI.localOnStruckByLightning(paramEntityLightningBolt); + else if(overwritten != this) + overwritten.onStruckByLightning(paramEntityLightningBolt); + + } + + public void afterOnStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt) + { + } + + public void beforeOnUpdate() + { + } + + public void onUpdate() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenOnUpdate(this); + + if(overwritten == null) + playerAPI.localOnUpdate(); + else if(overwritten != this) + overwritten.onUpdate(); + + } + + public void afterOnUpdate() + { + } + + public void beforePlayStepSound(int paramInt1, int paramInt2, int paramInt3, net.minecraft.block.Block paramBlock) + { + } + + public void playStepSound(int paramInt1, int paramInt2, int paramInt3, net.minecraft.block.Block paramBlock) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenPlayStepSound(this); + + if(overwritten == null) + playerAPI.localPlayStepSound(paramInt1, paramInt2, paramInt3, paramBlock); + else if(overwritten != this) + overwritten.playStepSound(paramInt1, paramInt2, paramInt3, paramBlock); + + } + + public void afterPlayStepSound(int paramInt1, int paramInt2, int paramInt3, net.minecraft.block.Block paramBlock) + { + } + + public void beforePushOutOfBlocks(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public boolean pushOutOfBlocks(double paramDouble1, double paramDouble2, double paramDouble3) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenPushOutOfBlocks(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localPushOutOfBlocks(paramDouble1, paramDouble2, paramDouble3); + else if(overwritten != this) + _result = overwritten.pushOutOfBlocks(paramDouble1, paramDouble2, paramDouble3); + else + _result = false; + + return _result; + } + + public void afterPushOutOfBlocks(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void beforeRayTrace(double paramDouble, float paramFloat) + { + } + + public net.minecraft.util.MovingObjectPosition rayTrace(double paramDouble, float paramFloat) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenRayTrace(this); + + net.minecraft.util.MovingObjectPosition _result; + if(overwritten == null) + _result = playerAPI.localRayTrace(paramDouble, paramFloat); + else if(overwritten != this) + _result = overwritten.rayTrace(paramDouble, paramFloat); + else + _result = null; + + return _result; + } + + public void afterRayTrace(double paramDouble, float paramFloat) + { + } + + public void beforeReadEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + } + + public void readEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenReadEntityFromNBT(this); + + if(overwritten == null) + playerAPI.localReadEntityFromNBT(paramNBTTagCompound); + else if(overwritten != this) + overwritten.readEntityFromNBT(paramNBTTagCompound); + + } + + public void afterReadEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + } + + public void beforeRespawnPlayer() + { + } + + public void respawnPlayer() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenRespawnPlayer(this); + + if(overwritten == null) + playerAPI.localRespawnPlayer(); + else if(overwritten != this) + overwritten.respawnPlayer(); + + } + + public void afterRespawnPlayer() + { + } + + public void beforeSetDead() + { + } + + public void setDead() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenSetDead(this); + + if(overwritten == null) + playerAPI.localSetDead(); + else if(overwritten != this) + overwritten.setDead(); + + } + + public void afterSetDead() + { + } + + public void beforeSetPlayerSPHealth(float paramFloat) + { + } + + public void setPlayerSPHealth(float paramFloat) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenSetPlayerSPHealth(this); + + if(overwritten == null) + playerAPI.localSetPlayerSPHealth(paramFloat); + else if(overwritten != this) + overwritten.setPlayerSPHealth(paramFloat); + + } + + public void afterSetPlayerSPHealth(float paramFloat) + { + } + + public void beforeSetPositionAndRotation(double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat1, float paramFloat2) + { + } + + public void setPositionAndRotation(double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat1, float paramFloat2) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenSetPositionAndRotation(this); + + if(overwritten == null) + playerAPI.localSetPositionAndRotation(paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2); + else if(overwritten != this) + overwritten.setPositionAndRotation(paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2); + + } + + public void afterSetPositionAndRotation(double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat1, float paramFloat2) + { + } + + public void beforeSetSneaking(boolean paramBoolean) + { + } + + public void setSneaking(boolean paramBoolean) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenSetSneaking(this); + + if(overwritten == null) + playerAPI.localSetSneaking(paramBoolean); + else if(overwritten != this) + overwritten.setSneaking(paramBoolean); + + } + + public void afterSetSneaking(boolean paramBoolean) + { + } + + public void beforeSetSprinting(boolean paramBoolean) + { + } + + public void setSprinting(boolean paramBoolean) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenSetSprinting(this); + + if(overwritten == null) + playerAPI.localSetSprinting(paramBoolean); + else if(overwritten != this) + overwritten.setSprinting(paramBoolean); + + } + + public void afterSetSprinting(boolean paramBoolean) + { + } + + public void beforeSleepInBedAt(int paramInt1, int paramInt2, int paramInt3) + { + } + + public net.minecraft.entity.player.EntityPlayer.EnumStatus sleepInBedAt(int paramInt1, int paramInt2, int paramInt3) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenSleepInBedAt(this); + + net.minecraft.entity.player.EntityPlayer.EnumStatus _result; + if(overwritten == null) + _result = playerAPI.localSleepInBedAt(paramInt1, paramInt2, paramInt3); + else if(overwritten != this) + _result = overwritten.sleepInBedAt(paramInt1, paramInt2, paramInt3); + else + _result = null; + + return _result; + } + + public void afterSleepInBedAt(int paramInt1, int paramInt2, int paramInt3) + { + } + + public void beforeSwingItem() + { + } + + public void swingItem() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenSwingItem(this); + + if(overwritten == null) + playerAPI.localSwingItem(); + else if(overwritten != this) + overwritten.swingItem(); + + } + + public void afterSwingItem() + { + } + + public void beforeUpdateEntityActionState() + { + } + + public void updateEntityActionState() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenUpdateEntityActionState(this); + + if(overwritten == null) + playerAPI.localUpdateEntityActionState(); + else if(overwritten != this) + overwritten.updateEntityActionState(); + + } + + public void afterUpdateEntityActionState() + { + } + + public void beforeUpdateRidden() + { + } + + public void updateRidden() + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenUpdateRidden(this); + + if(overwritten == null) + playerAPI.localUpdateRidden(); + else if(overwritten != this) + overwritten.updateRidden(); + + } + + public void afterUpdateRidden() + { + } + + public void beforeWakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3) + { + } + + public void wakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenWakeUpPlayer(this); + + if(overwritten == null) + playerAPI.localWakeUpPlayer(paramBoolean1, paramBoolean2, paramBoolean3); + else if(overwritten != this) + overwritten.wakeUpPlayer(paramBoolean1, paramBoolean2, paramBoolean3); + + } + + public void afterWakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3) + { + } + + public void beforeWriteEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + } + + public void writeEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenWriteEntityToNBT(this); + + if(overwritten == null) + playerAPI.localWriteEntityToNBT(paramNBTTagCompound); + else if(overwritten != this) + overwritten.writeEntityToNBT(paramNBTTagCompound); + + } + + public void afterWriteEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + } + + protected final net.minecraft.client.entity.EntityPlayerSP player; + protected final IClientPlayer playerAPI; + private final ClientPlayerAPI internalClientPlayerAPI; +} diff --git a/src/Java/api/player/client/ClientPlayerBaseSorter.java b/src/Java/api/player/client/ClientPlayerBaseSorter.java new file mode 100644 index 0000000000..68bc9ada07 --- /dev/null +++ b/src/Java/api/player/client/ClientPlayerBaseSorter.java @@ -0,0 +1,259 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.client; + +import java.util.*; + +public final class ClientPlayerBaseSorter +{ + public ClientPlayerBaseSorter(List list, Map allBaseSuperiors, Map allBaseInferiors, String methodName) + { + this.list = list; + this.allBaseSuperiors = allBaseSuperiors; + this.allBaseInferiors = allBaseInferiors; + this.methodName = methodName; + } + + public void Sort() + { + if(list.size() <= 1) + return; + + if(explicitInferiors != null) + explicitInferiors.clear(); + + if(explicitSuperiors != null) + explicitSuperiors.clear(); + + if(directInferiorsMap != null) + directInferiorsMap.clear(); + + if(allInferiors != null) + allInferiors.clear(); + + for(int i = 0; i < list.size(); i++) + { + String baseId = list.get(i); + + String[] inferiorNames = allBaseInferiors.get(baseId); + boolean hasInferiors = inferiorNames != null && inferiorNames.length > 0; + + String[] superiorNames = allBaseSuperiors.get(baseId); + boolean hasSuperiors = superiorNames != null && superiorNames.length > 0; + + if((hasInferiors || hasSuperiors) && directInferiorsMap == null) + directInferiorsMap = new Hashtable>(); + + if(hasInferiors) + explicitInferiors = build(baseId, explicitInferiors, directInferiorsMap, null, inferiorNames); + + if(hasSuperiors) + explicitSuperiors = build(baseId, explicitSuperiors, null, directInferiorsMap, superiorNames); + } + if(directInferiorsMap != null) + { + for(int i = 0; i < list.size() - 1; i++) + for(int n = i + 1; n < list.size(); n++) + { + String left = list.get(i); + String right = list.get(n); + + Set leftInferiors = null, rightInferiors = null; + if(explicitInferiors != null) + { + leftInferiors = explicitInferiors.get(left); + rightInferiors = explicitInferiors.get(right); + } + + Set leftSuperiors = null, rightSuperiors = null; + if(explicitSuperiors != null) + { + leftSuperiors = explicitSuperiors.get(left); + rightSuperiors = explicitSuperiors.get(right); + } + + boolean leftWantsToBeInferiorToRight = leftSuperiors != null && leftSuperiors.contains(right); + boolean leftWantsToBeSuperiorToRight = leftInferiors != null && leftInferiors.contains(right); + + boolean rightWantsToBeInferiorToLeft = rightSuperiors != null && rightSuperiors.contains(left); + boolean rightWantsToBeSuperiorToLeft = rightInferiors != null && rightInferiors.contains(left); + + if(leftWantsToBeInferiorToRight && rightWantsToBeInferiorToLeft) + throw new UnsupportedOperationException("Can not sort ClientPlayerBase classes for method '" + methodName + "'. '" + left + "' wants to be inferior to '" + right + "' and '" + right + "' wants to be inferior to '" + left + "'"); + if(leftWantsToBeSuperiorToRight && rightWantsToBeSuperiorToLeft) + throw new UnsupportedOperationException("Can not sort ClientPlayerBase classes for method '" + methodName + "'. '" + left + "' wants to be superior to '" + right + "' and '" + right + "' wants to be superior to '" + left + "'"); + + if(leftWantsToBeInferiorToRight && leftWantsToBeSuperiorToRight) + throw new UnsupportedOperationException("Can not sort ClientPlayerBase classes for method '" + methodName + "'. '" + left + "' wants to be superior and inferior to '" + right + "'"); + if(rightWantsToBeInferiorToLeft && rightWantsToBeSuperiorToLeft) + throw new UnsupportedOperationException("Can not sort ClientPlayerBase classes for method '" + methodName + "'. '" + right + "' wants to be superior and inferior to '" + left + "'"); + } + + if(allInferiors == null) + allInferiors = new Hashtable>(); + + for(int i = 0; i < list.size(); i++) + build(list.get(i), null); + } + + if (withoutSuperiors == null) + withoutSuperiors = new LinkedList(); + + int offset = 0; + int size = list.size(); + + while(size > 1) + { + withoutSuperiors.clear(); + for(int i = offset; i < offset + size; i++) + withoutSuperiors.add(list.get(i)); + + if(allInferiors != null) + for(int i = offset; i < offset + size; i++) + { + Set inferiors = allInferiors.get(list.get(i)); + if (inferiors != null) + withoutSuperiors.removeAll(inferiors); + } + + boolean initial = true; + for(int i = offset; i < offset + size; i++) + { + String key = list.get(i); + if(withoutSuperiors.contains(key)) + { + if(initial) + { + Set inferiors = null; + if(allInferiors != null) + inferiors = allInferiors.get(key); + if(inferiors == null || inferiors.isEmpty()) + { + withoutSuperiors.remove(key); + size--; + offset++; + continue; + } + } + list.remove(i--); + size--; + } + initial = false; + } + list.addAll(offset + size, withoutSuperiors); + } + } + + private Set build(String type, String startType) + { + Set inferiors = allInferiors.get(type); + if(inferiors == null) + { + inferiors = build(type, null, startType != null ? startType : type); + if(inferiors == null) + inferiors = Empty; + allInferiors.put(type, inferiors); + } + return inferiors; + } + + private Set build(String type, Set inferiors, String startType) + { + Set directInferiors = directInferiorsMap.get(type); + if(directInferiors == null) + return inferiors; + + if(inferiors == null) + inferiors = new HashSet(); + + Iterator iter = directInferiors.iterator(); + while(iter.hasNext()) + { + String inferiorType = iter.next(); + if(inferiorType == startType) + throw new UnsupportedOperationException("Can not sort ClientPlayerBase classes for method '" + methodName + "'. Circular superiosity found including '" + startType + "'"); + if(list.contains(inferiorType)) + inferiors.add(inferiorType); + + Set inferiorSet; + try + { + inferiorSet = build(inferiorType, startType); + } + catch(UnsupportedOperationException uoe) + { + throw new UnsupportedOperationException("Can not sort ClientPlayerBase classes for method '" + methodName + "'. Circular superiosity found including '" + inferiorType + "'", uoe); + } + + if(inferiorSet != Empty) + inferiors.addAll(inferiorSet); + } + return inferiors; + } + + private static Map> build(String baseId, Map> map, Map> directMap, Map> otherDirectMap, String[] names) + { + if(map == null) + map = new Hashtable>(); + + Set types = new HashSet(); + for(int n = 0; n < names.length; n++) + { + if(names[n] != null) + types.add(names[n]); + } + + if(directMap != null) + getOrCreateSet(directMap, baseId).addAll(types); + + if(otherDirectMap != null) + { + Iterator iter = types.iterator(); + while(iter.hasNext()) + getOrCreateSet(otherDirectMap, iter.next()).add(baseId); + } + + map.put(baseId, types); + return map; + } + + private static Set getOrCreateSet(Map> map, String key) + { + Set value = map.get(key); + if(value != null) + return value; + + value = new HashSet(); + map.put(key, value); + return value; + } + + private Map> explicitInferiors; + private Map> explicitSuperiors; + private Map> directInferiorsMap; + private Map> allInferiors; + private List withoutSuperiors; + + private final List list; + private final Map allBaseSuperiors; + private final Map allBaseInferiors; + private final String methodName; + + private static final Set Empty = new HashSet(); +} diff --git a/src/Java/api/player/client/ClientPlayerBaseSorting.java b/src/Java/api/player/client/ClientPlayerBaseSorting.java new file mode 100644 index 0000000000..bc18779406 --- /dev/null +++ b/src/Java/api/player/client/ClientPlayerBaseSorting.java @@ -0,0 +1,4847 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.client; + +import java.util.*; + +public final class ClientPlayerBaseSorting +{ + private String[] beforeLocalConstructingSuperiors = null; + private String[] beforeLocalConstructingInferiors = null; + private String[] afterLocalConstructingSuperiors = null; + private String[] afterLocalConstructingInferiors = null; + + private Map dynamicBeforeSuperiors = null; + private Map dynamicBeforeInferiors = null; + private Map dynamicOverrideSuperiors = null; + private Map dynamicOverrideInferiors = null; + private Map dynamicAfterSuperiors = null; + private Map dynamicAfterInferiors = null; + + private String[] beforeAddExhaustionSuperiors = null; + private String[] beforeAddExhaustionInferiors = null; + private String[] overrideAddExhaustionSuperiors = null; + private String[] overrideAddExhaustionInferiors = null; + private String[] afterAddExhaustionSuperiors = null; + private String[] afterAddExhaustionInferiors = null; + + private String[] beforeAddMovementStatSuperiors = null; + private String[] beforeAddMovementStatInferiors = null; + private String[] overrideAddMovementStatSuperiors = null; + private String[] overrideAddMovementStatInferiors = null; + private String[] afterAddMovementStatSuperiors = null; + private String[] afterAddMovementStatInferiors = null; + + private String[] beforeAddStatSuperiors = null; + private String[] beforeAddStatInferiors = null; + private String[] overrideAddStatSuperiors = null; + private String[] overrideAddStatInferiors = null; + private String[] afterAddStatSuperiors = null; + private String[] afterAddStatInferiors = null; + + private String[] beforeAttackEntityFromSuperiors = null; + private String[] beforeAttackEntityFromInferiors = null; + private String[] overrideAttackEntityFromSuperiors = null; + private String[] overrideAttackEntityFromInferiors = null; + private String[] afterAttackEntityFromSuperiors = null; + private String[] afterAttackEntityFromInferiors = null; + + private String[] beforeAttackTargetEntityWithCurrentItemSuperiors = null; + private String[] beforeAttackTargetEntityWithCurrentItemInferiors = null; + private String[] overrideAttackTargetEntityWithCurrentItemSuperiors = null; + private String[] overrideAttackTargetEntityWithCurrentItemInferiors = null; + private String[] afterAttackTargetEntityWithCurrentItemSuperiors = null; + private String[] afterAttackTargetEntityWithCurrentItemInferiors = null; + + private String[] beforeCanBreatheUnderwaterSuperiors = null; + private String[] beforeCanBreatheUnderwaterInferiors = null; + private String[] overrideCanBreatheUnderwaterSuperiors = null; + private String[] overrideCanBreatheUnderwaterInferiors = null; + private String[] afterCanBreatheUnderwaterSuperiors = null; + private String[] afterCanBreatheUnderwaterInferiors = null; + + private String[] beforeCanHarvestBlockSuperiors = null; + private String[] beforeCanHarvestBlockInferiors = null; + private String[] overrideCanHarvestBlockSuperiors = null; + private String[] overrideCanHarvestBlockInferiors = null; + private String[] afterCanHarvestBlockSuperiors = null; + private String[] afterCanHarvestBlockInferiors = null; + + private String[] beforeCanPlayerEditSuperiors = null; + private String[] beforeCanPlayerEditInferiors = null; + private String[] overrideCanPlayerEditSuperiors = null; + private String[] overrideCanPlayerEditInferiors = null; + private String[] afterCanPlayerEditSuperiors = null; + private String[] afterCanPlayerEditInferiors = null; + + private String[] beforeCanTriggerWalkingSuperiors = null; + private String[] beforeCanTriggerWalkingInferiors = null; + private String[] overrideCanTriggerWalkingSuperiors = null; + private String[] overrideCanTriggerWalkingInferiors = null; + private String[] afterCanTriggerWalkingSuperiors = null; + private String[] afterCanTriggerWalkingInferiors = null; + + private String[] beforeCloseScreenSuperiors = null; + private String[] beforeCloseScreenInferiors = null; + private String[] overrideCloseScreenSuperiors = null; + private String[] overrideCloseScreenInferiors = null; + private String[] afterCloseScreenSuperiors = null; + private String[] afterCloseScreenInferiors = null; + + private String[] beforeDamageEntitySuperiors = null; + private String[] beforeDamageEntityInferiors = null; + private String[] overrideDamageEntitySuperiors = null; + private String[] overrideDamageEntityInferiors = null; + private String[] afterDamageEntitySuperiors = null; + private String[] afterDamageEntityInferiors = null; + + private String[] beforeDisplayGUIBrewingStandSuperiors = null; + private String[] beforeDisplayGUIBrewingStandInferiors = null; + private String[] overrideDisplayGUIBrewingStandSuperiors = null; + private String[] overrideDisplayGUIBrewingStandInferiors = null; + private String[] afterDisplayGUIBrewingStandSuperiors = null; + private String[] afterDisplayGUIBrewingStandInferiors = null; + + private String[] beforeDisplayGUIChestSuperiors = null; + private String[] beforeDisplayGUIChestInferiors = null; + private String[] overrideDisplayGUIChestSuperiors = null; + private String[] overrideDisplayGUIChestInferiors = null; + private String[] afterDisplayGUIChestSuperiors = null; + private String[] afterDisplayGUIChestInferiors = null; + + private String[] beforeDisplayGUIDispenserSuperiors = null; + private String[] beforeDisplayGUIDispenserInferiors = null; + private String[] overrideDisplayGUIDispenserSuperiors = null; + private String[] overrideDisplayGUIDispenserInferiors = null; + private String[] afterDisplayGUIDispenserSuperiors = null; + private String[] afterDisplayGUIDispenserInferiors = null; + + private String[] beforeDisplayGUIEditSignSuperiors = null; + private String[] beforeDisplayGUIEditSignInferiors = null; + private String[] overrideDisplayGUIEditSignSuperiors = null; + private String[] overrideDisplayGUIEditSignInferiors = null; + private String[] afterDisplayGUIEditSignSuperiors = null; + private String[] afterDisplayGUIEditSignInferiors = null; + + private String[] beforeDisplayGUIEnchantmentSuperiors = null; + private String[] beforeDisplayGUIEnchantmentInferiors = null; + private String[] overrideDisplayGUIEnchantmentSuperiors = null; + private String[] overrideDisplayGUIEnchantmentInferiors = null; + private String[] afterDisplayGUIEnchantmentSuperiors = null; + private String[] afterDisplayGUIEnchantmentInferiors = null; + + private String[] beforeDisplayGUIFurnaceSuperiors = null; + private String[] beforeDisplayGUIFurnaceInferiors = null; + private String[] overrideDisplayGUIFurnaceSuperiors = null; + private String[] overrideDisplayGUIFurnaceInferiors = null; + private String[] afterDisplayGUIFurnaceSuperiors = null; + private String[] afterDisplayGUIFurnaceInferiors = null; + + private String[] beforeDisplayGUIWorkbenchSuperiors = null; + private String[] beforeDisplayGUIWorkbenchInferiors = null; + private String[] overrideDisplayGUIWorkbenchSuperiors = null; + private String[] overrideDisplayGUIWorkbenchInferiors = null; + private String[] afterDisplayGUIWorkbenchSuperiors = null; + private String[] afterDisplayGUIWorkbenchInferiors = null; + + private String[] beforeDropOneItemSuperiors = null; + private String[] beforeDropOneItemInferiors = null; + private String[] overrideDropOneItemSuperiors = null; + private String[] overrideDropOneItemInferiors = null; + private String[] afterDropOneItemSuperiors = null; + private String[] afterDropOneItemInferiors = null; + + private String[] beforeDropPlayerItemSuperiors = null; + private String[] beforeDropPlayerItemInferiors = null; + private String[] overrideDropPlayerItemSuperiors = null; + private String[] overrideDropPlayerItemInferiors = null; + private String[] afterDropPlayerItemSuperiors = null; + private String[] afterDropPlayerItemInferiors = null; + + private String[] beforeDropPlayerItemWithRandomChoiceSuperiors = null; + private String[] beforeDropPlayerItemWithRandomChoiceInferiors = null; + private String[] overrideDropPlayerItemWithRandomChoiceSuperiors = null; + private String[] overrideDropPlayerItemWithRandomChoiceInferiors = null; + private String[] afterDropPlayerItemWithRandomChoiceSuperiors = null; + private String[] afterDropPlayerItemWithRandomChoiceInferiors = null; + + private String[] beforeFallSuperiors = null; + private String[] beforeFallInferiors = null; + private String[] overrideFallSuperiors = null; + private String[] overrideFallInferiors = null; + private String[] afterFallSuperiors = null; + private String[] afterFallInferiors = null; + + private String[] beforeGetAIMoveSpeedSuperiors = null; + private String[] beforeGetAIMoveSpeedInferiors = null; + private String[] overrideGetAIMoveSpeedSuperiors = null; + private String[] overrideGetAIMoveSpeedInferiors = null; + private String[] afterGetAIMoveSpeedSuperiors = null; + private String[] afterGetAIMoveSpeedInferiors = null; + + private String[] beforeGetBedOrientationInDegreesSuperiors = null; + private String[] beforeGetBedOrientationInDegreesInferiors = null; + private String[] overrideGetBedOrientationInDegreesSuperiors = null; + private String[] overrideGetBedOrientationInDegreesInferiors = null; + private String[] afterGetBedOrientationInDegreesSuperiors = null; + private String[] afterGetBedOrientationInDegreesInferiors = null; + + private String[] beforeGetBrightnessSuperiors = null; + private String[] beforeGetBrightnessInferiors = null; + private String[] overrideGetBrightnessSuperiors = null; + private String[] overrideGetBrightnessInferiors = null; + private String[] afterGetBrightnessSuperiors = null; + private String[] afterGetBrightnessInferiors = null; + + private String[] beforeGetBrightnessForRenderSuperiors = null; + private String[] beforeGetBrightnessForRenderInferiors = null; + private String[] overrideGetBrightnessForRenderSuperiors = null; + private String[] overrideGetBrightnessForRenderInferiors = null; + private String[] afterGetBrightnessForRenderSuperiors = null; + private String[] afterGetBrightnessForRenderInferiors = null; + + private String[] beforeGetCurrentPlayerStrVsBlockSuperiors = null; + private String[] beforeGetCurrentPlayerStrVsBlockInferiors = null; + private String[] overrideGetCurrentPlayerStrVsBlockSuperiors = null; + private String[] overrideGetCurrentPlayerStrVsBlockInferiors = null; + private String[] afterGetCurrentPlayerStrVsBlockSuperiors = null; + private String[] afterGetCurrentPlayerStrVsBlockInferiors = null; + + private String[] beforeGetCurrentPlayerStrVsBlockForgeSuperiors = null; + private String[] beforeGetCurrentPlayerStrVsBlockForgeInferiors = null; + private String[] overrideGetCurrentPlayerStrVsBlockForgeSuperiors = null; + private String[] overrideGetCurrentPlayerStrVsBlockForgeInferiors = null; + private String[] afterGetCurrentPlayerStrVsBlockForgeSuperiors = null; + private String[] afterGetCurrentPlayerStrVsBlockForgeInferiors = null; + + private String[] beforeGetDistanceSqSuperiors = null; + private String[] beforeGetDistanceSqInferiors = null; + private String[] overrideGetDistanceSqSuperiors = null; + private String[] overrideGetDistanceSqInferiors = null; + private String[] afterGetDistanceSqSuperiors = null; + private String[] afterGetDistanceSqInferiors = null; + + private String[] beforeGetDistanceSqToEntitySuperiors = null; + private String[] beforeGetDistanceSqToEntityInferiors = null; + private String[] overrideGetDistanceSqToEntitySuperiors = null; + private String[] overrideGetDistanceSqToEntityInferiors = null; + private String[] afterGetDistanceSqToEntitySuperiors = null; + private String[] afterGetDistanceSqToEntityInferiors = null; + + private String[] beforeGetFOVMultiplierSuperiors = null; + private String[] beforeGetFOVMultiplierInferiors = null; + private String[] overrideGetFOVMultiplierSuperiors = null; + private String[] overrideGetFOVMultiplierInferiors = null; + private String[] afterGetFOVMultiplierSuperiors = null; + private String[] afterGetFOVMultiplierInferiors = null; + + private String[] beforeGetHurtSoundSuperiors = null; + private String[] beforeGetHurtSoundInferiors = null; + private String[] overrideGetHurtSoundSuperiors = null; + private String[] overrideGetHurtSoundInferiors = null; + private String[] afterGetHurtSoundSuperiors = null; + private String[] afterGetHurtSoundInferiors = null; + + private String[] beforeGetItemIconSuperiors = null; + private String[] beforeGetItemIconInferiors = null; + private String[] overrideGetItemIconSuperiors = null; + private String[] overrideGetItemIconInferiors = null; + private String[] afterGetItemIconSuperiors = null; + private String[] afterGetItemIconInferiors = null; + + private String[] beforeGetSleepTimerSuperiors = null; + private String[] beforeGetSleepTimerInferiors = null; + private String[] overrideGetSleepTimerSuperiors = null; + private String[] overrideGetSleepTimerInferiors = null; + private String[] afterGetSleepTimerSuperiors = null; + private String[] afterGetSleepTimerInferiors = null; + + private String[] beforeHandleLavaMovementSuperiors = null; + private String[] beforeHandleLavaMovementInferiors = null; + private String[] overrideHandleLavaMovementSuperiors = null; + private String[] overrideHandleLavaMovementInferiors = null; + private String[] afterHandleLavaMovementSuperiors = null; + private String[] afterHandleLavaMovementInferiors = null; + + private String[] beforeHandleWaterMovementSuperiors = null; + private String[] beforeHandleWaterMovementInferiors = null; + private String[] overrideHandleWaterMovementSuperiors = null; + private String[] overrideHandleWaterMovementInferiors = null; + private String[] afterHandleWaterMovementSuperiors = null; + private String[] afterHandleWaterMovementInferiors = null; + + private String[] beforeHealSuperiors = null; + private String[] beforeHealInferiors = null; + private String[] overrideHealSuperiors = null; + private String[] overrideHealInferiors = null; + private String[] afterHealSuperiors = null; + private String[] afterHealInferiors = null; + + private String[] beforeIsEntityInsideOpaqueBlockSuperiors = null; + private String[] beforeIsEntityInsideOpaqueBlockInferiors = null; + private String[] overrideIsEntityInsideOpaqueBlockSuperiors = null; + private String[] overrideIsEntityInsideOpaqueBlockInferiors = null; + private String[] afterIsEntityInsideOpaqueBlockSuperiors = null; + private String[] afterIsEntityInsideOpaqueBlockInferiors = null; + + private String[] beforeIsInWaterSuperiors = null; + private String[] beforeIsInWaterInferiors = null; + private String[] overrideIsInWaterSuperiors = null; + private String[] overrideIsInWaterInferiors = null; + private String[] afterIsInWaterSuperiors = null; + private String[] afterIsInWaterInferiors = null; + + private String[] beforeIsInsideOfMaterialSuperiors = null; + private String[] beforeIsInsideOfMaterialInferiors = null; + private String[] overrideIsInsideOfMaterialSuperiors = null; + private String[] overrideIsInsideOfMaterialInferiors = null; + private String[] afterIsInsideOfMaterialSuperiors = null; + private String[] afterIsInsideOfMaterialInferiors = null; + + private String[] beforeIsOnLadderSuperiors = null; + private String[] beforeIsOnLadderInferiors = null; + private String[] overrideIsOnLadderSuperiors = null; + private String[] overrideIsOnLadderInferiors = null; + private String[] afterIsOnLadderSuperiors = null; + private String[] afterIsOnLadderInferiors = null; + + private String[] beforeIsPlayerSleepingSuperiors = null; + private String[] beforeIsPlayerSleepingInferiors = null; + private String[] overrideIsPlayerSleepingSuperiors = null; + private String[] overrideIsPlayerSleepingInferiors = null; + private String[] afterIsPlayerSleepingSuperiors = null; + private String[] afterIsPlayerSleepingInferiors = null; + + private String[] beforeIsSneakingSuperiors = null; + private String[] beforeIsSneakingInferiors = null; + private String[] overrideIsSneakingSuperiors = null; + private String[] overrideIsSneakingInferiors = null; + private String[] afterIsSneakingSuperiors = null; + private String[] afterIsSneakingInferiors = null; + + private String[] beforeIsSprintingSuperiors = null; + private String[] beforeIsSprintingInferiors = null; + private String[] overrideIsSprintingSuperiors = null; + private String[] overrideIsSprintingInferiors = null; + private String[] afterIsSprintingSuperiors = null; + private String[] afterIsSprintingInferiors = null; + + private String[] beforeJumpSuperiors = null; + private String[] beforeJumpInferiors = null; + private String[] overrideJumpSuperiors = null; + private String[] overrideJumpInferiors = null; + private String[] afterJumpSuperiors = null; + private String[] afterJumpInferiors = null; + + private String[] beforeKnockBackSuperiors = null; + private String[] beforeKnockBackInferiors = null; + private String[] overrideKnockBackSuperiors = null; + private String[] overrideKnockBackInferiors = null; + private String[] afterKnockBackSuperiors = null; + private String[] afterKnockBackInferiors = null; + + private String[] beforeMoveEntitySuperiors = null; + private String[] beforeMoveEntityInferiors = null; + private String[] overrideMoveEntitySuperiors = null; + private String[] overrideMoveEntityInferiors = null; + private String[] afterMoveEntitySuperiors = null; + private String[] afterMoveEntityInferiors = null; + + private String[] beforeMoveEntityWithHeadingSuperiors = null; + private String[] beforeMoveEntityWithHeadingInferiors = null; + private String[] overrideMoveEntityWithHeadingSuperiors = null; + private String[] overrideMoveEntityWithHeadingInferiors = null; + private String[] afterMoveEntityWithHeadingSuperiors = null; + private String[] afterMoveEntityWithHeadingInferiors = null; + + private String[] beforeMoveFlyingSuperiors = null; + private String[] beforeMoveFlyingInferiors = null; + private String[] overrideMoveFlyingSuperiors = null; + private String[] overrideMoveFlyingInferiors = null; + private String[] afterMoveFlyingSuperiors = null; + private String[] afterMoveFlyingInferiors = null; + + private String[] beforeOnDeathSuperiors = null; + private String[] beforeOnDeathInferiors = null; + private String[] overrideOnDeathSuperiors = null; + private String[] overrideOnDeathInferiors = null; + private String[] afterOnDeathSuperiors = null; + private String[] afterOnDeathInferiors = null; + + private String[] beforeOnLivingUpdateSuperiors = null; + private String[] beforeOnLivingUpdateInferiors = null; + private String[] overrideOnLivingUpdateSuperiors = null; + private String[] overrideOnLivingUpdateInferiors = null; + private String[] afterOnLivingUpdateSuperiors = null; + private String[] afterOnLivingUpdateInferiors = null; + + private String[] beforeOnKillEntitySuperiors = null; + private String[] beforeOnKillEntityInferiors = null; + private String[] overrideOnKillEntitySuperiors = null; + private String[] overrideOnKillEntityInferiors = null; + private String[] afterOnKillEntitySuperiors = null; + private String[] afterOnKillEntityInferiors = null; + + private String[] beforeOnStruckByLightningSuperiors = null; + private String[] beforeOnStruckByLightningInferiors = null; + private String[] overrideOnStruckByLightningSuperiors = null; + private String[] overrideOnStruckByLightningInferiors = null; + private String[] afterOnStruckByLightningSuperiors = null; + private String[] afterOnStruckByLightningInferiors = null; + + private String[] beforeOnUpdateSuperiors = null; + private String[] beforeOnUpdateInferiors = null; + private String[] overrideOnUpdateSuperiors = null; + private String[] overrideOnUpdateInferiors = null; + private String[] afterOnUpdateSuperiors = null; + private String[] afterOnUpdateInferiors = null; + + private String[] beforePlayStepSoundSuperiors = null; + private String[] beforePlayStepSoundInferiors = null; + private String[] overridePlayStepSoundSuperiors = null; + private String[] overridePlayStepSoundInferiors = null; + private String[] afterPlayStepSoundSuperiors = null; + private String[] afterPlayStepSoundInferiors = null; + + private String[] beforePushOutOfBlocksSuperiors = null; + private String[] beforePushOutOfBlocksInferiors = null; + private String[] overridePushOutOfBlocksSuperiors = null; + private String[] overridePushOutOfBlocksInferiors = null; + private String[] afterPushOutOfBlocksSuperiors = null; + private String[] afterPushOutOfBlocksInferiors = null; + + private String[] beforeRayTraceSuperiors = null; + private String[] beforeRayTraceInferiors = null; + private String[] overrideRayTraceSuperiors = null; + private String[] overrideRayTraceInferiors = null; + private String[] afterRayTraceSuperiors = null; + private String[] afterRayTraceInferiors = null; + + private String[] beforeReadEntityFromNBTSuperiors = null; + private String[] beforeReadEntityFromNBTInferiors = null; + private String[] overrideReadEntityFromNBTSuperiors = null; + private String[] overrideReadEntityFromNBTInferiors = null; + private String[] afterReadEntityFromNBTSuperiors = null; + private String[] afterReadEntityFromNBTInferiors = null; + + private String[] beforeRespawnPlayerSuperiors = null; + private String[] beforeRespawnPlayerInferiors = null; + private String[] overrideRespawnPlayerSuperiors = null; + private String[] overrideRespawnPlayerInferiors = null; + private String[] afterRespawnPlayerSuperiors = null; + private String[] afterRespawnPlayerInferiors = null; + + private String[] beforeSetDeadSuperiors = null; + private String[] beforeSetDeadInferiors = null; + private String[] overrideSetDeadSuperiors = null; + private String[] overrideSetDeadInferiors = null; + private String[] afterSetDeadSuperiors = null; + private String[] afterSetDeadInferiors = null; + + private String[] beforeSetPlayerSPHealthSuperiors = null; + private String[] beforeSetPlayerSPHealthInferiors = null; + private String[] overrideSetPlayerSPHealthSuperiors = null; + private String[] overrideSetPlayerSPHealthInferiors = null; + private String[] afterSetPlayerSPHealthSuperiors = null; + private String[] afterSetPlayerSPHealthInferiors = null; + + private String[] beforeSetPositionAndRotationSuperiors = null; + private String[] beforeSetPositionAndRotationInferiors = null; + private String[] overrideSetPositionAndRotationSuperiors = null; + private String[] overrideSetPositionAndRotationInferiors = null; + private String[] afterSetPositionAndRotationSuperiors = null; + private String[] afterSetPositionAndRotationInferiors = null; + + private String[] beforeSetSneakingSuperiors = null; + private String[] beforeSetSneakingInferiors = null; + private String[] overrideSetSneakingSuperiors = null; + private String[] overrideSetSneakingInferiors = null; + private String[] afterSetSneakingSuperiors = null; + private String[] afterSetSneakingInferiors = null; + + private String[] beforeSetSprintingSuperiors = null; + private String[] beforeSetSprintingInferiors = null; + private String[] overrideSetSprintingSuperiors = null; + private String[] overrideSetSprintingInferiors = null; + private String[] afterSetSprintingSuperiors = null; + private String[] afterSetSprintingInferiors = null; + + private String[] beforeSleepInBedAtSuperiors = null; + private String[] beforeSleepInBedAtInferiors = null; + private String[] overrideSleepInBedAtSuperiors = null; + private String[] overrideSleepInBedAtInferiors = null; + private String[] afterSleepInBedAtSuperiors = null; + private String[] afterSleepInBedAtInferiors = null; + + private String[] beforeSwingItemSuperiors = null; + private String[] beforeSwingItemInferiors = null; + private String[] overrideSwingItemSuperiors = null; + private String[] overrideSwingItemInferiors = null; + private String[] afterSwingItemSuperiors = null; + private String[] afterSwingItemInferiors = null; + + private String[] beforeUpdateEntityActionStateSuperiors = null; + private String[] beforeUpdateEntityActionStateInferiors = null; + private String[] overrideUpdateEntityActionStateSuperiors = null; + private String[] overrideUpdateEntityActionStateInferiors = null; + private String[] afterUpdateEntityActionStateSuperiors = null; + private String[] afterUpdateEntityActionStateInferiors = null; + + private String[] beforeUpdateRiddenSuperiors = null; + private String[] beforeUpdateRiddenInferiors = null; + private String[] overrideUpdateRiddenSuperiors = null; + private String[] overrideUpdateRiddenInferiors = null; + private String[] afterUpdateRiddenSuperiors = null; + private String[] afterUpdateRiddenInferiors = null; + + private String[] beforeWakeUpPlayerSuperiors = null; + private String[] beforeWakeUpPlayerInferiors = null; + private String[] overrideWakeUpPlayerSuperiors = null; + private String[] overrideWakeUpPlayerInferiors = null; + private String[] afterWakeUpPlayerSuperiors = null; + private String[] afterWakeUpPlayerInferiors = null; + + private String[] beforeWriteEntityToNBTSuperiors = null; + private String[] beforeWriteEntityToNBTInferiors = null; + private String[] overrideWriteEntityToNBTSuperiors = null; + private String[] overrideWriteEntityToNBTInferiors = null; + private String[] afterWriteEntityToNBTSuperiors = null; + private String[] afterWriteEntityToNBTInferiors = null; + + + public String[] getBeforeLocalConstructingSuperiors() + { + return beforeLocalConstructingSuperiors; + } + + public String[] getBeforeLocalConstructingInferiors() + { + return beforeLocalConstructingInferiors; + } + + public String[] getAfterLocalConstructingSuperiors() + { + return afterLocalConstructingSuperiors; + } + + public String[] getAfterLocalConstructingInferiors() + { + return afterLocalConstructingInferiors; + } + + public void setBeforeLocalConstructingSuperiors(String[] value) + { + beforeLocalConstructingSuperiors = value; + } + + public void setBeforeLocalConstructingInferiors(String[] value) + { + beforeLocalConstructingInferiors = value; + } + + public void setAfterLocalConstructingSuperiors(String[] value) + { + afterLocalConstructingSuperiors = value; + } + + public void setAfterLocalConstructingInferiors(String[] value) + { + afterLocalConstructingInferiors = value; + } + + public Map getDynamicBeforeSuperiors() + { + return dynamicBeforeSuperiors; + } + + public Map getDynamicBeforeInferiors() + { + return dynamicBeforeInferiors; + } + + public Map getDynamicOverrideSuperiors() + { + return dynamicOverrideSuperiors; + } + + public Map getDynamicOverrideInferiors() + { + return dynamicOverrideInferiors; + } + + public Map getDynamicAfterSuperiors() + { + return dynamicAfterSuperiors; + } + + public Map getDynamicAfterInferiors() + { + return dynamicAfterInferiors; + } + + public void setDynamicBeforeSuperiors(String name, String[] superiors) + { + dynamicBeforeSuperiors = setDynamic(name, superiors, dynamicBeforeSuperiors); + } + + public void setDynamicBeforeInferiors(String name, String[] inferiors) + { + dynamicBeforeInferiors = setDynamic(name, inferiors, dynamicBeforeInferiors); + } + + public void setDynamicOverrideSuperiors(String name, String[] superiors) + { + dynamicOverrideSuperiors = setDynamic(name, superiors, dynamicOverrideSuperiors); + } + + public void setDynamicOverrideInferiors(String name, String[] inferiors) + { + dynamicOverrideInferiors = setDynamic(name, inferiors, dynamicOverrideInferiors); + } + + public void setDynamicAfterSuperiors(String name, String[] superiors) + { + dynamicAfterSuperiors = setDynamic(name, superiors, dynamicAfterSuperiors); + } + + public void setDynamicAfterInferiors(String name, String[] inferiors) + { + dynamicAfterInferiors = setDynamic(name, inferiors, dynamicAfterInferiors); + } + + private Map setDynamic(String name, String[] names, Map map) + { + if(name == null) + throw new IllegalArgumentException("Parameter 'name' may not be null"); + + if(names == null) + { + if(map != null) + map.remove(name); + return map; + } + + if(map == null) + map = new HashMap(); + map.put(name, names); + + return map; + } + + public String[] getBeforeAddExhaustionSuperiors() + { + return beforeAddExhaustionSuperiors; + } + + public String[] getBeforeAddExhaustionInferiors() + { + return beforeAddExhaustionInferiors; + } + + public String[] getOverrideAddExhaustionSuperiors() + { + return overrideAddExhaustionSuperiors; + } + + public String[] getOverrideAddExhaustionInferiors() + { + return overrideAddExhaustionInferiors; + } + + public String[] getAfterAddExhaustionSuperiors() + { + return afterAddExhaustionSuperiors; + } + + public String[] getAfterAddExhaustionInferiors() + { + return afterAddExhaustionInferiors; + } + + public void setBeforeAddExhaustionSuperiors(String[] value) + { + beforeAddExhaustionSuperiors = value; + } + + public void setBeforeAddExhaustionInferiors(String[] value) + { + beforeAddExhaustionInferiors = value; + } + + public void setOverrideAddExhaustionSuperiors(String[] value) + { + overrideAddExhaustionSuperiors = value; + } + + public void setOverrideAddExhaustionInferiors(String[] value) + { + overrideAddExhaustionInferiors = value; + } + + public void setAfterAddExhaustionSuperiors(String[] value) + { + afterAddExhaustionSuperiors = value; + } + + public void setAfterAddExhaustionInferiors(String[] value) + { + afterAddExhaustionInferiors = value; + } + + public String[] getBeforeAddMovementStatSuperiors() + { + return beforeAddMovementStatSuperiors; + } + + public String[] getBeforeAddMovementStatInferiors() + { + return beforeAddMovementStatInferiors; + } + + public String[] getOverrideAddMovementStatSuperiors() + { + return overrideAddMovementStatSuperiors; + } + + public String[] getOverrideAddMovementStatInferiors() + { + return overrideAddMovementStatInferiors; + } + + public String[] getAfterAddMovementStatSuperiors() + { + return afterAddMovementStatSuperiors; + } + + public String[] getAfterAddMovementStatInferiors() + { + return afterAddMovementStatInferiors; + } + + public void setBeforeAddMovementStatSuperiors(String[] value) + { + beforeAddMovementStatSuperiors = value; + } + + public void setBeforeAddMovementStatInferiors(String[] value) + { + beforeAddMovementStatInferiors = value; + } + + public void setOverrideAddMovementStatSuperiors(String[] value) + { + overrideAddMovementStatSuperiors = value; + } + + public void setOverrideAddMovementStatInferiors(String[] value) + { + overrideAddMovementStatInferiors = value; + } + + public void setAfterAddMovementStatSuperiors(String[] value) + { + afterAddMovementStatSuperiors = value; + } + + public void setAfterAddMovementStatInferiors(String[] value) + { + afterAddMovementStatInferiors = value; + } + + public String[] getBeforeAddStatSuperiors() + { + return beforeAddStatSuperiors; + } + + public String[] getBeforeAddStatInferiors() + { + return beforeAddStatInferiors; + } + + public String[] getOverrideAddStatSuperiors() + { + return overrideAddStatSuperiors; + } + + public String[] getOverrideAddStatInferiors() + { + return overrideAddStatInferiors; + } + + public String[] getAfterAddStatSuperiors() + { + return afterAddStatSuperiors; + } + + public String[] getAfterAddStatInferiors() + { + return afterAddStatInferiors; + } + + public void setBeforeAddStatSuperiors(String[] value) + { + beforeAddStatSuperiors = value; + } + + public void setBeforeAddStatInferiors(String[] value) + { + beforeAddStatInferiors = value; + } + + public void setOverrideAddStatSuperiors(String[] value) + { + overrideAddStatSuperiors = value; + } + + public void setOverrideAddStatInferiors(String[] value) + { + overrideAddStatInferiors = value; + } + + public void setAfterAddStatSuperiors(String[] value) + { + afterAddStatSuperiors = value; + } + + public void setAfterAddStatInferiors(String[] value) + { + afterAddStatInferiors = value; + } + + public String[] getBeforeAttackEntityFromSuperiors() + { + return beforeAttackEntityFromSuperiors; + } + + public String[] getBeforeAttackEntityFromInferiors() + { + return beforeAttackEntityFromInferiors; + } + + public String[] getOverrideAttackEntityFromSuperiors() + { + return overrideAttackEntityFromSuperiors; + } + + public String[] getOverrideAttackEntityFromInferiors() + { + return overrideAttackEntityFromInferiors; + } + + public String[] getAfterAttackEntityFromSuperiors() + { + return afterAttackEntityFromSuperiors; + } + + public String[] getAfterAttackEntityFromInferiors() + { + return afterAttackEntityFromInferiors; + } + + public void setBeforeAttackEntityFromSuperiors(String[] value) + { + beforeAttackEntityFromSuperiors = value; + } + + public void setBeforeAttackEntityFromInferiors(String[] value) + { + beforeAttackEntityFromInferiors = value; + } + + public void setOverrideAttackEntityFromSuperiors(String[] value) + { + overrideAttackEntityFromSuperiors = value; + } + + public void setOverrideAttackEntityFromInferiors(String[] value) + { + overrideAttackEntityFromInferiors = value; + } + + public void setAfterAttackEntityFromSuperiors(String[] value) + { + afterAttackEntityFromSuperiors = value; + } + + public void setAfterAttackEntityFromInferiors(String[] value) + { + afterAttackEntityFromInferiors = value; + } + + public String[] getBeforeAttackTargetEntityWithCurrentItemSuperiors() + { + return beforeAttackTargetEntityWithCurrentItemSuperiors; + } + + public String[] getBeforeAttackTargetEntityWithCurrentItemInferiors() + { + return beforeAttackTargetEntityWithCurrentItemInferiors; + } + + public String[] getOverrideAttackTargetEntityWithCurrentItemSuperiors() + { + return overrideAttackTargetEntityWithCurrentItemSuperiors; + } + + public String[] getOverrideAttackTargetEntityWithCurrentItemInferiors() + { + return overrideAttackTargetEntityWithCurrentItemInferiors; + } + + public String[] getAfterAttackTargetEntityWithCurrentItemSuperiors() + { + return afterAttackTargetEntityWithCurrentItemSuperiors; + } + + public String[] getAfterAttackTargetEntityWithCurrentItemInferiors() + { + return afterAttackTargetEntityWithCurrentItemInferiors; + } + + public void setBeforeAttackTargetEntityWithCurrentItemSuperiors(String[] value) + { + beforeAttackTargetEntityWithCurrentItemSuperiors = value; + } + + public void setBeforeAttackTargetEntityWithCurrentItemInferiors(String[] value) + { + beforeAttackTargetEntityWithCurrentItemInferiors = value; + } + + public void setOverrideAttackTargetEntityWithCurrentItemSuperiors(String[] value) + { + overrideAttackTargetEntityWithCurrentItemSuperiors = value; + } + + public void setOverrideAttackTargetEntityWithCurrentItemInferiors(String[] value) + { + overrideAttackTargetEntityWithCurrentItemInferiors = value; + } + + public void setAfterAttackTargetEntityWithCurrentItemSuperiors(String[] value) + { + afterAttackTargetEntityWithCurrentItemSuperiors = value; + } + + public void setAfterAttackTargetEntityWithCurrentItemInferiors(String[] value) + { + afterAttackTargetEntityWithCurrentItemInferiors = value; + } + + public String[] getBeforeCanBreatheUnderwaterSuperiors() + { + return beforeCanBreatheUnderwaterSuperiors; + } + + public String[] getBeforeCanBreatheUnderwaterInferiors() + { + return beforeCanBreatheUnderwaterInferiors; + } + + public String[] getOverrideCanBreatheUnderwaterSuperiors() + { + return overrideCanBreatheUnderwaterSuperiors; + } + + public String[] getOverrideCanBreatheUnderwaterInferiors() + { + return overrideCanBreatheUnderwaterInferiors; + } + + public String[] getAfterCanBreatheUnderwaterSuperiors() + { + return afterCanBreatheUnderwaterSuperiors; + } + + public String[] getAfterCanBreatheUnderwaterInferiors() + { + return afterCanBreatheUnderwaterInferiors; + } + + public void setBeforeCanBreatheUnderwaterSuperiors(String[] value) + { + beforeCanBreatheUnderwaterSuperiors = value; + } + + public void setBeforeCanBreatheUnderwaterInferiors(String[] value) + { + beforeCanBreatheUnderwaterInferiors = value; + } + + public void setOverrideCanBreatheUnderwaterSuperiors(String[] value) + { + overrideCanBreatheUnderwaterSuperiors = value; + } + + public void setOverrideCanBreatheUnderwaterInferiors(String[] value) + { + overrideCanBreatheUnderwaterInferiors = value; + } + + public void setAfterCanBreatheUnderwaterSuperiors(String[] value) + { + afterCanBreatheUnderwaterSuperiors = value; + } + + public void setAfterCanBreatheUnderwaterInferiors(String[] value) + { + afterCanBreatheUnderwaterInferiors = value; + } + + public String[] getBeforeCanHarvestBlockSuperiors() + { + return beforeCanHarvestBlockSuperiors; + } + + public String[] getBeforeCanHarvestBlockInferiors() + { + return beforeCanHarvestBlockInferiors; + } + + public String[] getOverrideCanHarvestBlockSuperiors() + { + return overrideCanHarvestBlockSuperiors; + } + + public String[] getOverrideCanHarvestBlockInferiors() + { + return overrideCanHarvestBlockInferiors; + } + + public String[] getAfterCanHarvestBlockSuperiors() + { + return afterCanHarvestBlockSuperiors; + } + + public String[] getAfterCanHarvestBlockInferiors() + { + return afterCanHarvestBlockInferiors; + } + + public void setBeforeCanHarvestBlockSuperiors(String[] value) + { + beforeCanHarvestBlockSuperiors = value; + } + + public void setBeforeCanHarvestBlockInferiors(String[] value) + { + beforeCanHarvestBlockInferiors = value; + } + + public void setOverrideCanHarvestBlockSuperiors(String[] value) + { + overrideCanHarvestBlockSuperiors = value; + } + + public void setOverrideCanHarvestBlockInferiors(String[] value) + { + overrideCanHarvestBlockInferiors = value; + } + + public void setAfterCanHarvestBlockSuperiors(String[] value) + { + afterCanHarvestBlockSuperiors = value; + } + + public void setAfterCanHarvestBlockInferiors(String[] value) + { + afterCanHarvestBlockInferiors = value; + } + + public String[] getBeforeCanPlayerEditSuperiors() + { + return beforeCanPlayerEditSuperiors; + } + + public String[] getBeforeCanPlayerEditInferiors() + { + return beforeCanPlayerEditInferiors; + } + + public String[] getOverrideCanPlayerEditSuperiors() + { + return overrideCanPlayerEditSuperiors; + } + + public String[] getOverrideCanPlayerEditInferiors() + { + return overrideCanPlayerEditInferiors; + } + + public String[] getAfterCanPlayerEditSuperiors() + { + return afterCanPlayerEditSuperiors; + } + + public String[] getAfterCanPlayerEditInferiors() + { + return afterCanPlayerEditInferiors; + } + + public void setBeforeCanPlayerEditSuperiors(String[] value) + { + beforeCanPlayerEditSuperiors = value; + } + + public void setBeforeCanPlayerEditInferiors(String[] value) + { + beforeCanPlayerEditInferiors = value; + } + + public void setOverrideCanPlayerEditSuperiors(String[] value) + { + overrideCanPlayerEditSuperiors = value; + } + + public void setOverrideCanPlayerEditInferiors(String[] value) + { + overrideCanPlayerEditInferiors = value; + } + + public void setAfterCanPlayerEditSuperiors(String[] value) + { + afterCanPlayerEditSuperiors = value; + } + + public void setAfterCanPlayerEditInferiors(String[] value) + { + afterCanPlayerEditInferiors = value; + } + + public String[] getBeforeCanTriggerWalkingSuperiors() + { + return beforeCanTriggerWalkingSuperiors; + } + + public String[] getBeforeCanTriggerWalkingInferiors() + { + return beforeCanTriggerWalkingInferiors; + } + + public String[] getOverrideCanTriggerWalkingSuperiors() + { + return overrideCanTriggerWalkingSuperiors; + } + + public String[] getOverrideCanTriggerWalkingInferiors() + { + return overrideCanTriggerWalkingInferiors; + } + + public String[] getAfterCanTriggerWalkingSuperiors() + { + return afterCanTriggerWalkingSuperiors; + } + + public String[] getAfterCanTriggerWalkingInferiors() + { + return afterCanTriggerWalkingInferiors; + } + + public void setBeforeCanTriggerWalkingSuperiors(String[] value) + { + beforeCanTriggerWalkingSuperiors = value; + } + + public void setBeforeCanTriggerWalkingInferiors(String[] value) + { + beforeCanTriggerWalkingInferiors = value; + } + + public void setOverrideCanTriggerWalkingSuperiors(String[] value) + { + overrideCanTriggerWalkingSuperiors = value; + } + + public void setOverrideCanTriggerWalkingInferiors(String[] value) + { + overrideCanTriggerWalkingInferiors = value; + } + + public void setAfterCanTriggerWalkingSuperiors(String[] value) + { + afterCanTriggerWalkingSuperiors = value; + } + + public void setAfterCanTriggerWalkingInferiors(String[] value) + { + afterCanTriggerWalkingInferiors = value; + } + + public String[] getBeforeCloseScreenSuperiors() + { + return beforeCloseScreenSuperiors; + } + + public String[] getBeforeCloseScreenInferiors() + { + return beforeCloseScreenInferiors; + } + + public String[] getOverrideCloseScreenSuperiors() + { + return overrideCloseScreenSuperiors; + } + + public String[] getOverrideCloseScreenInferiors() + { + return overrideCloseScreenInferiors; + } + + public String[] getAfterCloseScreenSuperiors() + { + return afterCloseScreenSuperiors; + } + + public String[] getAfterCloseScreenInferiors() + { + return afterCloseScreenInferiors; + } + + public void setBeforeCloseScreenSuperiors(String[] value) + { + beforeCloseScreenSuperiors = value; + } + + public void setBeforeCloseScreenInferiors(String[] value) + { + beforeCloseScreenInferiors = value; + } + + public void setOverrideCloseScreenSuperiors(String[] value) + { + overrideCloseScreenSuperiors = value; + } + + public void setOverrideCloseScreenInferiors(String[] value) + { + overrideCloseScreenInferiors = value; + } + + public void setAfterCloseScreenSuperiors(String[] value) + { + afterCloseScreenSuperiors = value; + } + + public void setAfterCloseScreenInferiors(String[] value) + { + afterCloseScreenInferiors = value; + } + + public String[] getBeforeDamageEntitySuperiors() + { + return beforeDamageEntitySuperiors; + } + + public String[] getBeforeDamageEntityInferiors() + { + return beforeDamageEntityInferiors; + } + + public String[] getOverrideDamageEntitySuperiors() + { + return overrideDamageEntitySuperiors; + } + + public String[] getOverrideDamageEntityInferiors() + { + return overrideDamageEntityInferiors; + } + + public String[] getAfterDamageEntitySuperiors() + { + return afterDamageEntitySuperiors; + } + + public String[] getAfterDamageEntityInferiors() + { + return afterDamageEntityInferiors; + } + + public void setBeforeDamageEntitySuperiors(String[] value) + { + beforeDamageEntitySuperiors = value; + } + + public void setBeforeDamageEntityInferiors(String[] value) + { + beforeDamageEntityInferiors = value; + } + + public void setOverrideDamageEntitySuperiors(String[] value) + { + overrideDamageEntitySuperiors = value; + } + + public void setOverrideDamageEntityInferiors(String[] value) + { + overrideDamageEntityInferiors = value; + } + + public void setAfterDamageEntitySuperiors(String[] value) + { + afterDamageEntitySuperiors = value; + } + + public void setAfterDamageEntityInferiors(String[] value) + { + afterDamageEntityInferiors = value; + } + + public String[] getBeforeDisplayGUIBrewingStandSuperiors() + { + return beforeDisplayGUIBrewingStandSuperiors; + } + + public String[] getBeforeDisplayGUIBrewingStandInferiors() + { + return beforeDisplayGUIBrewingStandInferiors; + } + + public String[] getOverrideDisplayGUIBrewingStandSuperiors() + { + return overrideDisplayGUIBrewingStandSuperiors; + } + + public String[] getOverrideDisplayGUIBrewingStandInferiors() + { + return overrideDisplayGUIBrewingStandInferiors; + } + + public String[] getAfterDisplayGUIBrewingStandSuperiors() + { + return afterDisplayGUIBrewingStandSuperiors; + } + + public String[] getAfterDisplayGUIBrewingStandInferiors() + { + return afterDisplayGUIBrewingStandInferiors; + } + + public void setBeforeDisplayGUIBrewingStandSuperiors(String[] value) + { + beforeDisplayGUIBrewingStandSuperiors = value; + } + + public void setBeforeDisplayGUIBrewingStandInferiors(String[] value) + { + beforeDisplayGUIBrewingStandInferiors = value; + } + + public void setOverrideDisplayGUIBrewingStandSuperiors(String[] value) + { + overrideDisplayGUIBrewingStandSuperiors = value; + } + + public void setOverrideDisplayGUIBrewingStandInferiors(String[] value) + { + overrideDisplayGUIBrewingStandInferiors = value; + } + + public void setAfterDisplayGUIBrewingStandSuperiors(String[] value) + { + afterDisplayGUIBrewingStandSuperiors = value; + } + + public void setAfterDisplayGUIBrewingStandInferiors(String[] value) + { + afterDisplayGUIBrewingStandInferiors = value; + } + + public String[] getBeforeDisplayGUIChestSuperiors() + { + return beforeDisplayGUIChestSuperiors; + } + + public String[] getBeforeDisplayGUIChestInferiors() + { + return beforeDisplayGUIChestInferiors; + } + + public String[] getOverrideDisplayGUIChestSuperiors() + { + return overrideDisplayGUIChestSuperiors; + } + + public String[] getOverrideDisplayGUIChestInferiors() + { + return overrideDisplayGUIChestInferiors; + } + + public String[] getAfterDisplayGUIChestSuperiors() + { + return afterDisplayGUIChestSuperiors; + } + + public String[] getAfterDisplayGUIChestInferiors() + { + return afterDisplayGUIChestInferiors; + } + + public void setBeforeDisplayGUIChestSuperiors(String[] value) + { + beforeDisplayGUIChestSuperiors = value; + } + + public void setBeforeDisplayGUIChestInferiors(String[] value) + { + beforeDisplayGUIChestInferiors = value; + } + + public void setOverrideDisplayGUIChestSuperiors(String[] value) + { + overrideDisplayGUIChestSuperiors = value; + } + + public void setOverrideDisplayGUIChestInferiors(String[] value) + { + overrideDisplayGUIChestInferiors = value; + } + + public void setAfterDisplayGUIChestSuperiors(String[] value) + { + afterDisplayGUIChestSuperiors = value; + } + + public void setAfterDisplayGUIChestInferiors(String[] value) + { + afterDisplayGUIChestInferiors = value; + } + + public String[] getBeforeDisplayGUIDispenserSuperiors() + { + return beforeDisplayGUIDispenserSuperiors; + } + + public String[] getBeforeDisplayGUIDispenserInferiors() + { + return beforeDisplayGUIDispenserInferiors; + } + + public String[] getOverrideDisplayGUIDispenserSuperiors() + { + return overrideDisplayGUIDispenserSuperiors; + } + + public String[] getOverrideDisplayGUIDispenserInferiors() + { + return overrideDisplayGUIDispenserInferiors; + } + + public String[] getAfterDisplayGUIDispenserSuperiors() + { + return afterDisplayGUIDispenserSuperiors; + } + + public String[] getAfterDisplayGUIDispenserInferiors() + { + return afterDisplayGUIDispenserInferiors; + } + + public void setBeforeDisplayGUIDispenserSuperiors(String[] value) + { + beforeDisplayGUIDispenserSuperiors = value; + } + + public void setBeforeDisplayGUIDispenserInferiors(String[] value) + { + beforeDisplayGUIDispenserInferiors = value; + } + + public void setOverrideDisplayGUIDispenserSuperiors(String[] value) + { + overrideDisplayGUIDispenserSuperiors = value; + } + + public void setOverrideDisplayGUIDispenserInferiors(String[] value) + { + overrideDisplayGUIDispenserInferiors = value; + } + + public void setAfterDisplayGUIDispenserSuperiors(String[] value) + { + afterDisplayGUIDispenserSuperiors = value; + } + + public void setAfterDisplayGUIDispenserInferiors(String[] value) + { + afterDisplayGUIDispenserInferiors = value; + } + + public String[] getBeforeDisplayGUIEditSignSuperiors() + { + return beforeDisplayGUIEditSignSuperiors; + } + + public String[] getBeforeDisplayGUIEditSignInferiors() + { + return beforeDisplayGUIEditSignInferiors; + } + + public String[] getOverrideDisplayGUIEditSignSuperiors() + { + return overrideDisplayGUIEditSignSuperiors; + } + + public String[] getOverrideDisplayGUIEditSignInferiors() + { + return overrideDisplayGUIEditSignInferiors; + } + + public String[] getAfterDisplayGUIEditSignSuperiors() + { + return afterDisplayGUIEditSignSuperiors; + } + + public String[] getAfterDisplayGUIEditSignInferiors() + { + return afterDisplayGUIEditSignInferiors; + } + + public void setBeforeDisplayGUIEditSignSuperiors(String[] value) + { + beforeDisplayGUIEditSignSuperiors = value; + } + + public void setBeforeDisplayGUIEditSignInferiors(String[] value) + { + beforeDisplayGUIEditSignInferiors = value; + } + + public void setOverrideDisplayGUIEditSignSuperiors(String[] value) + { + overrideDisplayGUIEditSignSuperiors = value; + } + + public void setOverrideDisplayGUIEditSignInferiors(String[] value) + { + overrideDisplayGUIEditSignInferiors = value; + } + + public void setAfterDisplayGUIEditSignSuperiors(String[] value) + { + afterDisplayGUIEditSignSuperiors = value; + } + + public void setAfterDisplayGUIEditSignInferiors(String[] value) + { + afterDisplayGUIEditSignInferiors = value; + } + + public String[] getBeforeDisplayGUIEnchantmentSuperiors() + { + return beforeDisplayGUIEnchantmentSuperiors; + } + + public String[] getBeforeDisplayGUIEnchantmentInferiors() + { + return beforeDisplayGUIEnchantmentInferiors; + } + + public String[] getOverrideDisplayGUIEnchantmentSuperiors() + { + return overrideDisplayGUIEnchantmentSuperiors; + } + + public String[] getOverrideDisplayGUIEnchantmentInferiors() + { + return overrideDisplayGUIEnchantmentInferiors; + } + + public String[] getAfterDisplayGUIEnchantmentSuperiors() + { + return afterDisplayGUIEnchantmentSuperiors; + } + + public String[] getAfterDisplayGUIEnchantmentInferiors() + { + return afterDisplayGUIEnchantmentInferiors; + } + + public void setBeforeDisplayGUIEnchantmentSuperiors(String[] value) + { + beforeDisplayGUIEnchantmentSuperiors = value; + } + + public void setBeforeDisplayGUIEnchantmentInferiors(String[] value) + { + beforeDisplayGUIEnchantmentInferiors = value; + } + + public void setOverrideDisplayGUIEnchantmentSuperiors(String[] value) + { + overrideDisplayGUIEnchantmentSuperiors = value; + } + + public void setOverrideDisplayGUIEnchantmentInferiors(String[] value) + { + overrideDisplayGUIEnchantmentInferiors = value; + } + + public void setAfterDisplayGUIEnchantmentSuperiors(String[] value) + { + afterDisplayGUIEnchantmentSuperiors = value; + } + + public void setAfterDisplayGUIEnchantmentInferiors(String[] value) + { + afterDisplayGUIEnchantmentInferiors = value; + } + + public String[] getBeforeDisplayGUIFurnaceSuperiors() + { + return beforeDisplayGUIFurnaceSuperiors; + } + + public String[] getBeforeDisplayGUIFurnaceInferiors() + { + return beforeDisplayGUIFurnaceInferiors; + } + + public String[] getOverrideDisplayGUIFurnaceSuperiors() + { + return overrideDisplayGUIFurnaceSuperiors; + } + + public String[] getOverrideDisplayGUIFurnaceInferiors() + { + return overrideDisplayGUIFurnaceInferiors; + } + + public String[] getAfterDisplayGUIFurnaceSuperiors() + { + return afterDisplayGUIFurnaceSuperiors; + } + + public String[] getAfterDisplayGUIFurnaceInferiors() + { + return afterDisplayGUIFurnaceInferiors; + } + + public void setBeforeDisplayGUIFurnaceSuperiors(String[] value) + { + beforeDisplayGUIFurnaceSuperiors = value; + } + + public void setBeforeDisplayGUIFurnaceInferiors(String[] value) + { + beforeDisplayGUIFurnaceInferiors = value; + } + + public void setOverrideDisplayGUIFurnaceSuperiors(String[] value) + { + overrideDisplayGUIFurnaceSuperiors = value; + } + + public void setOverrideDisplayGUIFurnaceInferiors(String[] value) + { + overrideDisplayGUIFurnaceInferiors = value; + } + + public void setAfterDisplayGUIFurnaceSuperiors(String[] value) + { + afterDisplayGUIFurnaceSuperiors = value; + } + + public void setAfterDisplayGUIFurnaceInferiors(String[] value) + { + afterDisplayGUIFurnaceInferiors = value; + } + + public String[] getBeforeDisplayGUIWorkbenchSuperiors() + { + return beforeDisplayGUIWorkbenchSuperiors; + } + + public String[] getBeforeDisplayGUIWorkbenchInferiors() + { + return beforeDisplayGUIWorkbenchInferiors; + } + + public String[] getOverrideDisplayGUIWorkbenchSuperiors() + { + return overrideDisplayGUIWorkbenchSuperiors; + } + + public String[] getOverrideDisplayGUIWorkbenchInferiors() + { + return overrideDisplayGUIWorkbenchInferiors; + } + + public String[] getAfterDisplayGUIWorkbenchSuperiors() + { + return afterDisplayGUIWorkbenchSuperiors; + } + + public String[] getAfterDisplayGUIWorkbenchInferiors() + { + return afterDisplayGUIWorkbenchInferiors; + } + + public void setBeforeDisplayGUIWorkbenchSuperiors(String[] value) + { + beforeDisplayGUIWorkbenchSuperiors = value; + } + + public void setBeforeDisplayGUIWorkbenchInferiors(String[] value) + { + beforeDisplayGUIWorkbenchInferiors = value; + } + + public void setOverrideDisplayGUIWorkbenchSuperiors(String[] value) + { + overrideDisplayGUIWorkbenchSuperiors = value; + } + + public void setOverrideDisplayGUIWorkbenchInferiors(String[] value) + { + overrideDisplayGUIWorkbenchInferiors = value; + } + + public void setAfterDisplayGUIWorkbenchSuperiors(String[] value) + { + afterDisplayGUIWorkbenchSuperiors = value; + } + + public void setAfterDisplayGUIWorkbenchInferiors(String[] value) + { + afterDisplayGUIWorkbenchInferiors = value; + } + + public String[] getBeforeDropOneItemSuperiors() + { + return beforeDropOneItemSuperiors; + } + + public String[] getBeforeDropOneItemInferiors() + { + return beforeDropOneItemInferiors; + } + + public String[] getOverrideDropOneItemSuperiors() + { + return overrideDropOneItemSuperiors; + } + + public String[] getOverrideDropOneItemInferiors() + { + return overrideDropOneItemInferiors; + } + + public String[] getAfterDropOneItemSuperiors() + { + return afterDropOneItemSuperiors; + } + + public String[] getAfterDropOneItemInferiors() + { + return afterDropOneItemInferiors; + } + + public void setBeforeDropOneItemSuperiors(String[] value) + { + beforeDropOneItemSuperiors = value; + } + + public void setBeforeDropOneItemInferiors(String[] value) + { + beforeDropOneItemInferiors = value; + } + + public void setOverrideDropOneItemSuperiors(String[] value) + { + overrideDropOneItemSuperiors = value; + } + + public void setOverrideDropOneItemInferiors(String[] value) + { + overrideDropOneItemInferiors = value; + } + + public void setAfterDropOneItemSuperiors(String[] value) + { + afterDropOneItemSuperiors = value; + } + + public void setAfterDropOneItemInferiors(String[] value) + { + afterDropOneItemInferiors = value; + } + + public String[] getBeforeDropPlayerItemSuperiors() + { + return beforeDropPlayerItemSuperiors; + } + + public String[] getBeforeDropPlayerItemInferiors() + { + return beforeDropPlayerItemInferiors; + } + + public String[] getOverrideDropPlayerItemSuperiors() + { + return overrideDropPlayerItemSuperiors; + } + + public String[] getOverrideDropPlayerItemInferiors() + { + return overrideDropPlayerItemInferiors; + } + + public String[] getAfterDropPlayerItemSuperiors() + { + return afterDropPlayerItemSuperiors; + } + + public String[] getAfterDropPlayerItemInferiors() + { + return afterDropPlayerItemInferiors; + } + + public void setBeforeDropPlayerItemSuperiors(String[] value) + { + beforeDropPlayerItemSuperiors = value; + } + + public void setBeforeDropPlayerItemInferiors(String[] value) + { + beforeDropPlayerItemInferiors = value; + } + + public void setOverrideDropPlayerItemSuperiors(String[] value) + { + overrideDropPlayerItemSuperiors = value; + } + + public void setOverrideDropPlayerItemInferiors(String[] value) + { + overrideDropPlayerItemInferiors = value; + } + + public void setAfterDropPlayerItemSuperiors(String[] value) + { + afterDropPlayerItemSuperiors = value; + } + + public void setAfterDropPlayerItemInferiors(String[] value) + { + afterDropPlayerItemInferiors = value; + } + + public String[] getBeforeDropPlayerItemWithRandomChoiceSuperiors() + { + return beforeDropPlayerItemWithRandomChoiceSuperiors; + } + + public String[] getBeforeDropPlayerItemWithRandomChoiceInferiors() + { + return beforeDropPlayerItemWithRandomChoiceInferiors; + } + + public String[] getOverrideDropPlayerItemWithRandomChoiceSuperiors() + { + return overrideDropPlayerItemWithRandomChoiceSuperiors; + } + + public String[] getOverrideDropPlayerItemWithRandomChoiceInferiors() + { + return overrideDropPlayerItemWithRandomChoiceInferiors; + } + + public String[] getAfterDropPlayerItemWithRandomChoiceSuperiors() + { + return afterDropPlayerItemWithRandomChoiceSuperiors; + } + + public String[] getAfterDropPlayerItemWithRandomChoiceInferiors() + { + return afterDropPlayerItemWithRandomChoiceInferiors; + } + + public void setBeforeDropPlayerItemWithRandomChoiceSuperiors(String[] value) + { + beforeDropPlayerItemWithRandomChoiceSuperiors = value; + } + + public void setBeforeDropPlayerItemWithRandomChoiceInferiors(String[] value) + { + beforeDropPlayerItemWithRandomChoiceInferiors = value; + } + + public void setOverrideDropPlayerItemWithRandomChoiceSuperiors(String[] value) + { + overrideDropPlayerItemWithRandomChoiceSuperiors = value; + } + + public void setOverrideDropPlayerItemWithRandomChoiceInferiors(String[] value) + { + overrideDropPlayerItemWithRandomChoiceInferiors = value; + } + + public void setAfterDropPlayerItemWithRandomChoiceSuperiors(String[] value) + { + afterDropPlayerItemWithRandomChoiceSuperiors = value; + } + + public void setAfterDropPlayerItemWithRandomChoiceInferiors(String[] value) + { + afterDropPlayerItemWithRandomChoiceInferiors = value; + } + + public String[] getBeforeFallSuperiors() + { + return beforeFallSuperiors; + } + + public String[] getBeforeFallInferiors() + { + return beforeFallInferiors; + } + + public String[] getOverrideFallSuperiors() + { + return overrideFallSuperiors; + } + + public String[] getOverrideFallInferiors() + { + return overrideFallInferiors; + } + + public String[] getAfterFallSuperiors() + { + return afterFallSuperiors; + } + + public String[] getAfterFallInferiors() + { + return afterFallInferiors; + } + + public void setBeforeFallSuperiors(String[] value) + { + beforeFallSuperiors = value; + } + + public void setBeforeFallInferiors(String[] value) + { + beforeFallInferiors = value; + } + + public void setOverrideFallSuperiors(String[] value) + { + overrideFallSuperiors = value; + } + + public void setOverrideFallInferiors(String[] value) + { + overrideFallInferiors = value; + } + + public void setAfterFallSuperiors(String[] value) + { + afterFallSuperiors = value; + } + + public void setAfterFallInferiors(String[] value) + { + afterFallInferiors = value; + } + + public String[] getBeforeGetAIMoveSpeedSuperiors() + { + return beforeGetAIMoveSpeedSuperiors; + } + + public String[] getBeforeGetAIMoveSpeedInferiors() + { + return beforeGetAIMoveSpeedInferiors; + } + + public String[] getOverrideGetAIMoveSpeedSuperiors() + { + return overrideGetAIMoveSpeedSuperiors; + } + + public String[] getOverrideGetAIMoveSpeedInferiors() + { + return overrideGetAIMoveSpeedInferiors; + } + + public String[] getAfterGetAIMoveSpeedSuperiors() + { + return afterGetAIMoveSpeedSuperiors; + } + + public String[] getAfterGetAIMoveSpeedInferiors() + { + return afterGetAIMoveSpeedInferiors; + } + + public void setBeforeGetAIMoveSpeedSuperiors(String[] value) + { + beforeGetAIMoveSpeedSuperiors = value; + } + + public void setBeforeGetAIMoveSpeedInferiors(String[] value) + { + beforeGetAIMoveSpeedInferiors = value; + } + + public void setOverrideGetAIMoveSpeedSuperiors(String[] value) + { + overrideGetAIMoveSpeedSuperiors = value; + } + + public void setOverrideGetAIMoveSpeedInferiors(String[] value) + { + overrideGetAIMoveSpeedInferiors = value; + } + + public void setAfterGetAIMoveSpeedSuperiors(String[] value) + { + afterGetAIMoveSpeedSuperiors = value; + } + + public void setAfterGetAIMoveSpeedInferiors(String[] value) + { + afterGetAIMoveSpeedInferiors = value; + } + + public String[] getBeforeGetBedOrientationInDegreesSuperiors() + { + return beforeGetBedOrientationInDegreesSuperiors; + } + + public String[] getBeforeGetBedOrientationInDegreesInferiors() + { + return beforeGetBedOrientationInDegreesInferiors; + } + + public String[] getOverrideGetBedOrientationInDegreesSuperiors() + { + return overrideGetBedOrientationInDegreesSuperiors; + } + + public String[] getOverrideGetBedOrientationInDegreesInferiors() + { + return overrideGetBedOrientationInDegreesInferiors; + } + + public String[] getAfterGetBedOrientationInDegreesSuperiors() + { + return afterGetBedOrientationInDegreesSuperiors; + } + + public String[] getAfterGetBedOrientationInDegreesInferiors() + { + return afterGetBedOrientationInDegreesInferiors; + } + + public void setBeforeGetBedOrientationInDegreesSuperiors(String[] value) + { + beforeGetBedOrientationInDegreesSuperiors = value; + } + + public void setBeforeGetBedOrientationInDegreesInferiors(String[] value) + { + beforeGetBedOrientationInDegreesInferiors = value; + } + + public void setOverrideGetBedOrientationInDegreesSuperiors(String[] value) + { + overrideGetBedOrientationInDegreesSuperiors = value; + } + + public void setOverrideGetBedOrientationInDegreesInferiors(String[] value) + { + overrideGetBedOrientationInDegreesInferiors = value; + } + + public void setAfterGetBedOrientationInDegreesSuperiors(String[] value) + { + afterGetBedOrientationInDegreesSuperiors = value; + } + + public void setAfterGetBedOrientationInDegreesInferiors(String[] value) + { + afterGetBedOrientationInDegreesInferiors = value; + } + + public String[] getBeforeGetBrightnessSuperiors() + { + return beforeGetBrightnessSuperiors; + } + + public String[] getBeforeGetBrightnessInferiors() + { + return beforeGetBrightnessInferiors; + } + + public String[] getOverrideGetBrightnessSuperiors() + { + return overrideGetBrightnessSuperiors; + } + + public String[] getOverrideGetBrightnessInferiors() + { + return overrideGetBrightnessInferiors; + } + + public String[] getAfterGetBrightnessSuperiors() + { + return afterGetBrightnessSuperiors; + } + + public String[] getAfterGetBrightnessInferiors() + { + return afterGetBrightnessInferiors; + } + + public void setBeforeGetBrightnessSuperiors(String[] value) + { + beforeGetBrightnessSuperiors = value; + } + + public void setBeforeGetBrightnessInferiors(String[] value) + { + beforeGetBrightnessInferiors = value; + } + + public void setOverrideGetBrightnessSuperiors(String[] value) + { + overrideGetBrightnessSuperiors = value; + } + + public void setOverrideGetBrightnessInferiors(String[] value) + { + overrideGetBrightnessInferiors = value; + } + + public void setAfterGetBrightnessSuperiors(String[] value) + { + afterGetBrightnessSuperiors = value; + } + + public void setAfterGetBrightnessInferiors(String[] value) + { + afterGetBrightnessInferiors = value; + } + + public String[] getBeforeGetBrightnessForRenderSuperiors() + { + return beforeGetBrightnessForRenderSuperiors; + } + + public String[] getBeforeGetBrightnessForRenderInferiors() + { + return beforeGetBrightnessForRenderInferiors; + } + + public String[] getOverrideGetBrightnessForRenderSuperiors() + { + return overrideGetBrightnessForRenderSuperiors; + } + + public String[] getOverrideGetBrightnessForRenderInferiors() + { + return overrideGetBrightnessForRenderInferiors; + } + + public String[] getAfterGetBrightnessForRenderSuperiors() + { + return afterGetBrightnessForRenderSuperiors; + } + + public String[] getAfterGetBrightnessForRenderInferiors() + { + return afterGetBrightnessForRenderInferiors; + } + + public void setBeforeGetBrightnessForRenderSuperiors(String[] value) + { + beforeGetBrightnessForRenderSuperiors = value; + } + + public void setBeforeGetBrightnessForRenderInferiors(String[] value) + { + beforeGetBrightnessForRenderInferiors = value; + } + + public void setOverrideGetBrightnessForRenderSuperiors(String[] value) + { + overrideGetBrightnessForRenderSuperiors = value; + } + + public void setOverrideGetBrightnessForRenderInferiors(String[] value) + { + overrideGetBrightnessForRenderInferiors = value; + } + + public void setAfterGetBrightnessForRenderSuperiors(String[] value) + { + afterGetBrightnessForRenderSuperiors = value; + } + + public void setAfterGetBrightnessForRenderInferiors(String[] value) + { + afterGetBrightnessForRenderInferiors = value; + } + + public String[] getBeforeGetCurrentPlayerStrVsBlockSuperiors() + { + return beforeGetCurrentPlayerStrVsBlockSuperiors; + } + + public String[] getBeforeGetCurrentPlayerStrVsBlockInferiors() + { + return beforeGetCurrentPlayerStrVsBlockInferiors; + } + + public String[] getOverrideGetCurrentPlayerStrVsBlockSuperiors() + { + return overrideGetCurrentPlayerStrVsBlockSuperiors; + } + + public String[] getOverrideGetCurrentPlayerStrVsBlockInferiors() + { + return overrideGetCurrentPlayerStrVsBlockInferiors; + } + + public String[] getAfterGetCurrentPlayerStrVsBlockSuperiors() + { + return afterGetCurrentPlayerStrVsBlockSuperiors; + } + + public String[] getAfterGetCurrentPlayerStrVsBlockInferiors() + { + return afterGetCurrentPlayerStrVsBlockInferiors; + } + + public void setBeforeGetCurrentPlayerStrVsBlockSuperiors(String[] value) + { + beforeGetCurrentPlayerStrVsBlockSuperiors = value; + } + + public void setBeforeGetCurrentPlayerStrVsBlockInferiors(String[] value) + { + beforeGetCurrentPlayerStrVsBlockInferiors = value; + } + + public void setOverrideGetCurrentPlayerStrVsBlockSuperiors(String[] value) + { + overrideGetCurrentPlayerStrVsBlockSuperiors = value; + } + + public void setOverrideGetCurrentPlayerStrVsBlockInferiors(String[] value) + { + overrideGetCurrentPlayerStrVsBlockInferiors = value; + } + + public void setAfterGetCurrentPlayerStrVsBlockSuperiors(String[] value) + { + afterGetCurrentPlayerStrVsBlockSuperiors = value; + } + + public void setAfterGetCurrentPlayerStrVsBlockInferiors(String[] value) + { + afterGetCurrentPlayerStrVsBlockInferiors = value; + } + + public String[] getBeforeGetCurrentPlayerStrVsBlockForgeSuperiors() + { + return beforeGetCurrentPlayerStrVsBlockForgeSuperiors; + } + + public String[] getBeforeGetCurrentPlayerStrVsBlockForgeInferiors() + { + return beforeGetCurrentPlayerStrVsBlockForgeInferiors; + } + + public String[] getOverrideGetCurrentPlayerStrVsBlockForgeSuperiors() + { + return overrideGetCurrentPlayerStrVsBlockForgeSuperiors; + } + + public String[] getOverrideGetCurrentPlayerStrVsBlockForgeInferiors() + { + return overrideGetCurrentPlayerStrVsBlockForgeInferiors; + } + + public String[] getAfterGetCurrentPlayerStrVsBlockForgeSuperiors() + { + return afterGetCurrentPlayerStrVsBlockForgeSuperiors; + } + + public String[] getAfterGetCurrentPlayerStrVsBlockForgeInferiors() + { + return afterGetCurrentPlayerStrVsBlockForgeInferiors; + } + + public void setBeforeGetCurrentPlayerStrVsBlockForgeSuperiors(String[] value) + { + beforeGetCurrentPlayerStrVsBlockForgeSuperiors = value; + } + + public void setBeforeGetCurrentPlayerStrVsBlockForgeInferiors(String[] value) + { + beforeGetCurrentPlayerStrVsBlockForgeInferiors = value; + } + + public void setOverrideGetCurrentPlayerStrVsBlockForgeSuperiors(String[] value) + { + overrideGetCurrentPlayerStrVsBlockForgeSuperiors = value; + } + + public void setOverrideGetCurrentPlayerStrVsBlockForgeInferiors(String[] value) + { + overrideGetCurrentPlayerStrVsBlockForgeInferiors = value; + } + + public void setAfterGetCurrentPlayerStrVsBlockForgeSuperiors(String[] value) + { + afterGetCurrentPlayerStrVsBlockForgeSuperiors = value; + } + + public void setAfterGetCurrentPlayerStrVsBlockForgeInferiors(String[] value) + { + afterGetCurrentPlayerStrVsBlockForgeInferiors = value; + } + + public String[] getBeforeGetDistanceSqSuperiors() + { + return beforeGetDistanceSqSuperiors; + } + + public String[] getBeforeGetDistanceSqInferiors() + { + return beforeGetDistanceSqInferiors; + } + + public String[] getOverrideGetDistanceSqSuperiors() + { + return overrideGetDistanceSqSuperiors; + } + + public String[] getOverrideGetDistanceSqInferiors() + { + return overrideGetDistanceSqInferiors; + } + + public String[] getAfterGetDistanceSqSuperiors() + { + return afterGetDistanceSqSuperiors; + } + + public String[] getAfterGetDistanceSqInferiors() + { + return afterGetDistanceSqInferiors; + } + + public void setBeforeGetDistanceSqSuperiors(String[] value) + { + beforeGetDistanceSqSuperiors = value; + } + + public void setBeforeGetDistanceSqInferiors(String[] value) + { + beforeGetDistanceSqInferiors = value; + } + + public void setOverrideGetDistanceSqSuperiors(String[] value) + { + overrideGetDistanceSqSuperiors = value; + } + + public void setOverrideGetDistanceSqInferiors(String[] value) + { + overrideGetDistanceSqInferiors = value; + } + + public void setAfterGetDistanceSqSuperiors(String[] value) + { + afterGetDistanceSqSuperiors = value; + } + + public void setAfterGetDistanceSqInferiors(String[] value) + { + afterGetDistanceSqInferiors = value; + } + + public String[] getBeforeGetDistanceSqToEntitySuperiors() + { + return beforeGetDistanceSqToEntitySuperiors; + } + + public String[] getBeforeGetDistanceSqToEntityInferiors() + { + return beforeGetDistanceSqToEntityInferiors; + } + + public String[] getOverrideGetDistanceSqToEntitySuperiors() + { + return overrideGetDistanceSqToEntitySuperiors; + } + + public String[] getOverrideGetDistanceSqToEntityInferiors() + { + return overrideGetDistanceSqToEntityInferiors; + } + + public String[] getAfterGetDistanceSqToEntitySuperiors() + { + return afterGetDistanceSqToEntitySuperiors; + } + + public String[] getAfterGetDistanceSqToEntityInferiors() + { + return afterGetDistanceSqToEntityInferiors; + } + + public void setBeforeGetDistanceSqToEntitySuperiors(String[] value) + { + beforeGetDistanceSqToEntitySuperiors = value; + } + + public void setBeforeGetDistanceSqToEntityInferiors(String[] value) + { + beforeGetDistanceSqToEntityInferiors = value; + } + + public void setOverrideGetDistanceSqToEntitySuperiors(String[] value) + { + overrideGetDistanceSqToEntitySuperiors = value; + } + + public void setOverrideGetDistanceSqToEntityInferiors(String[] value) + { + overrideGetDistanceSqToEntityInferiors = value; + } + + public void setAfterGetDistanceSqToEntitySuperiors(String[] value) + { + afterGetDistanceSqToEntitySuperiors = value; + } + + public void setAfterGetDistanceSqToEntityInferiors(String[] value) + { + afterGetDistanceSqToEntityInferiors = value; + } + + public String[] getBeforeGetFOVMultiplierSuperiors() + { + return beforeGetFOVMultiplierSuperiors; + } + + public String[] getBeforeGetFOVMultiplierInferiors() + { + return beforeGetFOVMultiplierInferiors; + } + + public String[] getOverrideGetFOVMultiplierSuperiors() + { + return overrideGetFOVMultiplierSuperiors; + } + + public String[] getOverrideGetFOVMultiplierInferiors() + { + return overrideGetFOVMultiplierInferiors; + } + + public String[] getAfterGetFOVMultiplierSuperiors() + { + return afterGetFOVMultiplierSuperiors; + } + + public String[] getAfterGetFOVMultiplierInferiors() + { + return afterGetFOVMultiplierInferiors; + } + + public void setBeforeGetFOVMultiplierSuperiors(String[] value) + { + beforeGetFOVMultiplierSuperiors = value; + } + + public void setBeforeGetFOVMultiplierInferiors(String[] value) + { + beforeGetFOVMultiplierInferiors = value; + } + + public void setOverrideGetFOVMultiplierSuperiors(String[] value) + { + overrideGetFOVMultiplierSuperiors = value; + } + + public void setOverrideGetFOVMultiplierInferiors(String[] value) + { + overrideGetFOVMultiplierInferiors = value; + } + + public void setAfterGetFOVMultiplierSuperiors(String[] value) + { + afterGetFOVMultiplierSuperiors = value; + } + + public void setAfterGetFOVMultiplierInferiors(String[] value) + { + afterGetFOVMultiplierInferiors = value; + } + + public String[] getBeforeGetHurtSoundSuperiors() + { + return beforeGetHurtSoundSuperiors; + } + + public String[] getBeforeGetHurtSoundInferiors() + { + return beforeGetHurtSoundInferiors; + } + + public String[] getOverrideGetHurtSoundSuperiors() + { + return overrideGetHurtSoundSuperiors; + } + + public String[] getOverrideGetHurtSoundInferiors() + { + return overrideGetHurtSoundInferiors; + } + + public String[] getAfterGetHurtSoundSuperiors() + { + return afterGetHurtSoundSuperiors; + } + + public String[] getAfterGetHurtSoundInferiors() + { + return afterGetHurtSoundInferiors; + } + + public void setBeforeGetHurtSoundSuperiors(String[] value) + { + beforeGetHurtSoundSuperiors = value; + } + + public void setBeforeGetHurtSoundInferiors(String[] value) + { + beforeGetHurtSoundInferiors = value; + } + + public void setOverrideGetHurtSoundSuperiors(String[] value) + { + overrideGetHurtSoundSuperiors = value; + } + + public void setOverrideGetHurtSoundInferiors(String[] value) + { + overrideGetHurtSoundInferiors = value; + } + + public void setAfterGetHurtSoundSuperiors(String[] value) + { + afterGetHurtSoundSuperiors = value; + } + + public void setAfterGetHurtSoundInferiors(String[] value) + { + afterGetHurtSoundInferiors = value; + } + + public String[] getBeforeGetItemIconSuperiors() + { + return beforeGetItemIconSuperiors; + } + + public String[] getBeforeGetItemIconInferiors() + { + return beforeGetItemIconInferiors; + } + + public String[] getOverrideGetItemIconSuperiors() + { + return overrideGetItemIconSuperiors; + } + + public String[] getOverrideGetItemIconInferiors() + { + return overrideGetItemIconInferiors; + } + + public String[] getAfterGetItemIconSuperiors() + { + return afterGetItemIconSuperiors; + } + + public String[] getAfterGetItemIconInferiors() + { + return afterGetItemIconInferiors; + } + + public void setBeforeGetItemIconSuperiors(String[] value) + { + beforeGetItemIconSuperiors = value; + } + + public void setBeforeGetItemIconInferiors(String[] value) + { + beforeGetItemIconInferiors = value; + } + + public void setOverrideGetItemIconSuperiors(String[] value) + { + overrideGetItemIconSuperiors = value; + } + + public void setOverrideGetItemIconInferiors(String[] value) + { + overrideGetItemIconInferiors = value; + } + + public void setAfterGetItemIconSuperiors(String[] value) + { + afterGetItemIconSuperiors = value; + } + + public void setAfterGetItemIconInferiors(String[] value) + { + afterGetItemIconInferiors = value; + } + + public String[] getBeforeGetSleepTimerSuperiors() + { + return beforeGetSleepTimerSuperiors; + } + + public String[] getBeforeGetSleepTimerInferiors() + { + return beforeGetSleepTimerInferiors; + } + + public String[] getOverrideGetSleepTimerSuperiors() + { + return overrideGetSleepTimerSuperiors; + } + + public String[] getOverrideGetSleepTimerInferiors() + { + return overrideGetSleepTimerInferiors; + } + + public String[] getAfterGetSleepTimerSuperiors() + { + return afterGetSleepTimerSuperiors; + } + + public String[] getAfterGetSleepTimerInferiors() + { + return afterGetSleepTimerInferiors; + } + + public void setBeforeGetSleepTimerSuperiors(String[] value) + { + beforeGetSleepTimerSuperiors = value; + } + + public void setBeforeGetSleepTimerInferiors(String[] value) + { + beforeGetSleepTimerInferiors = value; + } + + public void setOverrideGetSleepTimerSuperiors(String[] value) + { + overrideGetSleepTimerSuperiors = value; + } + + public void setOverrideGetSleepTimerInferiors(String[] value) + { + overrideGetSleepTimerInferiors = value; + } + + public void setAfterGetSleepTimerSuperiors(String[] value) + { + afterGetSleepTimerSuperiors = value; + } + + public void setAfterGetSleepTimerInferiors(String[] value) + { + afterGetSleepTimerInferiors = value; + } + + public String[] getBeforeHandleLavaMovementSuperiors() + { + return beforeHandleLavaMovementSuperiors; + } + + public String[] getBeforeHandleLavaMovementInferiors() + { + return beforeHandleLavaMovementInferiors; + } + + public String[] getOverrideHandleLavaMovementSuperiors() + { + return overrideHandleLavaMovementSuperiors; + } + + public String[] getOverrideHandleLavaMovementInferiors() + { + return overrideHandleLavaMovementInferiors; + } + + public String[] getAfterHandleLavaMovementSuperiors() + { + return afterHandleLavaMovementSuperiors; + } + + public String[] getAfterHandleLavaMovementInferiors() + { + return afterHandleLavaMovementInferiors; + } + + public void setBeforeHandleLavaMovementSuperiors(String[] value) + { + beforeHandleLavaMovementSuperiors = value; + } + + public void setBeforeHandleLavaMovementInferiors(String[] value) + { + beforeHandleLavaMovementInferiors = value; + } + + public void setOverrideHandleLavaMovementSuperiors(String[] value) + { + overrideHandleLavaMovementSuperiors = value; + } + + public void setOverrideHandleLavaMovementInferiors(String[] value) + { + overrideHandleLavaMovementInferiors = value; + } + + public void setAfterHandleLavaMovementSuperiors(String[] value) + { + afterHandleLavaMovementSuperiors = value; + } + + public void setAfterHandleLavaMovementInferiors(String[] value) + { + afterHandleLavaMovementInferiors = value; + } + + public String[] getBeforeHandleWaterMovementSuperiors() + { + return beforeHandleWaterMovementSuperiors; + } + + public String[] getBeforeHandleWaterMovementInferiors() + { + return beforeHandleWaterMovementInferiors; + } + + public String[] getOverrideHandleWaterMovementSuperiors() + { + return overrideHandleWaterMovementSuperiors; + } + + public String[] getOverrideHandleWaterMovementInferiors() + { + return overrideHandleWaterMovementInferiors; + } + + public String[] getAfterHandleWaterMovementSuperiors() + { + return afterHandleWaterMovementSuperiors; + } + + public String[] getAfterHandleWaterMovementInferiors() + { + return afterHandleWaterMovementInferiors; + } + + public void setBeforeHandleWaterMovementSuperiors(String[] value) + { + beforeHandleWaterMovementSuperiors = value; + } + + public void setBeforeHandleWaterMovementInferiors(String[] value) + { + beforeHandleWaterMovementInferiors = value; + } + + public void setOverrideHandleWaterMovementSuperiors(String[] value) + { + overrideHandleWaterMovementSuperiors = value; + } + + public void setOverrideHandleWaterMovementInferiors(String[] value) + { + overrideHandleWaterMovementInferiors = value; + } + + public void setAfterHandleWaterMovementSuperiors(String[] value) + { + afterHandleWaterMovementSuperiors = value; + } + + public void setAfterHandleWaterMovementInferiors(String[] value) + { + afterHandleWaterMovementInferiors = value; + } + + public String[] getBeforeHealSuperiors() + { + return beforeHealSuperiors; + } + + public String[] getBeforeHealInferiors() + { + return beforeHealInferiors; + } + + public String[] getOverrideHealSuperiors() + { + return overrideHealSuperiors; + } + + public String[] getOverrideHealInferiors() + { + return overrideHealInferiors; + } + + public String[] getAfterHealSuperiors() + { + return afterHealSuperiors; + } + + public String[] getAfterHealInferiors() + { + return afterHealInferiors; + } + + public void setBeforeHealSuperiors(String[] value) + { + beforeHealSuperiors = value; + } + + public void setBeforeHealInferiors(String[] value) + { + beforeHealInferiors = value; + } + + public void setOverrideHealSuperiors(String[] value) + { + overrideHealSuperiors = value; + } + + public void setOverrideHealInferiors(String[] value) + { + overrideHealInferiors = value; + } + + public void setAfterHealSuperiors(String[] value) + { + afterHealSuperiors = value; + } + + public void setAfterHealInferiors(String[] value) + { + afterHealInferiors = value; + } + + public String[] getBeforeIsEntityInsideOpaqueBlockSuperiors() + { + return beforeIsEntityInsideOpaqueBlockSuperiors; + } + + public String[] getBeforeIsEntityInsideOpaqueBlockInferiors() + { + return beforeIsEntityInsideOpaqueBlockInferiors; + } + + public String[] getOverrideIsEntityInsideOpaqueBlockSuperiors() + { + return overrideIsEntityInsideOpaqueBlockSuperiors; + } + + public String[] getOverrideIsEntityInsideOpaqueBlockInferiors() + { + return overrideIsEntityInsideOpaqueBlockInferiors; + } + + public String[] getAfterIsEntityInsideOpaqueBlockSuperiors() + { + return afterIsEntityInsideOpaqueBlockSuperiors; + } + + public String[] getAfterIsEntityInsideOpaqueBlockInferiors() + { + return afterIsEntityInsideOpaqueBlockInferiors; + } + + public void setBeforeIsEntityInsideOpaqueBlockSuperiors(String[] value) + { + beforeIsEntityInsideOpaqueBlockSuperiors = value; + } + + public void setBeforeIsEntityInsideOpaqueBlockInferiors(String[] value) + { + beforeIsEntityInsideOpaqueBlockInferiors = value; + } + + public void setOverrideIsEntityInsideOpaqueBlockSuperiors(String[] value) + { + overrideIsEntityInsideOpaqueBlockSuperiors = value; + } + + public void setOverrideIsEntityInsideOpaqueBlockInferiors(String[] value) + { + overrideIsEntityInsideOpaqueBlockInferiors = value; + } + + public void setAfterIsEntityInsideOpaqueBlockSuperiors(String[] value) + { + afterIsEntityInsideOpaqueBlockSuperiors = value; + } + + public void setAfterIsEntityInsideOpaqueBlockInferiors(String[] value) + { + afterIsEntityInsideOpaqueBlockInferiors = value; + } + + public String[] getBeforeIsInWaterSuperiors() + { + return beforeIsInWaterSuperiors; + } + + public String[] getBeforeIsInWaterInferiors() + { + return beforeIsInWaterInferiors; + } + + public String[] getOverrideIsInWaterSuperiors() + { + return overrideIsInWaterSuperiors; + } + + public String[] getOverrideIsInWaterInferiors() + { + return overrideIsInWaterInferiors; + } + + public String[] getAfterIsInWaterSuperiors() + { + return afterIsInWaterSuperiors; + } + + public String[] getAfterIsInWaterInferiors() + { + return afterIsInWaterInferiors; + } + + public void setBeforeIsInWaterSuperiors(String[] value) + { + beforeIsInWaterSuperiors = value; + } + + public void setBeforeIsInWaterInferiors(String[] value) + { + beforeIsInWaterInferiors = value; + } + + public void setOverrideIsInWaterSuperiors(String[] value) + { + overrideIsInWaterSuperiors = value; + } + + public void setOverrideIsInWaterInferiors(String[] value) + { + overrideIsInWaterInferiors = value; + } + + public void setAfterIsInWaterSuperiors(String[] value) + { + afterIsInWaterSuperiors = value; + } + + public void setAfterIsInWaterInferiors(String[] value) + { + afterIsInWaterInferiors = value; + } + + public String[] getBeforeIsInsideOfMaterialSuperiors() + { + return beforeIsInsideOfMaterialSuperiors; + } + + public String[] getBeforeIsInsideOfMaterialInferiors() + { + return beforeIsInsideOfMaterialInferiors; + } + + public String[] getOverrideIsInsideOfMaterialSuperiors() + { + return overrideIsInsideOfMaterialSuperiors; + } + + public String[] getOverrideIsInsideOfMaterialInferiors() + { + return overrideIsInsideOfMaterialInferiors; + } + + public String[] getAfterIsInsideOfMaterialSuperiors() + { + return afterIsInsideOfMaterialSuperiors; + } + + public String[] getAfterIsInsideOfMaterialInferiors() + { + return afterIsInsideOfMaterialInferiors; + } + + public void setBeforeIsInsideOfMaterialSuperiors(String[] value) + { + beforeIsInsideOfMaterialSuperiors = value; + } + + public void setBeforeIsInsideOfMaterialInferiors(String[] value) + { + beforeIsInsideOfMaterialInferiors = value; + } + + public void setOverrideIsInsideOfMaterialSuperiors(String[] value) + { + overrideIsInsideOfMaterialSuperiors = value; + } + + public void setOverrideIsInsideOfMaterialInferiors(String[] value) + { + overrideIsInsideOfMaterialInferiors = value; + } + + public void setAfterIsInsideOfMaterialSuperiors(String[] value) + { + afterIsInsideOfMaterialSuperiors = value; + } + + public void setAfterIsInsideOfMaterialInferiors(String[] value) + { + afterIsInsideOfMaterialInferiors = value; + } + + public String[] getBeforeIsOnLadderSuperiors() + { + return beforeIsOnLadderSuperiors; + } + + public String[] getBeforeIsOnLadderInferiors() + { + return beforeIsOnLadderInferiors; + } + + public String[] getOverrideIsOnLadderSuperiors() + { + return overrideIsOnLadderSuperiors; + } + + public String[] getOverrideIsOnLadderInferiors() + { + return overrideIsOnLadderInferiors; + } + + public String[] getAfterIsOnLadderSuperiors() + { + return afterIsOnLadderSuperiors; + } + + public String[] getAfterIsOnLadderInferiors() + { + return afterIsOnLadderInferiors; + } + + public void setBeforeIsOnLadderSuperiors(String[] value) + { + beforeIsOnLadderSuperiors = value; + } + + public void setBeforeIsOnLadderInferiors(String[] value) + { + beforeIsOnLadderInferiors = value; + } + + public void setOverrideIsOnLadderSuperiors(String[] value) + { + overrideIsOnLadderSuperiors = value; + } + + public void setOverrideIsOnLadderInferiors(String[] value) + { + overrideIsOnLadderInferiors = value; + } + + public void setAfterIsOnLadderSuperiors(String[] value) + { + afterIsOnLadderSuperiors = value; + } + + public void setAfterIsOnLadderInferiors(String[] value) + { + afterIsOnLadderInferiors = value; + } + + public String[] getBeforeIsPlayerSleepingSuperiors() + { + return beforeIsPlayerSleepingSuperiors; + } + + public String[] getBeforeIsPlayerSleepingInferiors() + { + return beforeIsPlayerSleepingInferiors; + } + + public String[] getOverrideIsPlayerSleepingSuperiors() + { + return overrideIsPlayerSleepingSuperiors; + } + + public String[] getOverrideIsPlayerSleepingInferiors() + { + return overrideIsPlayerSleepingInferiors; + } + + public String[] getAfterIsPlayerSleepingSuperiors() + { + return afterIsPlayerSleepingSuperiors; + } + + public String[] getAfterIsPlayerSleepingInferiors() + { + return afterIsPlayerSleepingInferiors; + } + + public void setBeforeIsPlayerSleepingSuperiors(String[] value) + { + beforeIsPlayerSleepingSuperiors = value; + } + + public void setBeforeIsPlayerSleepingInferiors(String[] value) + { + beforeIsPlayerSleepingInferiors = value; + } + + public void setOverrideIsPlayerSleepingSuperiors(String[] value) + { + overrideIsPlayerSleepingSuperiors = value; + } + + public void setOverrideIsPlayerSleepingInferiors(String[] value) + { + overrideIsPlayerSleepingInferiors = value; + } + + public void setAfterIsPlayerSleepingSuperiors(String[] value) + { + afterIsPlayerSleepingSuperiors = value; + } + + public void setAfterIsPlayerSleepingInferiors(String[] value) + { + afterIsPlayerSleepingInferiors = value; + } + + public String[] getBeforeIsSneakingSuperiors() + { + return beforeIsSneakingSuperiors; + } + + public String[] getBeforeIsSneakingInferiors() + { + return beforeIsSneakingInferiors; + } + + public String[] getOverrideIsSneakingSuperiors() + { + return overrideIsSneakingSuperiors; + } + + public String[] getOverrideIsSneakingInferiors() + { + return overrideIsSneakingInferiors; + } + + public String[] getAfterIsSneakingSuperiors() + { + return afterIsSneakingSuperiors; + } + + public String[] getAfterIsSneakingInferiors() + { + return afterIsSneakingInferiors; + } + + public void setBeforeIsSneakingSuperiors(String[] value) + { + beforeIsSneakingSuperiors = value; + } + + public void setBeforeIsSneakingInferiors(String[] value) + { + beforeIsSneakingInferiors = value; + } + + public void setOverrideIsSneakingSuperiors(String[] value) + { + overrideIsSneakingSuperiors = value; + } + + public void setOverrideIsSneakingInferiors(String[] value) + { + overrideIsSneakingInferiors = value; + } + + public void setAfterIsSneakingSuperiors(String[] value) + { + afterIsSneakingSuperiors = value; + } + + public void setAfterIsSneakingInferiors(String[] value) + { + afterIsSneakingInferiors = value; + } + + public String[] getBeforeIsSprintingSuperiors() + { + return beforeIsSprintingSuperiors; + } + + public String[] getBeforeIsSprintingInferiors() + { + return beforeIsSprintingInferiors; + } + + public String[] getOverrideIsSprintingSuperiors() + { + return overrideIsSprintingSuperiors; + } + + public String[] getOverrideIsSprintingInferiors() + { + return overrideIsSprintingInferiors; + } + + public String[] getAfterIsSprintingSuperiors() + { + return afterIsSprintingSuperiors; + } + + public String[] getAfterIsSprintingInferiors() + { + return afterIsSprintingInferiors; + } + + public void setBeforeIsSprintingSuperiors(String[] value) + { + beforeIsSprintingSuperiors = value; + } + + public void setBeforeIsSprintingInferiors(String[] value) + { + beforeIsSprintingInferiors = value; + } + + public void setOverrideIsSprintingSuperiors(String[] value) + { + overrideIsSprintingSuperiors = value; + } + + public void setOverrideIsSprintingInferiors(String[] value) + { + overrideIsSprintingInferiors = value; + } + + public void setAfterIsSprintingSuperiors(String[] value) + { + afterIsSprintingSuperiors = value; + } + + public void setAfterIsSprintingInferiors(String[] value) + { + afterIsSprintingInferiors = value; + } + + public String[] getBeforeJumpSuperiors() + { + return beforeJumpSuperiors; + } + + public String[] getBeforeJumpInferiors() + { + return beforeJumpInferiors; + } + + public String[] getOverrideJumpSuperiors() + { + return overrideJumpSuperiors; + } + + public String[] getOverrideJumpInferiors() + { + return overrideJumpInferiors; + } + + public String[] getAfterJumpSuperiors() + { + return afterJumpSuperiors; + } + + public String[] getAfterJumpInferiors() + { + return afterJumpInferiors; + } + + public void setBeforeJumpSuperiors(String[] value) + { + beforeJumpSuperiors = value; + } + + public void setBeforeJumpInferiors(String[] value) + { + beforeJumpInferiors = value; + } + + public void setOverrideJumpSuperiors(String[] value) + { + overrideJumpSuperiors = value; + } + + public void setOverrideJumpInferiors(String[] value) + { + overrideJumpInferiors = value; + } + + public void setAfterJumpSuperiors(String[] value) + { + afterJumpSuperiors = value; + } + + public void setAfterJumpInferiors(String[] value) + { + afterJumpInferiors = value; + } + + public String[] getBeforeKnockBackSuperiors() + { + return beforeKnockBackSuperiors; + } + + public String[] getBeforeKnockBackInferiors() + { + return beforeKnockBackInferiors; + } + + public String[] getOverrideKnockBackSuperiors() + { + return overrideKnockBackSuperiors; + } + + public String[] getOverrideKnockBackInferiors() + { + return overrideKnockBackInferiors; + } + + public String[] getAfterKnockBackSuperiors() + { + return afterKnockBackSuperiors; + } + + public String[] getAfterKnockBackInferiors() + { + return afterKnockBackInferiors; + } + + public void setBeforeKnockBackSuperiors(String[] value) + { + beforeKnockBackSuperiors = value; + } + + public void setBeforeKnockBackInferiors(String[] value) + { + beforeKnockBackInferiors = value; + } + + public void setOverrideKnockBackSuperiors(String[] value) + { + overrideKnockBackSuperiors = value; + } + + public void setOverrideKnockBackInferiors(String[] value) + { + overrideKnockBackInferiors = value; + } + + public void setAfterKnockBackSuperiors(String[] value) + { + afterKnockBackSuperiors = value; + } + + public void setAfterKnockBackInferiors(String[] value) + { + afterKnockBackInferiors = value; + } + + public String[] getBeforeMoveEntitySuperiors() + { + return beforeMoveEntitySuperiors; + } + + public String[] getBeforeMoveEntityInferiors() + { + return beforeMoveEntityInferiors; + } + + public String[] getOverrideMoveEntitySuperiors() + { + return overrideMoveEntitySuperiors; + } + + public String[] getOverrideMoveEntityInferiors() + { + return overrideMoveEntityInferiors; + } + + public String[] getAfterMoveEntitySuperiors() + { + return afterMoveEntitySuperiors; + } + + public String[] getAfterMoveEntityInferiors() + { + return afterMoveEntityInferiors; + } + + public void setBeforeMoveEntitySuperiors(String[] value) + { + beforeMoveEntitySuperiors = value; + } + + public void setBeforeMoveEntityInferiors(String[] value) + { + beforeMoveEntityInferiors = value; + } + + public void setOverrideMoveEntitySuperiors(String[] value) + { + overrideMoveEntitySuperiors = value; + } + + public void setOverrideMoveEntityInferiors(String[] value) + { + overrideMoveEntityInferiors = value; + } + + public void setAfterMoveEntitySuperiors(String[] value) + { + afterMoveEntitySuperiors = value; + } + + public void setAfterMoveEntityInferiors(String[] value) + { + afterMoveEntityInferiors = value; + } + + public String[] getBeforeMoveEntityWithHeadingSuperiors() + { + return beforeMoveEntityWithHeadingSuperiors; + } + + public String[] getBeforeMoveEntityWithHeadingInferiors() + { + return beforeMoveEntityWithHeadingInferiors; + } + + public String[] getOverrideMoveEntityWithHeadingSuperiors() + { + return overrideMoveEntityWithHeadingSuperiors; + } + + public String[] getOverrideMoveEntityWithHeadingInferiors() + { + return overrideMoveEntityWithHeadingInferiors; + } + + public String[] getAfterMoveEntityWithHeadingSuperiors() + { + return afterMoveEntityWithHeadingSuperiors; + } + + public String[] getAfterMoveEntityWithHeadingInferiors() + { + return afterMoveEntityWithHeadingInferiors; + } + + public void setBeforeMoveEntityWithHeadingSuperiors(String[] value) + { + beforeMoveEntityWithHeadingSuperiors = value; + } + + public void setBeforeMoveEntityWithHeadingInferiors(String[] value) + { + beforeMoveEntityWithHeadingInferiors = value; + } + + public void setOverrideMoveEntityWithHeadingSuperiors(String[] value) + { + overrideMoveEntityWithHeadingSuperiors = value; + } + + public void setOverrideMoveEntityWithHeadingInferiors(String[] value) + { + overrideMoveEntityWithHeadingInferiors = value; + } + + public void setAfterMoveEntityWithHeadingSuperiors(String[] value) + { + afterMoveEntityWithHeadingSuperiors = value; + } + + public void setAfterMoveEntityWithHeadingInferiors(String[] value) + { + afterMoveEntityWithHeadingInferiors = value; + } + + public String[] getBeforeMoveFlyingSuperiors() + { + return beforeMoveFlyingSuperiors; + } + + public String[] getBeforeMoveFlyingInferiors() + { + return beforeMoveFlyingInferiors; + } + + public String[] getOverrideMoveFlyingSuperiors() + { + return overrideMoveFlyingSuperiors; + } + + public String[] getOverrideMoveFlyingInferiors() + { + return overrideMoveFlyingInferiors; + } + + public String[] getAfterMoveFlyingSuperiors() + { + return afterMoveFlyingSuperiors; + } + + public String[] getAfterMoveFlyingInferiors() + { + return afterMoveFlyingInferiors; + } + + public void setBeforeMoveFlyingSuperiors(String[] value) + { + beforeMoveFlyingSuperiors = value; + } + + public void setBeforeMoveFlyingInferiors(String[] value) + { + beforeMoveFlyingInferiors = value; + } + + public void setOverrideMoveFlyingSuperiors(String[] value) + { + overrideMoveFlyingSuperiors = value; + } + + public void setOverrideMoveFlyingInferiors(String[] value) + { + overrideMoveFlyingInferiors = value; + } + + public void setAfterMoveFlyingSuperiors(String[] value) + { + afterMoveFlyingSuperiors = value; + } + + public void setAfterMoveFlyingInferiors(String[] value) + { + afterMoveFlyingInferiors = value; + } + + public String[] getBeforeOnDeathSuperiors() + { + return beforeOnDeathSuperiors; + } + + public String[] getBeforeOnDeathInferiors() + { + return beforeOnDeathInferiors; + } + + public String[] getOverrideOnDeathSuperiors() + { + return overrideOnDeathSuperiors; + } + + public String[] getOverrideOnDeathInferiors() + { + return overrideOnDeathInferiors; + } + + public String[] getAfterOnDeathSuperiors() + { + return afterOnDeathSuperiors; + } + + public String[] getAfterOnDeathInferiors() + { + return afterOnDeathInferiors; + } + + public void setBeforeOnDeathSuperiors(String[] value) + { + beforeOnDeathSuperiors = value; + } + + public void setBeforeOnDeathInferiors(String[] value) + { + beforeOnDeathInferiors = value; + } + + public void setOverrideOnDeathSuperiors(String[] value) + { + overrideOnDeathSuperiors = value; + } + + public void setOverrideOnDeathInferiors(String[] value) + { + overrideOnDeathInferiors = value; + } + + public void setAfterOnDeathSuperiors(String[] value) + { + afterOnDeathSuperiors = value; + } + + public void setAfterOnDeathInferiors(String[] value) + { + afterOnDeathInferiors = value; + } + + public String[] getBeforeOnLivingUpdateSuperiors() + { + return beforeOnLivingUpdateSuperiors; + } + + public String[] getBeforeOnLivingUpdateInferiors() + { + return beforeOnLivingUpdateInferiors; + } + + public String[] getOverrideOnLivingUpdateSuperiors() + { + return overrideOnLivingUpdateSuperiors; + } + + public String[] getOverrideOnLivingUpdateInferiors() + { + return overrideOnLivingUpdateInferiors; + } + + public String[] getAfterOnLivingUpdateSuperiors() + { + return afterOnLivingUpdateSuperiors; + } + + public String[] getAfterOnLivingUpdateInferiors() + { + return afterOnLivingUpdateInferiors; + } + + public void setBeforeOnLivingUpdateSuperiors(String[] value) + { + beforeOnLivingUpdateSuperiors = value; + } + + public void setBeforeOnLivingUpdateInferiors(String[] value) + { + beforeOnLivingUpdateInferiors = value; + } + + public void setOverrideOnLivingUpdateSuperiors(String[] value) + { + overrideOnLivingUpdateSuperiors = value; + } + + public void setOverrideOnLivingUpdateInferiors(String[] value) + { + overrideOnLivingUpdateInferiors = value; + } + + public void setAfterOnLivingUpdateSuperiors(String[] value) + { + afterOnLivingUpdateSuperiors = value; + } + + public void setAfterOnLivingUpdateInferiors(String[] value) + { + afterOnLivingUpdateInferiors = value; + } + + public String[] getBeforeOnKillEntitySuperiors() + { + return beforeOnKillEntitySuperiors; + } + + public String[] getBeforeOnKillEntityInferiors() + { + return beforeOnKillEntityInferiors; + } + + public String[] getOverrideOnKillEntitySuperiors() + { + return overrideOnKillEntitySuperiors; + } + + public String[] getOverrideOnKillEntityInferiors() + { + return overrideOnKillEntityInferiors; + } + + public String[] getAfterOnKillEntitySuperiors() + { + return afterOnKillEntitySuperiors; + } + + public String[] getAfterOnKillEntityInferiors() + { + return afterOnKillEntityInferiors; + } + + public void setBeforeOnKillEntitySuperiors(String[] value) + { + beforeOnKillEntitySuperiors = value; + } + + public void setBeforeOnKillEntityInferiors(String[] value) + { + beforeOnKillEntityInferiors = value; + } + + public void setOverrideOnKillEntitySuperiors(String[] value) + { + overrideOnKillEntitySuperiors = value; + } + + public void setOverrideOnKillEntityInferiors(String[] value) + { + overrideOnKillEntityInferiors = value; + } + + public void setAfterOnKillEntitySuperiors(String[] value) + { + afterOnKillEntitySuperiors = value; + } + + public void setAfterOnKillEntityInferiors(String[] value) + { + afterOnKillEntityInferiors = value; + } + + public String[] getBeforeOnStruckByLightningSuperiors() + { + return beforeOnStruckByLightningSuperiors; + } + + public String[] getBeforeOnStruckByLightningInferiors() + { + return beforeOnStruckByLightningInferiors; + } + + public String[] getOverrideOnStruckByLightningSuperiors() + { + return overrideOnStruckByLightningSuperiors; + } + + public String[] getOverrideOnStruckByLightningInferiors() + { + return overrideOnStruckByLightningInferiors; + } + + public String[] getAfterOnStruckByLightningSuperiors() + { + return afterOnStruckByLightningSuperiors; + } + + public String[] getAfterOnStruckByLightningInferiors() + { + return afterOnStruckByLightningInferiors; + } + + public void setBeforeOnStruckByLightningSuperiors(String[] value) + { + beforeOnStruckByLightningSuperiors = value; + } + + public void setBeforeOnStruckByLightningInferiors(String[] value) + { + beforeOnStruckByLightningInferiors = value; + } + + public void setOverrideOnStruckByLightningSuperiors(String[] value) + { + overrideOnStruckByLightningSuperiors = value; + } + + public void setOverrideOnStruckByLightningInferiors(String[] value) + { + overrideOnStruckByLightningInferiors = value; + } + + public void setAfterOnStruckByLightningSuperiors(String[] value) + { + afterOnStruckByLightningSuperiors = value; + } + + public void setAfterOnStruckByLightningInferiors(String[] value) + { + afterOnStruckByLightningInferiors = value; + } + + public String[] getBeforeOnUpdateSuperiors() + { + return beforeOnUpdateSuperiors; + } + + public String[] getBeforeOnUpdateInferiors() + { + return beforeOnUpdateInferiors; + } + + public String[] getOverrideOnUpdateSuperiors() + { + return overrideOnUpdateSuperiors; + } + + public String[] getOverrideOnUpdateInferiors() + { + return overrideOnUpdateInferiors; + } + + public String[] getAfterOnUpdateSuperiors() + { + return afterOnUpdateSuperiors; + } + + public String[] getAfterOnUpdateInferiors() + { + return afterOnUpdateInferiors; + } + + public void setBeforeOnUpdateSuperiors(String[] value) + { + beforeOnUpdateSuperiors = value; + } + + public void setBeforeOnUpdateInferiors(String[] value) + { + beforeOnUpdateInferiors = value; + } + + public void setOverrideOnUpdateSuperiors(String[] value) + { + overrideOnUpdateSuperiors = value; + } + + public void setOverrideOnUpdateInferiors(String[] value) + { + overrideOnUpdateInferiors = value; + } + + public void setAfterOnUpdateSuperiors(String[] value) + { + afterOnUpdateSuperiors = value; + } + + public void setAfterOnUpdateInferiors(String[] value) + { + afterOnUpdateInferiors = value; + } + + public String[] getBeforePlayStepSoundSuperiors() + { + return beforePlayStepSoundSuperiors; + } + + public String[] getBeforePlayStepSoundInferiors() + { + return beforePlayStepSoundInferiors; + } + + public String[] getOverridePlayStepSoundSuperiors() + { + return overridePlayStepSoundSuperiors; + } + + public String[] getOverridePlayStepSoundInferiors() + { + return overridePlayStepSoundInferiors; + } + + public String[] getAfterPlayStepSoundSuperiors() + { + return afterPlayStepSoundSuperiors; + } + + public String[] getAfterPlayStepSoundInferiors() + { + return afterPlayStepSoundInferiors; + } + + public void setBeforePlayStepSoundSuperiors(String[] value) + { + beforePlayStepSoundSuperiors = value; + } + + public void setBeforePlayStepSoundInferiors(String[] value) + { + beforePlayStepSoundInferiors = value; + } + + public void setOverridePlayStepSoundSuperiors(String[] value) + { + overridePlayStepSoundSuperiors = value; + } + + public void setOverridePlayStepSoundInferiors(String[] value) + { + overridePlayStepSoundInferiors = value; + } + + public void setAfterPlayStepSoundSuperiors(String[] value) + { + afterPlayStepSoundSuperiors = value; + } + + public void setAfterPlayStepSoundInferiors(String[] value) + { + afterPlayStepSoundInferiors = value; + } + + public String[] getBeforePushOutOfBlocksSuperiors() + { + return beforePushOutOfBlocksSuperiors; + } + + public String[] getBeforePushOutOfBlocksInferiors() + { + return beforePushOutOfBlocksInferiors; + } + + public String[] getOverridePushOutOfBlocksSuperiors() + { + return overridePushOutOfBlocksSuperiors; + } + + public String[] getOverridePushOutOfBlocksInferiors() + { + return overridePushOutOfBlocksInferiors; + } + + public String[] getAfterPushOutOfBlocksSuperiors() + { + return afterPushOutOfBlocksSuperiors; + } + + public String[] getAfterPushOutOfBlocksInferiors() + { + return afterPushOutOfBlocksInferiors; + } + + public void setBeforePushOutOfBlocksSuperiors(String[] value) + { + beforePushOutOfBlocksSuperiors = value; + } + + public void setBeforePushOutOfBlocksInferiors(String[] value) + { + beforePushOutOfBlocksInferiors = value; + } + + public void setOverridePushOutOfBlocksSuperiors(String[] value) + { + overridePushOutOfBlocksSuperiors = value; + } + + public void setOverridePushOutOfBlocksInferiors(String[] value) + { + overridePushOutOfBlocksInferiors = value; + } + + public void setAfterPushOutOfBlocksSuperiors(String[] value) + { + afterPushOutOfBlocksSuperiors = value; + } + + public void setAfterPushOutOfBlocksInferiors(String[] value) + { + afterPushOutOfBlocksInferiors = value; + } + + public String[] getBeforeRayTraceSuperiors() + { + return beforeRayTraceSuperiors; + } + + public String[] getBeforeRayTraceInferiors() + { + return beforeRayTraceInferiors; + } + + public String[] getOverrideRayTraceSuperiors() + { + return overrideRayTraceSuperiors; + } + + public String[] getOverrideRayTraceInferiors() + { + return overrideRayTraceInferiors; + } + + public String[] getAfterRayTraceSuperiors() + { + return afterRayTraceSuperiors; + } + + public String[] getAfterRayTraceInferiors() + { + return afterRayTraceInferiors; + } + + public void setBeforeRayTraceSuperiors(String[] value) + { + beforeRayTraceSuperiors = value; + } + + public void setBeforeRayTraceInferiors(String[] value) + { + beforeRayTraceInferiors = value; + } + + public void setOverrideRayTraceSuperiors(String[] value) + { + overrideRayTraceSuperiors = value; + } + + public void setOverrideRayTraceInferiors(String[] value) + { + overrideRayTraceInferiors = value; + } + + public void setAfterRayTraceSuperiors(String[] value) + { + afterRayTraceSuperiors = value; + } + + public void setAfterRayTraceInferiors(String[] value) + { + afterRayTraceInferiors = value; + } + + public String[] getBeforeReadEntityFromNBTSuperiors() + { + return beforeReadEntityFromNBTSuperiors; + } + + public String[] getBeforeReadEntityFromNBTInferiors() + { + return beforeReadEntityFromNBTInferiors; + } + + public String[] getOverrideReadEntityFromNBTSuperiors() + { + return overrideReadEntityFromNBTSuperiors; + } + + public String[] getOverrideReadEntityFromNBTInferiors() + { + return overrideReadEntityFromNBTInferiors; + } + + public String[] getAfterReadEntityFromNBTSuperiors() + { + return afterReadEntityFromNBTSuperiors; + } + + public String[] getAfterReadEntityFromNBTInferiors() + { + return afterReadEntityFromNBTInferiors; + } + + public void setBeforeReadEntityFromNBTSuperiors(String[] value) + { + beforeReadEntityFromNBTSuperiors = value; + } + + public void setBeforeReadEntityFromNBTInferiors(String[] value) + { + beforeReadEntityFromNBTInferiors = value; + } + + public void setOverrideReadEntityFromNBTSuperiors(String[] value) + { + overrideReadEntityFromNBTSuperiors = value; + } + + public void setOverrideReadEntityFromNBTInferiors(String[] value) + { + overrideReadEntityFromNBTInferiors = value; + } + + public void setAfterReadEntityFromNBTSuperiors(String[] value) + { + afterReadEntityFromNBTSuperiors = value; + } + + public void setAfterReadEntityFromNBTInferiors(String[] value) + { + afterReadEntityFromNBTInferiors = value; + } + + public String[] getBeforeRespawnPlayerSuperiors() + { + return beforeRespawnPlayerSuperiors; + } + + public String[] getBeforeRespawnPlayerInferiors() + { + return beforeRespawnPlayerInferiors; + } + + public String[] getOverrideRespawnPlayerSuperiors() + { + return overrideRespawnPlayerSuperiors; + } + + public String[] getOverrideRespawnPlayerInferiors() + { + return overrideRespawnPlayerInferiors; + } + + public String[] getAfterRespawnPlayerSuperiors() + { + return afterRespawnPlayerSuperiors; + } + + public String[] getAfterRespawnPlayerInferiors() + { + return afterRespawnPlayerInferiors; + } + + public void setBeforeRespawnPlayerSuperiors(String[] value) + { + beforeRespawnPlayerSuperiors = value; + } + + public void setBeforeRespawnPlayerInferiors(String[] value) + { + beforeRespawnPlayerInferiors = value; + } + + public void setOverrideRespawnPlayerSuperiors(String[] value) + { + overrideRespawnPlayerSuperiors = value; + } + + public void setOverrideRespawnPlayerInferiors(String[] value) + { + overrideRespawnPlayerInferiors = value; + } + + public void setAfterRespawnPlayerSuperiors(String[] value) + { + afterRespawnPlayerSuperiors = value; + } + + public void setAfterRespawnPlayerInferiors(String[] value) + { + afterRespawnPlayerInferiors = value; + } + + public String[] getBeforeSetDeadSuperiors() + { + return beforeSetDeadSuperiors; + } + + public String[] getBeforeSetDeadInferiors() + { + return beforeSetDeadInferiors; + } + + public String[] getOverrideSetDeadSuperiors() + { + return overrideSetDeadSuperiors; + } + + public String[] getOverrideSetDeadInferiors() + { + return overrideSetDeadInferiors; + } + + public String[] getAfterSetDeadSuperiors() + { + return afterSetDeadSuperiors; + } + + public String[] getAfterSetDeadInferiors() + { + return afterSetDeadInferiors; + } + + public void setBeforeSetDeadSuperiors(String[] value) + { + beforeSetDeadSuperiors = value; + } + + public void setBeforeSetDeadInferiors(String[] value) + { + beforeSetDeadInferiors = value; + } + + public void setOverrideSetDeadSuperiors(String[] value) + { + overrideSetDeadSuperiors = value; + } + + public void setOverrideSetDeadInferiors(String[] value) + { + overrideSetDeadInferiors = value; + } + + public void setAfterSetDeadSuperiors(String[] value) + { + afterSetDeadSuperiors = value; + } + + public void setAfterSetDeadInferiors(String[] value) + { + afterSetDeadInferiors = value; + } + + public String[] getBeforeSetPlayerSPHealthSuperiors() + { + return beforeSetPlayerSPHealthSuperiors; + } + + public String[] getBeforeSetPlayerSPHealthInferiors() + { + return beforeSetPlayerSPHealthInferiors; + } + + public String[] getOverrideSetPlayerSPHealthSuperiors() + { + return overrideSetPlayerSPHealthSuperiors; + } + + public String[] getOverrideSetPlayerSPHealthInferiors() + { + return overrideSetPlayerSPHealthInferiors; + } + + public String[] getAfterSetPlayerSPHealthSuperiors() + { + return afterSetPlayerSPHealthSuperiors; + } + + public String[] getAfterSetPlayerSPHealthInferiors() + { + return afterSetPlayerSPHealthInferiors; + } + + public void setBeforeSetPlayerSPHealthSuperiors(String[] value) + { + beforeSetPlayerSPHealthSuperiors = value; + } + + public void setBeforeSetPlayerSPHealthInferiors(String[] value) + { + beforeSetPlayerSPHealthInferiors = value; + } + + public void setOverrideSetPlayerSPHealthSuperiors(String[] value) + { + overrideSetPlayerSPHealthSuperiors = value; + } + + public void setOverrideSetPlayerSPHealthInferiors(String[] value) + { + overrideSetPlayerSPHealthInferiors = value; + } + + public void setAfterSetPlayerSPHealthSuperiors(String[] value) + { + afterSetPlayerSPHealthSuperiors = value; + } + + public void setAfterSetPlayerSPHealthInferiors(String[] value) + { + afterSetPlayerSPHealthInferiors = value; + } + + public String[] getBeforeSetPositionAndRotationSuperiors() + { + return beforeSetPositionAndRotationSuperiors; + } + + public String[] getBeforeSetPositionAndRotationInferiors() + { + return beforeSetPositionAndRotationInferiors; + } + + public String[] getOverrideSetPositionAndRotationSuperiors() + { + return overrideSetPositionAndRotationSuperiors; + } + + public String[] getOverrideSetPositionAndRotationInferiors() + { + return overrideSetPositionAndRotationInferiors; + } + + public String[] getAfterSetPositionAndRotationSuperiors() + { + return afterSetPositionAndRotationSuperiors; + } + + public String[] getAfterSetPositionAndRotationInferiors() + { + return afterSetPositionAndRotationInferiors; + } + + public void setBeforeSetPositionAndRotationSuperiors(String[] value) + { + beforeSetPositionAndRotationSuperiors = value; + } + + public void setBeforeSetPositionAndRotationInferiors(String[] value) + { + beforeSetPositionAndRotationInferiors = value; + } + + public void setOverrideSetPositionAndRotationSuperiors(String[] value) + { + overrideSetPositionAndRotationSuperiors = value; + } + + public void setOverrideSetPositionAndRotationInferiors(String[] value) + { + overrideSetPositionAndRotationInferiors = value; + } + + public void setAfterSetPositionAndRotationSuperiors(String[] value) + { + afterSetPositionAndRotationSuperiors = value; + } + + public void setAfterSetPositionAndRotationInferiors(String[] value) + { + afterSetPositionAndRotationInferiors = value; + } + + public String[] getBeforeSetSneakingSuperiors() + { + return beforeSetSneakingSuperiors; + } + + public String[] getBeforeSetSneakingInferiors() + { + return beforeSetSneakingInferiors; + } + + public String[] getOverrideSetSneakingSuperiors() + { + return overrideSetSneakingSuperiors; + } + + public String[] getOverrideSetSneakingInferiors() + { + return overrideSetSneakingInferiors; + } + + public String[] getAfterSetSneakingSuperiors() + { + return afterSetSneakingSuperiors; + } + + public String[] getAfterSetSneakingInferiors() + { + return afterSetSneakingInferiors; + } + + public void setBeforeSetSneakingSuperiors(String[] value) + { + beforeSetSneakingSuperiors = value; + } + + public void setBeforeSetSneakingInferiors(String[] value) + { + beforeSetSneakingInferiors = value; + } + + public void setOverrideSetSneakingSuperiors(String[] value) + { + overrideSetSneakingSuperiors = value; + } + + public void setOverrideSetSneakingInferiors(String[] value) + { + overrideSetSneakingInferiors = value; + } + + public void setAfterSetSneakingSuperiors(String[] value) + { + afterSetSneakingSuperiors = value; + } + + public void setAfterSetSneakingInferiors(String[] value) + { + afterSetSneakingInferiors = value; + } + + public String[] getBeforeSetSprintingSuperiors() + { + return beforeSetSprintingSuperiors; + } + + public String[] getBeforeSetSprintingInferiors() + { + return beforeSetSprintingInferiors; + } + + public String[] getOverrideSetSprintingSuperiors() + { + return overrideSetSprintingSuperiors; + } + + public String[] getOverrideSetSprintingInferiors() + { + return overrideSetSprintingInferiors; + } + + public String[] getAfterSetSprintingSuperiors() + { + return afterSetSprintingSuperiors; + } + + public String[] getAfterSetSprintingInferiors() + { + return afterSetSprintingInferiors; + } + + public void setBeforeSetSprintingSuperiors(String[] value) + { + beforeSetSprintingSuperiors = value; + } + + public void setBeforeSetSprintingInferiors(String[] value) + { + beforeSetSprintingInferiors = value; + } + + public void setOverrideSetSprintingSuperiors(String[] value) + { + overrideSetSprintingSuperiors = value; + } + + public void setOverrideSetSprintingInferiors(String[] value) + { + overrideSetSprintingInferiors = value; + } + + public void setAfterSetSprintingSuperiors(String[] value) + { + afterSetSprintingSuperiors = value; + } + + public void setAfterSetSprintingInferiors(String[] value) + { + afterSetSprintingInferiors = value; + } + + public String[] getBeforeSleepInBedAtSuperiors() + { + return beforeSleepInBedAtSuperiors; + } + + public String[] getBeforeSleepInBedAtInferiors() + { + return beforeSleepInBedAtInferiors; + } + + public String[] getOverrideSleepInBedAtSuperiors() + { + return overrideSleepInBedAtSuperiors; + } + + public String[] getOverrideSleepInBedAtInferiors() + { + return overrideSleepInBedAtInferiors; + } + + public String[] getAfterSleepInBedAtSuperiors() + { + return afterSleepInBedAtSuperiors; + } + + public String[] getAfterSleepInBedAtInferiors() + { + return afterSleepInBedAtInferiors; + } + + public void setBeforeSleepInBedAtSuperiors(String[] value) + { + beforeSleepInBedAtSuperiors = value; + } + + public void setBeforeSleepInBedAtInferiors(String[] value) + { + beforeSleepInBedAtInferiors = value; + } + + public void setOverrideSleepInBedAtSuperiors(String[] value) + { + overrideSleepInBedAtSuperiors = value; + } + + public void setOverrideSleepInBedAtInferiors(String[] value) + { + overrideSleepInBedAtInferiors = value; + } + + public void setAfterSleepInBedAtSuperiors(String[] value) + { + afterSleepInBedAtSuperiors = value; + } + + public void setAfterSleepInBedAtInferiors(String[] value) + { + afterSleepInBedAtInferiors = value; + } + + public String[] getBeforeSwingItemSuperiors() + { + return beforeSwingItemSuperiors; + } + + public String[] getBeforeSwingItemInferiors() + { + return beforeSwingItemInferiors; + } + + public String[] getOverrideSwingItemSuperiors() + { + return overrideSwingItemSuperiors; + } + + public String[] getOverrideSwingItemInferiors() + { + return overrideSwingItemInferiors; + } + + public String[] getAfterSwingItemSuperiors() + { + return afterSwingItemSuperiors; + } + + public String[] getAfterSwingItemInferiors() + { + return afterSwingItemInferiors; + } + + public void setBeforeSwingItemSuperiors(String[] value) + { + beforeSwingItemSuperiors = value; + } + + public void setBeforeSwingItemInferiors(String[] value) + { + beforeSwingItemInferiors = value; + } + + public void setOverrideSwingItemSuperiors(String[] value) + { + overrideSwingItemSuperiors = value; + } + + public void setOverrideSwingItemInferiors(String[] value) + { + overrideSwingItemInferiors = value; + } + + public void setAfterSwingItemSuperiors(String[] value) + { + afterSwingItemSuperiors = value; + } + + public void setAfterSwingItemInferiors(String[] value) + { + afterSwingItemInferiors = value; + } + + public String[] getBeforeUpdateEntityActionStateSuperiors() + { + return beforeUpdateEntityActionStateSuperiors; + } + + public String[] getBeforeUpdateEntityActionStateInferiors() + { + return beforeUpdateEntityActionStateInferiors; + } + + public String[] getOverrideUpdateEntityActionStateSuperiors() + { + return overrideUpdateEntityActionStateSuperiors; + } + + public String[] getOverrideUpdateEntityActionStateInferiors() + { + return overrideUpdateEntityActionStateInferiors; + } + + public String[] getAfterUpdateEntityActionStateSuperiors() + { + return afterUpdateEntityActionStateSuperiors; + } + + public String[] getAfterUpdateEntityActionStateInferiors() + { + return afterUpdateEntityActionStateInferiors; + } + + public void setBeforeUpdateEntityActionStateSuperiors(String[] value) + { + beforeUpdateEntityActionStateSuperiors = value; + } + + public void setBeforeUpdateEntityActionStateInferiors(String[] value) + { + beforeUpdateEntityActionStateInferiors = value; + } + + public void setOverrideUpdateEntityActionStateSuperiors(String[] value) + { + overrideUpdateEntityActionStateSuperiors = value; + } + + public void setOverrideUpdateEntityActionStateInferiors(String[] value) + { + overrideUpdateEntityActionStateInferiors = value; + } + + public void setAfterUpdateEntityActionStateSuperiors(String[] value) + { + afterUpdateEntityActionStateSuperiors = value; + } + + public void setAfterUpdateEntityActionStateInferiors(String[] value) + { + afterUpdateEntityActionStateInferiors = value; + } + + public String[] getBeforeUpdateRiddenSuperiors() + { + return beforeUpdateRiddenSuperiors; + } + + public String[] getBeforeUpdateRiddenInferiors() + { + return beforeUpdateRiddenInferiors; + } + + public String[] getOverrideUpdateRiddenSuperiors() + { + return overrideUpdateRiddenSuperiors; + } + + public String[] getOverrideUpdateRiddenInferiors() + { + return overrideUpdateRiddenInferiors; + } + + public String[] getAfterUpdateRiddenSuperiors() + { + return afterUpdateRiddenSuperiors; + } + + public String[] getAfterUpdateRiddenInferiors() + { + return afterUpdateRiddenInferiors; + } + + public void setBeforeUpdateRiddenSuperiors(String[] value) + { + beforeUpdateRiddenSuperiors = value; + } + + public void setBeforeUpdateRiddenInferiors(String[] value) + { + beforeUpdateRiddenInferiors = value; + } + + public void setOverrideUpdateRiddenSuperiors(String[] value) + { + overrideUpdateRiddenSuperiors = value; + } + + public void setOverrideUpdateRiddenInferiors(String[] value) + { + overrideUpdateRiddenInferiors = value; + } + + public void setAfterUpdateRiddenSuperiors(String[] value) + { + afterUpdateRiddenSuperiors = value; + } + + public void setAfterUpdateRiddenInferiors(String[] value) + { + afterUpdateRiddenInferiors = value; + } + + public String[] getBeforeWakeUpPlayerSuperiors() + { + return beforeWakeUpPlayerSuperiors; + } + + public String[] getBeforeWakeUpPlayerInferiors() + { + return beforeWakeUpPlayerInferiors; + } + + public String[] getOverrideWakeUpPlayerSuperiors() + { + return overrideWakeUpPlayerSuperiors; + } + + public String[] getOverrideWakeUpPlayerInferiors() + { + return overrideWakeUpPlayerInferiors; + } + + public String[] getAfterWakeUpPlayerSuperiors() + { + return afterWakeUpPlayerSuperiors; + } + + public String[] getAfterWakeUpPlayerInferiors() + { + return afterWakeUpPlayerInferiors; + } + + public void setBeforeWakeUpPlayerSuperiors(String[] value) + { + beforeWakeUpPlayerSuperiors = value; + } + + public void setBeforeWakeUpPlayerInferiors(String[] value) + { + beforeWakeUpPlayerInferiors = value; + } + + public void setOverrideWakeUpPlayerSuperiors(String[] value) + { + overrideWakeUpPlayerSuperiors = value; + } + + public void setOverrideWakeUpPlayerInferiors(String[] value) + { + overrideWakeUpPlayerInferiors = value; + } + + public void setAfterWakeUpPlayerSuperiors(String[] value) + { + afterWakeUpPlayerSuperiors = value; + } + + public void setAfterWakeUpPlayerInferiors(String[] value) + { + afterWakeUpPlayerInferiors = value; + } + + public String[] getBeforeWriteEntityToNBTSuperiors() + { + return beforeWriteEntityToNBTSuperiors; + } + + public String[] getBeforeWriteEntityToNBTInferiors() + { + return beforeWriteEntityToNBTInferiors; + } + + public String[] getOverrideWriteEntityToNBTSuperiors() + { + return overrideWriteEntityToNBTSuperiors; + } + + public String[] getOverrideWriteEntityToNBTInferiors() + { + return overrideWriteEntityToNBTInferiors; + } + + public String[] getAfterWriteEntityToNBTSuperiors() + { + return afterWriteEntityToNBTSuperiors; + } + + public String[] getAfterWriteEntityToNBTInferiors() + { + return afterWriteEntityToNBTInferiors; + } + + public void setBeforeWriteEntityToNBTSuperiors(String[] value) + { + beforeWriteEntityToNBTSuperiors = value; + } + + public void setBeforeWriteEntityToNBTInferiors(String[] value) + { + beforeWriteEntityToNBTInferiors = value; + } + + public void setOverrideWriteEntityToNBTSuperiors(String[] value) + { + overrideWriteEntityToNBTSuperiors = value; + } + + public void setOverrideWriteEntityToNBTInferiors(String[] value) + { + overrideWriteEntityToNBTInferiors = value; + } + + public void setAfterWriteEntityToNBTSuperiors(String[] value) + { + afterWriteEntityToNBTSuperiors = value; + } + + public void setAfterWriteEntityToNBTInferiors(String[] value) + { + afterWriteEntityToNBTInferiors = value; + } + +} diff --git a/src/Java/api/player/client/ClientPlayerClassVisitor.java b/src/Java/api/player/client/ClientPlayerClassVisitor.java new file mode 100644 index 0000000000..34499351dd --- /dev/null +++ b/src/Java/api/player/client/ClientPlayerClassVisitor.java @@ -0,0 +1,5400 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.client; + +import java.io.*; + +import org.objectweb.asm.*; + +public final class ClientPlayerClassVisitor extends ClassVisitor +{ + public static final String targetClassName = "net.minecraft.client.entity.EntityPlayerSP"; + + private boolean hadLocalAddExhaustion; + private boolean hadLocalAddMovementStat; + private boolean hadLocalAddStat; + private boolean hadLocalAttackEntityFrom; + private boolean hadLocalAttackTargetEntityWithCurrentItem; + private boolean hadLocalCanBreatheUnderwater; + private boolean hadLocalCanHarvestBlock; + private boolean hadLocalCanPlayerEdit; + private boolean hadLocalCanTriggerWalking; + private boolean hadLocalCloseScreen; + private boolean hadLocalDamageEntity; + private boolean hadLocalDisplayGUIBrewingStand; + private boolean hadLocalDisplayGUIChest; + private boolean hadLocalDisplayGUIDispenser; + private boolean hadLocalDisplayGUIEditSign; + private boolean hadLocalDisplayGUIEnchantment; + private boolean hadLocalDisplayGUIFurnace; + private boolean hadLocalDisplayGUIWorkbench; + private boolean hadLocalDropOneItem; + private boolean hadLocalDropPlayerItem; + private boolean hadLocalDropPlayerItemWithRandomChoice; + private boolean hadLocalFall; + private boolean hadLocalGetAIMoveSpeed; + private boolean hadLocalGetBedOrientationInDegrees; + private boolean hadLocalGetBrightness; + private boolean hadLocalGetBrightnessForRender; + private boolean hadLocalGetCurrentPlayerStrVsBlock; + private boolean hadLocalGetCurrentPlayerStrVsBlockForge; + private boolean hadLocalGetDistanceSq; + private boolean hadLocalGetDistanceSqToEntity; + private boolean hadLocalGetFOVMultiplier; + private boolean hadLocalGetHurtSound; + private boolean hadLocalGetItemIcon; + private boolean hadLocalGetSleepTimer; + private boolean hadLocalHandleLavaMovement; + private boolean hadLocalHandleWaterMovement; + private boolean hadLocalHeal; + private boolean hadLocalIsEntityInsideOpaqueBlock; + private boolean hadLocalIsInWater; + private boolean hadLocalIsInsideOfMaterial; + private boolean hadLocalIsOnLadder; + private boolean hadLocalIsPlayerSleeping; + private boolean hadLocalIsSneaking; + private boolean hadLocalIsSprinting; + private boolean hadLocalJump; + private boolean hadLocalKnockBack; + private boolean hadLocalMoveEntity; + private boolean hadLocalMoveEntityWithHeading; + private boolean hadLocalMoveFlying; + private boolean hadLocalOnDeath; + private boolean hadLocalOnLivingUpdate; + private boolean hadLocalOnKillEntity; + private boolean hadLocalOnStruckByLightning; + private boolean hadLocalOnUpdate; + private boolean hadLocalPlayStepSound; + private boolean hadLocalPushOutOfBlocks; + private boolean hadLocalRayTrace; + private boolean hadLocalReadEntityFromNBT; + private boolean hadLocalRespawnPlayer; + private boolean hadLocalSetDead; + private boolean hadLocalSetPlayerSPHealth; + private boolean hadLocalSetPositionAndRotation; + private boolean hadLocalSetSneaking; + private boolean hadLocalSetSprinting; + private boolean hadLocalSleepInBedAt; + private boolean hadLocalSwingItem; + private boolean hadLocalUpdateEntityActionState; + private boolean hadLocalUpdateRidden; + private boolean hadLocalWakeUpPlayer; + private boolean hadLocalWriteEntityToNBT; + + public static byte[] transform(byte[] bytes, boolean isObfuscated) + { + try + { + ByteArrayInputStream in = new ByteArrayInputStream(bytes); + ClassReader cr = new ClassReader(in); + ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS); + ClientPlayerClassVisitor p = new ClientPlayerClassVisitor(cw, isObfuscated); + + cr.accept(p, 0); + + byte[] result = cw.toByteArray(); + in.close(); + return result; + } + catch(IOException ioe) + { + throw new RuntimeException(ioe); + } + } + + private final boolean isObfuscated; + + public ClientPlayerClassVisitor(ClassVisitor classVisitor, boolean isObfuscated) + { + super(262144, classVisitor); + this.isObfuscated = isObfuscated; + } + + public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) + { + String[] newInterfaces = new String[interfaces.length + 1]; + for(int i=0; i")) + return new ClientPlayerConstructorVisitor(super.visitMethod(access, name, desc, signature, exceptions), isObfuscated); + + if(name.equals(isObfuscated ? "a" : "addExhaustion") && desc.equals("(F)V")) + { + hadLocalAddExhaustion = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddExhaustion", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "k" : "addMovementStat") && desc.equals("(DDD)V")) + { + hadLocalAddMovementStat = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddMovementStat", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "addStat") && desc.equals(isObfuscated ? "(Lph;I)V" : "(Lnet/minecraft/stats/StatBase;I)V")) + { + hadLocalAddStat = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddStat", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "attackEntityFrom") && desc.equals(isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z")) + { + hadLocalAttackEntityFrom = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAttackEntityFrom", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "r" : "attackEntityPlayerSPEntityWithCurrentItem") && desc.equals(isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V")) + { + hadLocalAttackTargetEntityWithCurrentItem = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAttackTargetEntityWithCurrentItem", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "aE" : "canBreatheUnderwater") && desc.equals("()Z")) + { + hadLocalCanBreatheUnderwater = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanBreatheUnderwater", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "canHarvestBlock") && desc.equals(isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z")) + { + hadLocalCanHarvestBlock = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanHarvestBlock", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "canPlayerEdit") && desc.equals(isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z")) + { + hadLocalCanPlayerEdit = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanPlayerEdit", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "g_" : "canTriggerWalking") && desc.equals("()Z")) + { + hadLocalCanTriggerWalking = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanTriggerWalking", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "k" : "closeScreen") && desc.equals("()V")) + { + hadLocalCloseScreen = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCloseScreen", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "d" : "damageEntity") && desc.equals(isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V")) + { + hadLocalDamageEntity = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDamageEntity", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "func_146098_a") && desc.equals(isObfuscated ? "(Laov;)V" : "(Lnet/minecraft/tileentity/TileEntityBrewingStand;)V")) + { + hadLocalDisplayGUIBrewingStand = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIBrewingStand", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "displayGUIChest") && desc.equals(isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V")) + { + hadLocalDisplayGUIChest = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIChest", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "func_146102_a") && desc.equals(isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V")) + { + hadLocalDisplayGUIDispenser = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIDispenser", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "func_146100_a") && desc.equals(isObfuscated ? "(Laor;)V" : "(Lnet/minecraft/tileentity/TileEntity;)V")) + { + hadLocalDisplayGUIEditSign = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIEditSign", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "displayGUIEnchantment") && desc.equals("(IIILjava/lang/String;)V")) + { + hadLocalDisplayGUIEnchantment = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIEnchantment", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "func_146101_a") && desc.equals(isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V")) + { + hadLocalDisplayGUIFurnace = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIFurnace", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "b" : "displayGUIWorkbench") && desc.equals("(III)V")) + { + hadLocalDisplayGUIWorkbench = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIWorkbench", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "dropOneItem") && desc.equals(isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;")) + { + hadLocalDropOneItem = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropOneItem", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "dropPlayerItemWithRandomChoice") && desc.equals(isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;")) + { + hadLocalDropPlayerItem = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropPlayerItem", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "func_146097_a") && desc.equals(isObfuscated ? "(Ladd;ZZ)Lxk;" : "(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem;")) + { + hadLocalDropPlayerItemWithRandomChoice = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropPlayerItemWithRandomChoice", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "b" : "fall") && desc.equals("(F)V")) + { + hadLocalFall = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localFall", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "bl" : "getAIMoveSpeed") && desc.equals("()F")) + { + hadLocalGetAIMoveSpeed = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetAIMoveSpeed", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "bK" : "getBedOrientationInDegrees") && desc.equals("()F")) + { + hadLocalGetBedOrientationInDegrees = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBedOrientationInDegrees", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "d" : "getBrightness") && desc.equals("(F)F")) + { + hadLocalGetBrightness = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBrightness", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "c" : "getBrightnessForRender") && desc.equals("(F)I")) + { + hadLocalGetBrightnessForRender = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBrightnessForRender", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "getCurrentPlayerStrVsBlock") && desc.equals(isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F")) + { + hadLocalGetCurrentPlayerStrVsBlock = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetCurrentPlayerStrVsBlock", desc, signature, exceptions); + } + + if(name.equals("getBreakSpeed") && desc.equals(isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F")) + { + hadLocalGetCurrentPlayerStrVsBlockForge = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetCurrentPlayerStrVsBlockForge", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "e" : "getDistanceSq") && desc.equals("(DDD)D")) + { + hadLocalGetDistanceSq = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetDistanceSq", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "f" : "getDistanceSqToEntity") && desc.equals(isObfuscated ? "(Lsa;)D" : "(Lnet/minecraft/entity/Entity;)D")) + { + hadLocalGetDistanceSqToEntity = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetDistanceSqToEntity", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "t" : "getFOVMultiplier") && desc.equals("()F")) + { + hadLocalGetFOVMultiplier = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetFOVMultiplier", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "aT" : "getHurtSound") && desc.equals("()Ljava/lang/String;")) + { + hadLocalGetHurtSound = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetHurtSound", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "b" : "getItemIcon") && desc.equals(isObfuscated ? "(Ladd;I)Lrf;" : "(Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/util/IIcon;")) + { + hadLocalGetItemIcon = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetItemIcon", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "bM" : "getSleepTimer") && desc.equals("()I")) + { + hadLocalGetSleepTimer = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetSleepTimer", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "P" : "handleLavaMovement") && desc.equals("()Z")) + { + hadLocalHandleLavaMovement = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localHandleLavaMovement", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "N" : "handleWaterMovement") && desc.equals("()Z")) + { + hadLocalHandleWaterMovement = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localHandleWaterMovement", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "f" : "heal") && desc.equals("(F)V")) + { + hadLocalHeal = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localHeal", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "aa" : "isEntityInsideOpaqueBlock") && desc.equals("()Z")) + { + hadLocalIsEntityInsideOpaqueBlock = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsEntityInsideOpaqueBlock", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "M" : "isInWater") && desc.equals("()Z")) + { + hadLocalIsInWater = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsInWater", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "isInsideOfMaterial") && desc.equals(isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z")) + { + hadLocalIsInsideOfMaterial = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsInsideOfMaterial", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "h_" : "isOnLadder") && desc.equals("()Z")) + { + hadLocalIsOnLadder = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsOnLadder", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "bm" : "isPlayerSleeping") && desc.equals("()Z")) + { + hadLocalIsPlayerSleeping = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsPlayerSleeping", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "an" : "isSneaking") && desc.equals("()Z")) + { + hadLocalIsSneaking = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsSneaking", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "ao" : "isSprinting") && desc.equals("()Z")) + { + hadLocalIsSprinting = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsSprinting", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "bj" : "jump") && desc.equals("()V")) + { + hadLocalJump = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localJump", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "knockBack") && desc.equals(isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V")) + { + hadLocalKnockBack = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localKnockBack", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "d" : "moveEntity") && desc.equals("(DDD)V")) + { + hadLocalMoveEntity = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMoveEntity", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "e" : "moveEntityWithHeading") && desc.equals("(FF)V")) + { + hadLocalMoveEntityWithHeading = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMoveEntityWithHeading", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "moveFlying") && desc.equals("(FFF)V")) + { + hadLocalMoveFlying = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMoveFlying", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "onDeath") && desc.equals(isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V")) + { + hadLocalOnDeath = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnDeath", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "e" : "onLivingUpdate") && desc.equals("()V")) + { + hadLocalOnLivingUpdate = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnLivingUpdate", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "onKillEntity") && desc.equals(isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V")) + { + hadLocalOnKillEntity = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnKillEntity", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "onStruckByLightning") && desc.equals(isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V")) + { + hadLocalOnStruckByLightning = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnStruckByLightning", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "h" : "onUpdate") && desc.equals("()V")) + { + hadLocalOnUpdate = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnUpdate", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "func_145780_a") && desc.equals(isObfuscated ? "(IIILaji;)V" : "(IIILnet/minecraft/block/Block;)V")) + { + hadLocalPlayStepSound = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localPlayStepSound", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "j" : "func_145771_j") && desc.equals("(DDD)Z")) + { + hadLocalPushOutOfBlocks = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localPushOutOfBlocks", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "rayTrace") && desc.equals(isObfuscated ? "(DF)Lazu;" : "(DF)Lnet/minecraft/util/MovingObjectPosition;")) + { + hadLocalRayTrace = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localRayTrace", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "readEntityFromNBT") && desc.equals(isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V")) + { + hadLocalReadEntityFromNBT = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localReadEntityFromNBT", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "bH" : "respawnPlayer") && desc.equals("()V")) + { + hadLocalRespawnPlayer = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localRespawnPlayer", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "B" : "setDead") && desc.equals("()V")) + { + hadLocalSetDead = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetDead", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "n" : "setPlayerSPHealth") && desc.equals("(F)V")) + { + hadLocalSetPlayerSPHealth = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetPlayerSPHealth", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "setPositionAndRotation") && desc.equals("(DDDFF)V")) + { + hadLocalSetPositionAndRotation = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetPositionAndRotation", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "b" : "setSneaking") && desc.equals("(Z)V")) + { + hadLocalSetSneaking = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetSneaking", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "c" : "setSprinting") && desc.equals("(Z)V")) + { + hadLocalSetSprinting = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetSprinting", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "sleepInBedAt") && desc.equals(isObfuscated ? "(III)Lza;" : "(III)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;")) + { + hadLocalSleepInBedAt = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSleepInBedAt", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "ba" : "swingItem") && desc.equals("()V")) + { + hadLocalSwingItem = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSwingItem", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "bq" : "updateEntityActionState") && desc.equals("()V")) + { + hadLocalUpdateEntityActionState = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdateEntityActionState", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "ab" : "updateRidden") && desc.equals("()V")) + { + hadLocalUpdateRidden = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdateRidden", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "wakeUpPlayer") && desc.equals("(ZZZ)V")) + { + hadLocalWakeUpPlayer = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localWakeUpPlayer", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "b" : "writeEntityToNBT") && desc.equals(isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V")) + { + hadLocalWriteEntityToNBT = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localWriteEntityToNBT", desc, signature, exceptions); + } + + return super.visitMethod(access, name, desc, signature, exceptions); + } + + public void visitEnd() + { + MethodVisitor mv; + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "addExhaustion", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "addExhaustion", "(Lapi/player/client/IClientPlayerAPI;F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAddExhaustion", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "addExhaustion", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAddExhaustion", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "addExhaustion", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalAddExhaustion) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddExhaustion", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "addExhaustion", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "k" : "addMovementStat", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "addMovementStat", "(Lapi/player/client/IClientPlayerAPI;DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAddMovementStat", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "k" : "addMovementStat", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAddMovementStat", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "k" : "addMovementStat", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalAddMovementStat) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddMovementStat", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "k" : "addMovementStat", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "addStat", "" + (isObfuscated ? "(Lph;I)V" : "(Lnet/minecraft/stats/StatBase;I)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "addStat", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lph;I" : "Lnet/minecraft/stats/StatBase;I") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAddStat", "" + (isObfuscated ? "(Lph;I)V" : "(Lnet/minecraft/stats/StatBase;I)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "addStat", "" + (isObfuscated ? "(Lph;I)V" : "(Lnet/minecraft/stats/StatBase;I)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAddStat", "" + (isObfuscated ? "(Lph;I)V" : "(Lnet/minecraft/stats/StatBase;I)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "addStat", "" + (isObfuscated ? "(Lph;I)V" : "(Lnet/minecraft/stats/StatBase;I)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalAddStat) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddStat", "" + (isObfuscated ? "(Lph;I)V" : "(Lnet/minecraft/stats/StatBase;I)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "addStat", "" + (isObfuscated ? "(Lph;I)V" : "(Lnet/minecraft/stats/StatBase;I)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "attackEntityFrom", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lro;F" : "Lnet/minecraft/util/DamageSource;F") + ")Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAttackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAttackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalAttackEntityFrom) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAttackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "r" : "attackEntityPlayerSPEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "attackTargetEntityWithCurrentItem", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lsa;" : "Lnet/minecraft/entity/Entity;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAttackTargetEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "r" : "attackEntityPlayerSPEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAttackTargetEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "r" : "attackEntityPlayerSPEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalAttackTargetEntityWithCurrentItem) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAttackTargetEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "r" : "attackEntityPlayerSPEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "aE" : "canBreatheUnderwater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "canBreatheUnderwater", "(Lapi/player/client/IClientPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCanBreatheUnderwater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aE" : "canBreatheUnderwater", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCanBreatheUnderwater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "aE" : "canBreatheUnderwater", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalCanBreatheUnderwater) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanBreatheUnderwater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "aE" : "canBreatheUnderwater", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "canHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "canHarvestBlock", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Laji;" : "Lnet/minecraft/block/Block;") + ")Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCanHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "canHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCanHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "canHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalCanHarvestBlock) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "canHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ILOAD, 4); + mv.visitVarInsn(Opcodes.ALOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "canPlayerEdit", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "IIIILadd;" : "IIIILnet/minecraft/item/ItemStack;") + ")Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCanPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ILOAD, 4); + mv.visitVarInsn(Opcodes.ALOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCanPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ILOAD, 4); + mv.visitVarInsn(Opcodes.ALOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalCanPlayerEdit) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ILOAD, 4); + mv.visitVarInsn(Opcodes.ALOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "g_" : "canTriggerWalking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "canTriggerWalking", "(Lapi/player/client/IClientPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCanTriggerWalking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "g_" : "canTriggerWalking", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCanTriggerWalking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "g_" : "canTriggerWalking", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalCanTriggerWalking) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanTriggerWalking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "g_" : "canTriggerWalking", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "k" : "closeScreen", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "closeScreen", "(Lapi/player/client/IClientPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCloseScreen", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "k" : "closeScreen", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCloseScreen", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "k" : "closeScreen", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalCloseScreen) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCloseScreen", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "k" : "closeScreen", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "damageEntity", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lro;F" : "Lnet/minecraft/util/DamageSource;F") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDamageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDamageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDamageEntity) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDamageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "func_146098_a", "" + (isObfuscated ? "(Laov;)V" : "(Lnet/minecraft/tileentity/TileEntityBrewingStand;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "displayGUIBrewingStand", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Laov;" : "Lnet/minecraft/tileentity/TileEntityBrewingStand;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIBrewingStand", "" + (isObfuscated ? "(Laov;)V" : "(Lnet/minecraft/tileentity/TileEntityBrewingStand;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "func_146098_a", "" + (isObfuscated ? "(Laov;)V" : "(Lnet/minecraft/tileentity/TileEntityBrewingStand;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIBrewingStand", "" + (isObfuscated ? "(Laov;)V" : "(Lnet/minecraft/tileentity/TileEntityBrewingStand;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "func_146098_a", "" + (isObfuscated ? "(Laov;)V" : "(Lnet/minecraft/tileentity/TileEntityBrewingStand;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDisplayGUIBrewingStand) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIBrewingStand", "" + (isObfuscated ? "(Laov;)V" : "(Lnet/minecraft/tileentity/TileEntityBrewingStand;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "func_146098_a", "" + (isObfuscated ? "(Laov;)V" : "(Lnet/minecraft/tileentity/TileEntityBrewingStand;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "displayGUIChest", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lrb;" : "Lnet/minecraft/inventory/IInventory;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDisplayGUIChest) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "func_146102_a", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "displayGUIDispenser", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lapb;" : "Lnet/minecraft/tileentity/TileEntityDispenser;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIDispenser", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "func_146102_a", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIDispenser", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "func_146102_a", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDisplayGUIDispenser) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIDispenser", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "func_146102_a", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "func_146100_a", "" + (isObfuscated ? "(Laor;)V" : "(Lnet/minecraft/tileentity/TileEntity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "displayGUIEditSign", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Laor;" : "Lnet/minecraft/tileentity/TileEntity;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIEditSign", "" + (isObfuscated ? "(Laor;)V" : "(Lnet/minecraft/tileentity/TileEntity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "func_146100_a", "" + (isObfuscated ? "(Laor;)V" : "(Lnet/minecraft/tileentity/TileEntity;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIEditSign", "" + (isObfuscated ? "(Laor;)V" : "(Lnet/minecraft/tileentity/TileEntity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "func_146100_a", "" + (isObfuscated ? "(Laor;)V" : "(Lnet/minecraft/tileentity/TileEntity;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDisplayGUIEditSign) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIEditSign", "" + (isObfuscated ? "(Laor;)V" : "(Lnet/minecraft/tileentity/TileEntity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "func_146100_a", "" + (isObfuscated ? "(Laor;)V" : "(Lnet/minecraft/tileentity/TileEntity;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "displayGUIEnchantment", "(IIILjava/lang/String;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ALOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "displayGUIEnchantment", "(Lapi/player/client/IClientPlayerAPI;IIILjava/lang/String;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIEnchantment", "(IIILjava/lang/String;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ALOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "displayGUIEnchantment", "(IIILjava/lang/String;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIEnchantment", "(IIILjava/lang/String;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ALOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "displayGUIEnchantment", "(IIILjava/lang/String;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDisplayGUIEnchantment) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIEnchantment", "(IIILjava/lang/String;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ALOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "displayGUIEnchantment", "(IIILjava/lang/String;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "func_146101_a", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "displayGUIFurnace", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lapg;" : "Lnet/minecraft/tileentity/TileEntityFurnace;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIFurnace", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "func_146101_a", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIFurnace", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "func_146101_a", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDisplayGUIFurnace) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIFurnace", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "func_146101_a", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "displayGUIWorkbench", "(III)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "displayGUIWorkbench", "(Lapi/player/client/IClientPlayerAPI;III)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIWorkbench", "(III)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "b" : "displayGUIWorkbench", "(III)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIWorkbench", "(III)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "displayGUIWorkbench", "(III)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDisplayGUIWorkbench) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIWorkbench", "(III)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "displayGUIWorkbench", "(III)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "dropOneItem", "(Lapi/player/client/IClientPlayerAPI;Z)" + (isObfuscated ? "Lxk;" : "Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDropOneItem) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "dropPlayerItem", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Ladd;Z" : "Lnet/minecraft/item/ItemStack;Z") + ")" + (isObfuscated ? "Lxk;" : "Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDropPlayerItem", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDropPlayerItem", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDropPlayerItem) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropPlayerItem", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "func_146097_a", "" + (isObfuscated ? "(Ladd;ZZ)Lxk;" : "(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "dropPlayerItemWithRandomChoice", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Ladd;ZZ" : "Lnet/minecraft/item/ItemStack;ZZ") + ")" + (isObfuscated ? "Lxk;" : "Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Ladd;ZZ)Lxk;" : "(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "func_146097_a", "" + (isObfuscated ? "(Ladd;ZZ)Lxk;" : "(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Ladd;ZZ)Lxk;" : "(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "func_146097_a", "" + (isObfuscated ? "(Ladd;ZZ)Lxk;" : "(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDropPlayerItemWithRandomChoice) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Ladd;ZZ)Lxk;" : "(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "func_146097_a", "" + (isObfuscated ? "(Ladd;ZZ)Lxk;" : "(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "fall", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "fall", "(Lapi/player/client/IClientPlayerAPI;F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realFall", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "b" : "fall", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superFall", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "fall", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalFall) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localFall", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "fall", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bl" : "getAIMoveSpeed", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getAIMoveSpeed", "(Lapi/player/client/IClientPlayerAPI;)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetAIMoveSpeed", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bl" : "getAIMoveSpeed", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetAIMoveSpeed", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bl" : "getAIMoveSpeed", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetAIMoveSpeed) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetAIMoveSpeed", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bl" : "getAIMoveSpeed", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bK" : "getBedOrientationInDegrees", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getBedOrientationInDegrees", "(Lapi/player/client/IClientPlayerAPI;)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetBedOrientationInDegrees", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bK" : "getBedOrientationInDegrees", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetBedOrientationInDegrees", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bK" : "getBedOrientationInDegrees", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetBedOrientationInDegrees) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBedOrientationInDegrees", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bK" : "getBedOrientationInDegrees", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "d" : "getBrightness", "(F)F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getBrightness", "(Lapi/player/client/IClientPlayerAPI;F)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetBrightness", "(F)F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "d" : "getBrightness", "(F)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetBrightness", "(F)F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "d" : "getBrightness", "(F)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetBrightness) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBrightness", "(F)F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "d" : "getBrightness", "(F)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "c" : "getBrightnessForRender", "(F)I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getBrightnessForRender", "(Lapi/player/client/IClientPlayerAPI;F)I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetBrightnessForRender", "(F)I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "c" : "getBrightnessForRender", "(F)I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetBrightnessForRender", "(F)I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "c" : "getBrightnessForRender", "(F)I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetBrightnessForRender) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBrightnessForRender", "(F)I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "c" : "getBrightnessForRender", "(F)I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "getCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getCurrentPlayerStrVsBlock", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Laji;Z" : "Lnet/minecraft/block/Block;Z") + ")F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "getCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + ""); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "getCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + ""); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetCurrentPlayerStrVsBlock) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "getCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + ""); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, "getBreakSpeed", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getCurrentPlayerStrVsBlockForge", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Laji;ZI" : "Lnet/minecraft/block/Block;ZI") + ")F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetCurrentPlayerStrVsBlockForge", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", "getBreakSpeed", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + ""); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetCurrentPlayerStrVsBlockForge", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", "getBreakSpeed", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + ""); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetCurrentPlayerStrVsBlockForge) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetCurrentPlayerStrVsBlockForge", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", "getBreakSpeed", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + ""); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "e" : "getDistanceSq", "(DDD)D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getDistanceSq", "(Lapi/player/client/IClientPlayerAPI;DDD)D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetDistanceSq", "(DDD)D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "e" : "getDistanceSq", "(DDD)D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetDistanceSq", "(DDD)D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "e" : "getDistanceSq", "(DDD)D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetDistanceSq) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetDistanceSq", "(DDD)D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "e" : "getDistanceSq", "(DDD)D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "f" : "getDistanceSqToEntity", "" + (isObfuscated ? "(Lsa;)D" : "(Lnet/minecraft/entity/Entity;)D") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getDistanceSqToEntity", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lsa;" : "Lnet/minecraft/entity/Entity;") + ")D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetDistanceSqToEntity", "" + (isObfuscated ? "(Lsa;)D" : "(Lnet/minecraft/entity/Entity;)D") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "f" : "getDistanceSqToEntity", "" + (isObfuscated ? "(Lsa;)D" : "(Lnet/minecraft/entity/Entity;)D") + ""); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetDistanceSqToEntity", "" + (isObfuscated ? "(Lsa;)D" : "(Lnet/minecraft/entity/Entity;)D") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "f" : "getDistanceSqToEntity", "" + (isObfuscated ? "(Lsa;)D" : "(Lnet/minecraft/entity/Entity;)D") + ""); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetDistanceSqToEntity) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetDistanceSqToEntity", "" + (isObfuscated ? "(Lsa;)D" : "(Lnet/minecraft/entity/Entity;)D") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "f" : "getDistanceSqToEntity", "" + (isObfuscated ? "(Lsa;)D" : "(Lnet/minecraft/entity/Entity;)D") + ""); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "t" : "getFOVMultiplier", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getFOVMultiplier", "(Lapi/player/client/IClientPlayerAPI;)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetFOVMultiplier", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "t" : "getFOVMultiplier", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetFOVMultiplier", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "t" : "getFOVMultiplier", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetFOVMultiplier) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetFOVMultiplier", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "t" : "getFOVMultiplier", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "aT" : "getHurtSound", "()Ljava/lang/String;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getHurtSound", "(Lapi/player/client/IClientPlayerAPI;)Ljava/lang/String;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetHurtSound", "()Ljava/lang/String;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aT" : "getHurtSound", "()Ljava/lang/String;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetHurtSound", "()Ljava/lang/String;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "aT" : "getHurtSound", "()Ljava/lang/String;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetHurtSound) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetHurtSound", "()Ljava/lang/String;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "aT" : "getHurtSound", "()Ljava/lang/String;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "getItemIcon", "" + (isObfuscated ? "(Ladd;I)Lrf;" : "(Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/util/IIcon;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getItemIcon", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Ladd;I" : "Lnet/minecraft/item/ItemStack;I") + ")" + (isObfuscated ? "Lrf;" : "Lnet/minecraft/util/IIcon;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetItemIcon", "" + (isObfuscated ? "(Ladd;I)Lrf;" : "(Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/util/IIcon;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "b" : "getItemIcon", "" + (isObfuscated ? "(Ladd;I)Lrf;" : "(Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/util/IIcon;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetItemIcon", "" + (isObfuscated ? "(Ladd;I)Lrf;" : "(Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/util/IIcon;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "getItemIcon", "" + (isObfuscated ? "(Ladd;I)Lrf;" : "(Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/util/IIcon;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetItemIcon) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetItemIcon", "" + (isObfuscated ? "(Ladd;I)Lrf;" : "(Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/util/IIcon;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "getItemIcon", "" + (isObfuscated ? "(Ladd;I)Lrf;" : "(Lnet/minecraft/item/ItemStack;I)Lnet/minecraft/util/IIcon;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bM" : "getSleepTimer", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getSleepTimer", "(Lapi/player/client/IClientPlayerAPI;)I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetSleepTimer", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bM" : "getSleepTimer", "()I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetSleepTimer", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bM" : "getSleepTimer", "()I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetSleepTimer) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetSleepTimer", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bM" : "getSleepTimer", "()I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "P" : "handleLavaMovement", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "handleLavaMovement", "(Lapi/player/client/IClientPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realHandleLavaMovement", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "P" : "handleLavaMovement", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superHandleLavaMovement", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "P" : "handleLavaMovement", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalHandleLavaMovement) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localHandleLavaMovement", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "P" : "handleLavaMovement", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "N" : "handleWaterMovement", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "handleWaterMovement", "(Lapi/player/client/IClientPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realHandleWaterMovement", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "N" : "handleWaterMovement", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superHandleWaterMovement", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "N" : "handleWaterMovement", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalHandleWaterMovement) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localHandleWaterMovement", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "N" : "handleWaterMovement", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "f" : "heal", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "heal", "(Lapi/player/client/IClientPlayerAPI;F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realHeal", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "f" : "heal", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superHeal", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "f" : "heal", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalHeal) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localHeal", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "f" : "heal", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "aa" : "isEntityInsideOpaqueBlock", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isEntityInsideOpaqueBlock", "(Lapi/player/client/IClientPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsEntityInsideOpaqueBlock", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aa" : "isEntityInsideOpaqueBlock", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsEntityInsideOpaqueBlock", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "aa" : "isEntityInsideOpaqueBlock", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsEntityInsideOpaqueBlock) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsEntityInsideOpaqueBlock", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "aa" : "isEntityInsideOpaqueBlock", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "M" : "isInWater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isInWater", "(Lapi/player/client/IClientPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsInWater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "M" : "isInWater", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsInWater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "M" : "isInWater", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsInWater) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsInWater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "M" : "isInWater", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isInsideOfMaterial", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lawt;" : "Lnet/minecraft/block/material/Material;") + ")Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsInsideOfMaterial) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "h_" : "isOnLadder", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isOnLadder", "(Lapi/player/client/IClientPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsOnLadder", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "h_" : "isOnLadder", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsOnLadder", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "h_" : "isOnLadder", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsOnLadder) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsOnLadder", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "h_" : "isOnLadder", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bm" : "isPlayerSleeping", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isPlayerSleeping", "(Lapi/player/client/IClientPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsPlayerSleeping", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bm" : "isPlayerSleeping", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsPlayerSleeping", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bm" : "isPlayerSleeping", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsPlayerSleeping) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsPlayerSleeping", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bm" : "isPlayerSleeping", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "an" : "isSneaking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isSneaking", "(Lapi/player/client/IClientPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsSneaking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "an" : "isSneaking", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsSneaking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "an" : "isSneaking", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsSneaking) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsSneaking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "an" : "isSneaking", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "ao" : "isSprinting", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isSprinting", "(Lapi/player/client/IClientPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsSprinting", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ao" : "isSprinting", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsSprinting", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "ao" : "isSprinting", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsSprinting) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsSprinting", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "ao" : "isSprinting", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bj" : "jump", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "jump", "(Lapi/player/client/IClientPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realJump", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bj" : "jump", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superJump", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bj" : "jump", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalJump) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localJump", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bj" : "jump", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "knockBack", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lsa;FDD" : "Lnet/minecraft/entity/Entity;FDD") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realKnockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superKnockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalKnockBack) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localKnockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "d" : "moveEntity", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "moveEntity", "(Lapi/player/client/IClientPlayerAPI;DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realMoveEntity", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "d" : "moveEntity", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superMoveEntity", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "d" : "moveEntity", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalMoveEntity) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMoveEntity", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "d" : "moveEntity", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "e" : "moveEntityWithHeading", "(FF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "moveEntityWithHeading", "(Lapi/player/client/IClientPlayerAPI;FF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realMoveEntityWithHeading", "(FF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "e" : "moveEntityWithHeading", "(FF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superMoveEntityWithHeading", "(FF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "e" : "moveEntityWithHeading", "(FF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalMoveEntityWithHeading) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMoveEntityWithHeading", "(FF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "e" : "moveEntityWithHeading", "(FF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "moveFlying", "(FFF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.FLOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "moveFlying", "(Lapi/player/client/IClientPlayerAPI;FFF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realMoveFlying", "(FFF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.FLOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "moveFlying", "(FFF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superMoveFlying", "(FFF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.FLOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "moveFlying", "(FFF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalMoveFlying) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMoveFlying", "(FFF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.FLOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "moveFlying", "(FFF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "onDeath", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lro;" : "Lnet/minecraft/util/DamageSource;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalOnDeath) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "e" : "onLivingUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "onLivingUpdate", "(Lapi/player/client/IClientPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnLivingUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "e" : "onLivingUpdate", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnLivingUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "e" : "onLivingUpdate", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalOnLivingUpdate) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnLivingUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "e" : "onLivingUpdate", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "onKillEntity", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lsv;" : "Lnet/minecraft/entity/EntityLivingBase;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalOnKillEntity) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "onStruckByLightning", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Lxh;" : "Lnet/minecraft/entity/effect/EntityLightningBolt;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalOnStruckByLightning) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "h" : "onUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "onUpdate", "(Lapi/player/client/IClientPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "h" : "onUpdate", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "h" : "onUpdate", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalOnUpdate) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "h" : "onUpdate", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "func_145780_a", "" + (isObfuscated ? "(IIILaji;)V" : "(IIILnet/minecraft/block/Block;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ALOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "playStepSound", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "IIILaji;" : "IIILnet/minecraft/block/Block;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realPlayStepSound", "" + (isObfuscated ? "(IIILaji;)V" : "(IIILnet/minecraft/block/Block;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ALOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "func_145780_a", "" + (isObfuscated ? "(IIILaji;)V" : "(IIILnet/minecraft/block/Block;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superPlayStepSound", "" + (isObfuscated ? "(IIILaji;)V" : "(IIILnet/minecraft/block/Block;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ALOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "func_145780_a", "" + (isObfuscated ? "(IIILaji;)V" : "(IIILnet/minecraft/block/Block;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalPlayStepSound) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localPlayStepSound", "" + (isObfuscated ? "(IIILaji;)V" : "(IIILnet/minecraft/block/Block;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ALOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "func_145780_a", "" + (isObfuscated ? "(IIILaji;)V" : "(IIILnet/minecraft/block/Block;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "j" : "func_145771_j", "(DDD)Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "pushOutOfBlocks", "(Lapi/player/client/IClientPlayerAPI;DDD)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realPushOutOfBlocks", "(DDD)Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "j" : "func_145771_j", "(DDD)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superPushOutOfBlocks", "(DDD)Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "j" : "func_145771_j", "(DDD)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalPushOutOfBlocks) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localPushOutOfBlocks", "(DDD)Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "j" : "func_145771_j", "(DDD)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "rayTrace", "" + (isObfuscated ? "(DF)Lazu;" : "(DF)Lnet/minecraft/util/MovingObjectPosition;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "rayTrace", "(Lapi/player/client/IClientPlayerAPI;DF)" + (isObfuscated ? "Lazu;" : "Lnet/minecraft/util/MovingObjectPosition;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realRayTrace", "" + (isObfuscated ? "(DF)Lazu;" : "(DF)Lnet/minecraft/util/MovingObjectPosition;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "rayTrace", "" + (isObfuscated ? "(DF)Lazu;" : "(DF)Lnet/minecraft/util/MovingObjectPosition;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superRayTrace", "" + (isObfuscated ? "(DF)Lazu;" : "(DF)Lnet/minecraft/util/MovingObjectPosition;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "rayTrace", "" + (isObfuscated ? "(DF)Lazu;" : "(DF)Lnet/minecraft/util/MovingObjectPosition;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalRayTrace) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localRayTrace", "" + (isObfuscated ? "(DF)Lazu;" : "(DF)Lnet/minecraft/util/MovingObjectPosition;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "rayTrace", "" + (isObfuscated ? "(DF)Lazu;" : "(DF)Lnet/minecraft/util/MovingObjectPosition;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "readEntityFromNBT", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Ldh;" : "Lnet/minecraft/nbt/NBTTagCompound;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realReadEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superReadEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalReadEntityFromNBT) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localReadEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bH" : "respawnPlayer", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "respawnPlayer", "(Lapi/player/client/IClientPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realRespawnPlayer", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bH" : "respawnPlayer", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superRespawnPlayer", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bH" : "respawnPlayer", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalRespawnPlayer) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localRespawnPlayer", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bH" : "respawnPlayer", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "B" : "setDead", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "setDead", "(Lapi/player/client/IClientPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSetDead", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "B" : "setDead", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSetDead", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "B" : "setDead", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSetDead) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetDead", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "B" : "setDead", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "n" : "setPlayerSPHealth", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "setPlayerSPHealth", "(Lapi/player/client/IClientPlayerAPI;F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSetPlayerSPHealth", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "n" : "setPlayerSPHealth", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSetPlayerSPHealth", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "n" : "setPlayerSPHealth", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSetPlayerSPHealth) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetPlayerSPHealth", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "n" : "setPlayerSPHealth", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "setPositionAndRotation", "(DDDFF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitVarInsn(Opcodes.FLOAD, 7); + mv.visitVarInsn(Opcodes.FLOAD, 8); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "setPositionAndRotation", "(Lapi/player/client/IClientPlayerAPI;DDDFF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSetPositionAndRotation", "(DDDFF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitVarInsn(Opcodes.FLOAD, 7); + mv.visitVarInsn(Opcodes.FLOAD, 8); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "setPositionAndRotation", "(DDDFF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSetPositionAndRotation", "(DDDFF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitVarInsn(Opcodes.FLOAD, 7); + mv.visitVarInsn(Opcodes.FLOAD, 8); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "setPositionAndRotation", "(DDDFF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSetPositionAndRotation) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetPositionAndRotation", "(DDDFF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitVarInsn(Opcodes.FLOAD, 7); + mv.visitVarInsn(Opcodes.FLOAD, 8); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "setPositionAndRotation", "(DDDFF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "setSneaking", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "setSneaking", "(Lapi/player/client/IClientPlayerAPI;Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSetSneaking", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "b" : "setSneaking", "(Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSetSneaking", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "setSneaking", "(Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSetSneaking) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetSneaking", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "setSneaking", "(Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "c" : "setSprinting", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "setSprinting", "(Lapi/player/client/IClientPlayerAPI;Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSetSprinting", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "c" : "setSprinting", "(Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSetSprinting", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "c" : "setSprinting", "(Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSetSprinting) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetSprinting", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "c" : "setSprinting", "(Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "sleepInBedAt", "" + (isObfuscated ? "(III)Lza;" : "(III)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "sleepInBedAt", "(Lapi/player/client/IClientPlayerAPI;III)" + (isObfuscated ? "Lza;" : "Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSleepInBedAt", "" + (isObfuscated ? "(III)Lza;" : "(III)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "sleepInBedAt", "" + (isObfuscated ? "(III)Lza;" : "(III)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSleepInBedAt", "" + (isObfuscated ? "(III)Lza;" : "(III)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "sleepInBedAt", "" + (isObfuscated ? "(III)Lza;" : "(III)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSleepInBedAt) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSleepInBedAt", "" + (isObfuscated ? "(III)Lza;" : "(III)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "sleepInBedAt", "" + (isObfuscated ? "(III)Lza;" : "(III)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "ba" : "swingItem", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "swingItem", "(Lapi/player/client/IClientPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSwingItem", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ba" : "swingItem", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSwingItem", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "ba" : "swingItem", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSwingItem) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSwingItem", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "ba" : "swingItem", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bq" : "updateEntityActionState", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "updateEntityActionState", "(Lapi/player/client/IClientPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realUpdateEntityActionState", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bq" : "updateEntityActionState", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superUpdateEntityActionState", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bq" : "updateEntityActionState", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalUpdateEntityActionState) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdateEntityActionState", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bq" : "updateEntityActionState", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "ab" : "updateRidden", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "updateRidden", "(Lapi/player/client/IClientPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realUpdateRidden", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ab" : "updateRidden", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superUpdateRidden", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "ab" : "updateRidden", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalUpdateRidden) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdateRidden", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "ab" : "updateRidden", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "wakeUpPlayer", "(Lapi/player/client/IClientPlayerAPI;ZZZ)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realWakeUpPlayer", "(ZZZ)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superWakeUpPlayer", "(ZZZ)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalWakeUpPlayer) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localWakeUpPlayer", "(ZZZ)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "writeEntityToNBT", "(Lapi/player/client/IClientPlayerAPI;" + (isObfuscated ? "Ldh;" : "Lnet/minecraft/nbt/NBTTagCompound;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realWriteEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superWriteEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalWriteEntityToNBT) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localWriteEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getAddedToChunkField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ag" : "addedToChunk", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setAddedToChunkField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ag" : "addedToChunk", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getArrowHitTimerField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "av" : "arrowHitTimer", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setArrowHitTimerField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "av" : "arrowHitTimer", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getAttackTimeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aB" : "attackTime", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setAttackTimeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aB" : "attackTime", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getAttackedAtYawField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "az" : "attackedAtYaw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setAttackedAtYawField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "az" : "attackedAtYaw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getAttackingPlayerField", isObfuscated ? "()Lyz;" : "()Lnet/minecraft/entity/player/EntityPlayer;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aR" : "attackingPlayer", isObfuscated ? "Lyz;" : "Lnet/minecraft/entity/player/EntityPlayer;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setAttackingPlayerField", isObfuscated ? "(Lyz;)V" : "(Lnet/minecraft/entity/player/EntityPlayer;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aR" : "attackingPlayer", isObfuscated ? "Lyz;" : "Lnet/minecraft/entity/player/EntityPlayer;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getBoundingBoxField", isObfuscated ? "()Lazt;" : "()Lnet/minecraft/util/AxisAlignedBB;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "C" : "boundingBox", isObfuscated ? "Lazt;" : "Lnet/minecraft/util/AxisAlignedBB;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getCameraPitchField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aJ" : "cameraPitch", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setCameraPitchField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aJ" : "cameraPitch", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getCameraYawField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bs" : "cameraYaw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setCameraYawField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bs" : "cameraYaw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getCapabilitiesField", isObfuscated ? "()Lyw;" : "()Lnet/minecraft/entity/player/PlayerCapabilities;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bE" : "capabilities", isObfuscated ? "Lyw;" : "Lnet/minecraft/entity/player/PlayerCapabilities;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setCapabilitiesField", isObfuscated ? "(Lyw;)V" : "(Lnet/minecraft/entity/player/PlayerCapabilities;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bE" : "capabilities", isObfuscated ? "Lyw;" : "Lnet/minecraft/entity/player/PlayerCapabilities;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChunkCoordXField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ah" : "chunkCoordX", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChunkCoordXField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ah" : "chunkCoordX", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChunkCoordYField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ai" : "chunkCoordY", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChunkCoordYField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ai" : "chunkCoordY", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChunkCoordZField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aj" : "chunkCoordZ", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChunkCoordZField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aj" : "chunkCoordZ", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDataWatcherField", isObfuscated ? "()Lte;" : "()Lnet/minecraft/entity/DataWatcher;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "af" : "dataWatcher", isObfuscated ? "Lte;" : "Lnet/minecraft/entity/DataWatcher;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setDataWatcherField", isObfuscated ? "(Lte;)V" : "(Lnet/minecraft/entity/DataWatcher;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "af" : "dataWatcher", isObfuscated ? "Lte;" : "Lnet/minecraft/entity/DataWatcher;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDeadField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aT" : "dead", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setDeadField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aT" : "dead", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDeathTimeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aA" : "deathTime", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setDeathTimeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aA" : "deathTime", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDimensionField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ap" : "dimension", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setDimensionField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ap" : "dimension", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDistanceWalkedModifiedField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "P" : "distanceWalkedModified", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setDistanceWalkedModifiedField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "P" : "distanceWalkedModified", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDistanceWalkedOnStepModifiedField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "Q" : "distanceWalkedOnStepModified", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setDistanceWalkedOnStepModifiedField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "Q" : "distanceWalkedOnStepModified", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getEntityAgeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aU" : "entityAge", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setEntityAgeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aU" : "entityAge", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getEntityCollisionReductionField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "Y" : "entityCollisionReduction", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setEntityCollisionReductionField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "Y" : "entityCollisionReduction", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getEntityUniqueIDField", "()Ljava/util/UUID;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ar" : "entityUniqueID", "Ljava/util/UUID;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setEntityUniqueIDField", "(Ljava/util/UUID;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ar" : "entityUniqueID", "Ljava/util/UUID;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getExperienceField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bH" : "experience", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setExperienceField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bH" : "experience", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getExperienceLevelField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bF" : "experienceLevel", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setExperienceLevelField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bF" : "experienceLevel", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getExperienceTotalField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bG" : "experienceTotal", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setExperienceTotalField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bG" : "experienceTotal", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFallDistanceField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "R" : "fallDistance", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setFallDistanceField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "R" : "fallDistance", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_110154_aXField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aW" : "field_110154_aX", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_110154_aXField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aW" : "field_110154_aX", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70135_KField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "J" : "field_70135_K", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70135_KField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "J" : "field_70135_K", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70741_aBField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aZ" : "field_70741_aB", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70741_aBField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aZ" : "field_70741_aB", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70763_axField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aY" : "field_70763_ax", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70763_axField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aY" : "field_70763_ax", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70764_awField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aX" : "field_70764_aw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70764_awField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aX" : "field_70764_aw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70768_auField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aV" : "field_70768_au", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70768_auField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aV" : "field_70768_au", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70769_aoField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aK" : "field_70769_ao", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70769_aoField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aK" : "field_70769_ao", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70770_apField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aL" : "field_70770_ap", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70770_apField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aL" : "field_70770_ap", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71079_bUField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bC" : "field_71079_bU", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71079_bUField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bC" : "field_71079_bU", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71082_cxField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "cc" : "field_71082_cx", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71082_cxField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "cc" : "field_71082_cx", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71085_bRField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bz" : "field_71085_bR", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71085_bRField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bz" : "field_71085_bR", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71089_bVField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bD" : "field_71089_bV", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71089_bVField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bD" : "field_71089_bV", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71091_bMField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bu" : "field_71091_bM", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71091_bMField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bu" : "field_71091_bM", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71094_bPField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bx" : "field_71094_bP", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71094_bPField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bx" : "field_71094_bP", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71095_bQField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "by" : "field_71095_bQ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71095_bQField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "by" : "field_71095_bQ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71096_bNField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bv" : "field_71096_bN", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71096_bNField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bv" : "field_71096_bN", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71097_bOField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bw" : "field_71097_bO", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71097_bOField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bw" : "field_71097_bO", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71160_ciField", isObfuscated ? "()Lqm;" : "()Lnet/minecraft/util/MouseFilter;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bT" : "field_71160_ci", isObfuscated ? "Lqm;" : "Lnet/minecraft/util/MouseFilter;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71160_ciField", isObfuscated ? "(Lqm;)V" : "(Lnet/minecraft/util/MouseFilter;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bT" : "field_71160_ci", isObfuscated ? "Lqm;" : "Lnet/minecraft/util/MouseFilter;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71161_cjField", isObfuscated ? "()Lqm;" : "()Lnet/minecraft/util/MouseFilter;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bU" : "field_71161_cj", isObfuscated ? "Lqm;" : "Lnet/minecraft/util/MouseFilter;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71161_cjField", isObfuscated ? "(Lqm;)V" : "(Lnet/minecraft/util/MouseFilter;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bU" : "field_71161_cj", isObfuscated ? "Lqm;" : "Lnet/minecraft/util/MouseFilter;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71162_chField", isObfuscated ? "()Lqm;" : "()Lnet/minecraft/util/MouseFilter;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bS" : "field_71162_ch", isObfuscated ? "Lqm;" : "Lnet/minecraft/util/MouseFilter;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71162_chField", isObfuscated ? "(Lqm;)V" : "(Lnet/minecraft/util/MouseFilter;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bS" : "field_71162_ch", isObfuscated ? "Lqm;" : "Lnet/minecraft/util/MouseFilter;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFireResistanceField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ab" : "fireResistance", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setFireResistanceField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ab" : "fireResistance", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFishEntityField", isObfuscated ? "()Lxe;" : "()Lnet/minecraft/entity/projectile/EntityFishHook;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bK" : "fishEntity", isObfuscated ? "Lxe;" : "Lnet/minecraft/entity/projectile/EntityFishHook;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setFishEntityField", isObfuscated ? "(Lxe;)V" : "(Lnet/minecraft/entity/projectile/EntityFishHook;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bK" : "fishEntity", isObfuscated ? "Lxe;" : "Lnet/minecraft/entity/projectile/EntityFishHook;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFlyToggleTimerField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bq" : "flyToggleTimer", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setFlyToggleTimerField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bq" : "flyToggleTimer", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFoodStatsField", isObfuscated ? "()Lzr;" : "()Lnet/minecraft/util/FoodStats;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bp" : "foodStats", isObfuscated ? "Lzr;" : "Lnet/minecraft/util/FoodStats;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setFoodStatsField", isObfuscated ? "(Lzr;)V" : "(Lnet/minecraft/util/FoodStats;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bp" : "foodStats", isObfuscated ? "Lzr;" : "Lnet/minecraft/util/FoodStats;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getForceSpawnField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "n" : "forceSpawn", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setForceSpawnField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "n" : "forceSpawn", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getHeightField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "N" : "height", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setHeightField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "N" : "height", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getHorseJumpPowerField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bO" : "horseJumpPower", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setHorseJumpPowerField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bO" : "horseJumpPower", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getHorseJumpPowerCounterField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "horseJumpPowerCounter", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setHorseJumpPowerCounterField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "horseJumpPowerCounter", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getHurtResistantTimeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ad" : "hurtResistantTime", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setHurtResistantTimeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ad" : "hurtResistantTime", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getHurtTimeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ax" : "hurtTime", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setHurtTimeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ax" : "hurtTime", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIgnoreFrustumCheckField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ak" : "ignoreFrustumCheck", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIgnoreFrustumCheckField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ak" : "ignoreFrustumCheck", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getInPortalField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "an" : "inPortal", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setInPortalField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "an" : "inPortal", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getInWaterField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ac" : "inWater", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setInWaterField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ac" : "inWater", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getInventoryField", isObfuscated ? "()Lyx;" : "()Lnet/minecraft/entity/player/InventoryPlayer;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bm" : "inventory", isObfuscated ? "Lyx;" : "Lnet/minecraft/entity/player/InventoryPlayer;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setInventoryField", isObfuscated ? "(Lyx;)V" : "(Lnet/minecraft/entity/player/InventoryPlayer;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bm" : "inventory", isObfuscated ? "Lyx;" : "Lnet/minecraft/entity/player/InventoryPlayer;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getInventoryContainerField", isObfuscated ? "()Lzs;" : "()Lnet/minecraft/inventory/Container;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bn" : "inventoryContainer", isObfuscated ? "Lzs;" : "Lnet/minecraft/inventory/Container;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setInventoryContainerField", isObfuscated ? "(Lzs;)V" : "(Lnet/minecraft/inventory/Container;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bn" : "inventoryContainer", isObfuscated ? "Lzs;" : "Lnet/minecraft/inventory/Container;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsAirBorneField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "al" : "isAirBorne", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsAirBorneField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "al" : "isAirBorne", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsCollidedField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "G" : "isCollided", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsCollidedField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "G" : "isCollided", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsCollidedHorizontallyField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "E" : "isCollidedHorizontally", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsCollidedHorizontallyField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "E" : "isCollidedHorizontally", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsCollidedVerticallyField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "F" : "isCollidedVertically", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsCollidedVerticallyField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "F" : "isCollidedVertically", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsDeadField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "K" : "isDead", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsDeadField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "K" : "isDead", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsImmuneToFireField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ae" : "isImmuneToFire", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsImmuneToFireField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ae" : "isImmuneToFire", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsInWebField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "I" : "isInWeb", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsInWebField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "I" : "isInWeb", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsJumpingField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bc" : "isJumping", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsJumpingField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bc" : "isJumping", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsSwingInProgressField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "at" : "isSwingInProgress", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsSwingInProgressField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "at" : "isSwingInProgress", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getJumpMovementFactorField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aQ" : "jumpMovementFactor", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setJumpMovementFactorField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aQ" : "jumpMovementFactor", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastDamageField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bb" : "lastDamage", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastDamageField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bb" : "lastDamage", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastTickPosXField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "S" : "lastTickPosX", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastTickPosXField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "S" : "lastTickPosX", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastTickPosYField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "T" : "lastTickPosY", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastTickPosYField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "T" : "lastTickPosY", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastTickPosZField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "U" : "lastTickPosZ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastTickPosZField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "U" : "lastTickPosZ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLimbSwingField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aG" : "limbSwing", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLimbSwingField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aG" : "limbSwing", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLimbSwingAmountField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aF" : "limbSwingAmount", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLimbSwingAmountField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aF" : "limbSwingAmount", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMaxHurtResistantTimeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aH" : "maxHurtResistantTime", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMaxHurtResistantTimeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aH" : "maxHurtResistantTime", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMaxHurtTimeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ay" : "maxHurtTime", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMaxHurtTimeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ay" : "maxHurtTime", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMcField", isObfuscated ? "()Lbao;" : "()Lnet/minecraft/client/Minecraft;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "d" : "mc", isObfuscated ? "Lbao;" : "Lnet/minecraft/client/Minecraft;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMcField", isObfuscated ? "(Lbao;)V" : "(Lnet/minecraft/client/Minecraft;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "d" : "mc", isObfuscated ? "Lbao;" : "Lnet/minecraft/client/Minecraft;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMotionXField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "v" : "motionX", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMotionXField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "v" : "motionX", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMotionYField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "w" : "motionY", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMotionYField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "w" : "motionY", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMotionZField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "x" : "motionZ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMotionZField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "x" : "motionZ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMoveForwardField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "be" : "moveForward", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMoveForwardField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "be" : "moveForward", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMoveStrafingField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bd" : "moveStrafing", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMoveStrafingField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bd" : "moveStrafing", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMovementInputField", isObfuscated ? "()Lbli;" : "()Lnet/minecraft/util/MovementInput;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "c" : "movementInput", isObfuscated ? "Lbli;" : "Lnet/minecraft/util/MovementInput;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMovementInputField", isObfuscated ? "(Lbli;)V" : "(Lnet/minecraft/util/MovementInput;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "c" : "movementInput", isObfuscated ? "Lbli;" : "Lnet/minecraft/util/MovementInput;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMyEntitySizeField", isObfuscated ? "()Lse;" : "()Lnet/minecraft/entity/Entity$EnumEntitySize;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "as" : "myEntitySize", isObfuscated ? "Lse;" : "Lnet/minecraft/entity/Entity$EnumEntitySize;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMyEntitySizeField", isObfuscated ? "(Lse;)V" : "(Lnet/minecraft/entity/Entity$EnumEntitySize;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "as" : "myEntitySize", isObfuscated ? "Lse;" : "Lnet/minecraft/entity/Entity$EnumEntitySize;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNewPosRotationIncrementsField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bg" : "newPosRotationIncrements", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNewPosRotationIncrementsField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bg" : "newPosRotationIncrements", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNewPosXField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bh" : "newPosX", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNewPosXField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bh" : "newPosX", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNewPosYField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bi" : "newPosY", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNewPosYField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bi" : "newPosY", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNewPosZField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bj" : "newPosZ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNewPosZField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bj" : "newPosZ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNewRotationPitchField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bl" : "newRotationPitch", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNewRotationPitchField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bl" : "newRotationPitch", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNewRotationYawField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bk" : "newRotationYaw", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNewRotationYawField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bk" : "newRotationYaw", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNoClipField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "X" : "noClip", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNoClipField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "X" : "noClip", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getOnGroundField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "D" : "onGround", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setOnGroundField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "D" : "onGround", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getOpenContainerField", isObfuscated ? "()Lzs;" : "()Lnet/minecraft/inventory/Container;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bo" : "openContainer", isObfuscated ? "Lzs;" : "Lnet/minecraft/inventory/Container;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setOpenContainerField", isObfuscated ? "(Lzs;)V" : "(Lnet/minecraft/inventory/Container;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bo" : "openContainer", isObfuscated ? "Lzs;" : "Lnet/minecraft/inventory/Container;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPlayerLocationField", isObfuscated ? "()Lr;" : "()Lnet/minecraft/util/ChunkCoordinates;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bB" : "playerLocation", isObfuscated ? "Lr;" : "Lnet/minecraft/util/ChunkCoordinates;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPlayerLocationField", isObfuscated ? "(Lr;)V" : "(Lnet/minecraft/util/ChunkCoordinates;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bB" : "playerLocation", isObfuscated ? "Lr;" : "Lnet/minecraft/util/ChunkCoordinates;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPortalCounterField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ao" : "portalCounter", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPortalCounterField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ao" : "portalCounter", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPosXField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "s" : "posX", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPosXField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "s" : "posX", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPosYField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "t" : "posY", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPosYField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "t" : "posY", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPosZField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "u" : "posZ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPosZField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "u" : "posZ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevCameraPitchField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aI" : "prevCameraPitch", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevCameraPitchField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aI" : "prevCameraPitch", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevCameraYawField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "br" : "prevCameraYaw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevCameraYawField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "br" : "prevCameraYaw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevDistanceWalkedModifiedField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "O" : "prevDistanceWalkedModified", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevDistanceWalkedModifiedField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "O" : "prevDistanceWalkedModified", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevHealthField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aw" : "prevHealth", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevHealthField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aw" : "prevHealth", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevLimbSwingAmountField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aE" : "prevLimbSwingAmount", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevLimbSwingAmountField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aE" : "prevLimbSwingAmount", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevPosXField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "p" : "prevPosX", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevPosXField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "p" : "prevPosX", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevPosYField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "q" : "prevPosY", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevPosYField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "q" : "prevPosY", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevPosZField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "r" : "prevPosZ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevPosZField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "r" : "prevPosZ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevRenderArmPitchField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bL" : "prevRenderArmPitch", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevRenderArmPitchField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bL" : "prevRenderArmPitch", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevRenderArmYawField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "i" : "prevRenderArmYaw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevRenderArmYawField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "i" : "prevRenderArmYaw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevRenderYawOffsetField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aN" : "prevRenderYawOffset", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevRenderYawOffsetField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aN" : "prevRenderYawOffset", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevRotationPitchField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "B" : "prevRotationPitch", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevRotationPitchField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "B" : "prevRotationPitch", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevRotationYawField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "A" : "prevRotationYaw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevRotationYawField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "A" : "prevRotationYaw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevRotationYawHeadField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aP" : "prevRotationYawHead", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevRotationYawHeadField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aP" : "prevRotationYawHead", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevSwingProgressField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aC" : "prevSwingProgress", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevSwingProgressField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aC" : "prevSwingProgress", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevTimeInPortalField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bN" : "prevTimeInPortal", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevTimeInPortalField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bN" : "prevTimeInPortal", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPreventEntitySpawningField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "k" : "preventEntitySpawning", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPreventEntitySpawningField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "k" : "preventEntitySpawning", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRandField", "()Ljava/util/Random;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "Z" : "rand", "Ljava/util/Random;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRandField", "(Ljava/util/Random;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "Z" : "rand", "Ljava/util/Random;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRandomYawVelocityField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bf" : "randomYawVelocity", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRandomYawVelocityField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bf" : "randomYawVelocity", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRecentlyHitField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aS" : "recentlyHit", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRecentlyHitField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aS" : "recentlyHit", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRenderArmPitchField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "h" : "renderArmPitch", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRenderArmPitchField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "h" : "renderArmPitch", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRenderArmYawField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "g" : "renderArmYaw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRenderArmYawField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "g" : "renderArmYaw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRenderDistanceWeightField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "j" : "renderDistanceWeight", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRenderDistanceWeightField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "j" : "renderDistanceWeight", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRenderYawOffsetField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aM" : "renderYawOffset", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRenderYawOffsetField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aM" : "renderYawOffset", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRiddenByEntityField", isObfuscated ? "()Lsa;" : "()Lnet/minecraft/entity/Entity;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "l" : "riddenByEntity", isObfuscated ? "Lsa;" : "Lnet/minecraft/entity/Entity;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRiddenByEntityField", isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "l" : "riddenByEntity", isObfuscated ? "Lsa;" : "Lnet/minecraft/entity/Entity;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRidingEntityField", isObfuscated ? "()Lsa;" : "()Lnet/minecraft/entity/Entity;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "m" : "ridingEntity", isObfuscated ? "Lsa;" : "Lnet/minecraft/entity/Entity;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRidingEntityField", isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "m" : "ridingEntity", isObfuscated ? "Lsa;" : "Lnet/minecraft/entity/Entity;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRotationPitchField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "z" : "rotationPitch", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRotationPitchField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "z" : "rotationPitch", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRotationYawField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "y" : "rotationYaw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRotationYawField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "y" : "rotationYaw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRotationYawHeadField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aO" : "rotationYawHead", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRotationYawHeadField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aO" : "rotationYawHead", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getScoreValueField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ba" : "scoreValue", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setScoreValueField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ba" : "scoreValue", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getServerPosXField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bZ" : "serverPosX", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setServerPosXField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bZ" : "serverPosX", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getServerPosYField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ca" : "serverPosY", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setServerPosYField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ca" : "serverPosY", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getServerPosZField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "cb" : "serverPosZ", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setServerPosZField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "cb" : "serverPosZ", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSleepingField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bA" : "sleeping", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSleepingField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bA" : "sleeping", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSpeedInAirField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bJ" : "speedInAir", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSpeedInAirField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bJ" : "speedInAir", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSpeedOnGroundField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bI" : "speedOnGround", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSpeedOnGroundField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bI" : "speedOnGround", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSprintToggleTimerField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "e" : "sprintToggleTimer", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSprintToggleTimerField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "e" : "sprintToggleTimer", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSprintingTicksLeftField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "f" : "sprintingTicksLeft", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSprintingTicksLeftField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "f" : "sprintingTicksLeft", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getStepHeightField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "W" : "stepHeight", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setStepHeightField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "W" : "stepHeight", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSwingProgressField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aD" : "swingProgress", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSwingProgressField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aD" : "swingProgress", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSwingProgressIntField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "au" : "swingProgressInt", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSwingProgressIntField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "au" : "swingProgressInt", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getTeleportDirectionField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aq" : "teleportDirection", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setTeleportDirectionField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aq" : "teleportDirection", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getTicksExistedField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aa" : "ticksExisted", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setTicksExistedField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aa" : "ticksExisted", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getTimeInPortalField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bM" : "timeInPortal", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setTimeInPortalField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bM" : "timeInPortal", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getTimeUntilPortalField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "am" : "timeUntilPortal", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setTimeUntilPortalField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "am" : "timeUntilPortal", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getVelocityChangedField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "H" : "velocityChanged", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setVelocityChangedField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "H" : "velocityChanged", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getWidthField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "M" : "width", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setWidthField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "M" : "width", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getWorldObjField", isObfuscated ? "()Lahb;" : "()Lnet/minecraft/world/World;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "o" : "worldObj", isObfuscated ? "Lahb;" : "Lnet/minecraft/world/World;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setWorldObjField", isObfuscated ? "(Lahb;)V" : "(Lnet/minecraft/world/World;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "o" : "worldObj", isObfuscated ? "Lahb;" : "Lnet/minecraft/world/World;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getXpCooldownField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bt" : "xpCooldown", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setXpCooldownField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bt" : "xpCooldown", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getYOffsetField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "L" : "yOffset", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setYOffsetField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "L" : "yOffset", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getYSizeField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "V" : "ySize", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setYSizeField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "V" : "ySize", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getClientPlayerBase", "(Ljava/lang/String;)Lapi/player/client/ClientPlayerBase;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getClientPlayerBase", "(Lapi/player/client/IClientPlayerAPI;Ljava/lang/String;)Lapi/player/client/ClientPlayerBase;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getClientPlayerBaseIds", "()Ljava/util/Set;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getClientPlayerBaseIds", "(Lapi/player/client/IClientPlayerAPI;)Ljava/util/Set;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "dynamic", "(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ALOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "dynamic", "(Lapi/player/client/IClientPlayerAPI;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getClientPlayerAPI", "()Lapi/player/client/ClientPlayerAPI;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", "clientPlayerAPI", "Lapi/player/client/ClientPlayerAPI;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getEntityPlayerSP", isObfuscated ? "()Lblk;" : "()Lnet/minecraft/client/entity/EntityPlayerSP;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + cv.visitField(Opcodes.ACC_PRIVATE | Opcodes.ACC_FINAL, "clientPlayerAPI", "Lapi/player/client/ClientPlayerAPI;", null, null); + } +} diff --git a/src/Java/api/player/client/ClientPlayerConstructorVisitor.java b/src/Java/api/player/client/ClientPlayerConstructorVisitor.java new file mode 100644 index 0000000000..414c016e73 --- /dev/null +++ b/src/Java/api/player/client/ClientPlayerConstructorVisitor.java @@ -0,0 +1,65 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.client; + +import org.objectweb.asm.*; + +public final class ClientPlayerConstructorVisitor extends MethodVisitor +{ + private final boolean isObfuscated; + + public ClientPlayerConstructorVisitor(MethodVisitor paramMethodVisitor, boolean isObfuscated) + { + super(262144, paramMethodVisitor); + this.isObfuscated = isObfuscated; + } + + public void visitMethodInsn(int opcode, String owner, String name, String desc) + { + super.visitMethodInsn(opcode, owner, name, desc); + if(name.equals("") && owner.equals(isObfuscated ? "blg" : "net/minecraft/client/entity/AbstractClientPlayer")) + { + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "create", "(Lapi/player/client/IClientPlayerAPI;)Lapi/player/client/ClientPlayerAPI;"); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "blk" : "net/minecraft/client/entity/EntityPlayerSP", "clientPlayerAPI", "Lapi/player/client/ClientPlayerAPI;"); + + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitIntInsn(Opcodes.ALOAD, 1); + mv.visitIntInsn(Opcodes.ALOAD, 2); + mv.visitIntInsn(Opcodes.ALOAD, 3); + mv.visitIntInsn(Opcodes.ILOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "beforeLocalConstructing", "(Lapi/player/client/IClientPlayerAPI;Lnet/minecraft/client/Minecraft;Lnet/minecraft/world/World;Lnet/minecraft/util/Session;I)V"); + } + } + + public void visitInsn(int opcode) + { + if(opcode == Opcodes.RETURN) + { + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitIntInsn(Opcodes.ALOAD, 1); + mv.visitIntInsn(Opcodes.ALOAD, 2); + mv.visitIntInsn(Opcodes.ALOAD, 3); + mv.visitIntInsn(Opcodes.ILOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "afterLocalConstructing", "(Lapi/player/client/IClientPlayerAPI;Lnet/minecraft/client/Minecraft;Lnet/minecraft/world/World;Lnet/minecraft/util/Session;I)V"); + } + super.visitInsn(opcode); + } +} diff --git a/src/Java/api/player/client/IClientPlayer.java b/src/Java/api/player/client/IClientPlayer.java new file mode 100644 index 0000000000..9c50158c3e --- /dev/null +++ b/src/Java/api/player/client/IClientPlayer.java @@ -0,0 +1,1047 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.client; + +public interface IClientPlayer +{ + ClientPlayerBase getClientPlayerBase(String baseId); + + java.util.Set getClientPlayerBaseIds(); + + Object dynamic(String key, Object[] parameters); + + void realAddExhaustion(float paramFloat); + + void superAddExhaustion(float paramFloat); + + void localAddExhaustion(float paramFloat); + + void realAddMovementStat(double paramDouble1, double paramDouble2, double paramDouble3); + + void superAddMovementStat(double paramDouble1, double paramDouble2, double paramDouble3); + + void localAddMovementStat(double paramDouble1, double paramDouble2, double paramDouble3); + + void realAddStat(net.minecraft.stats.StatBase paramStatBase, int paramInt); + + void superAddStat(net.minecraft.stats.StatBase paramStatBase, int paramInt); + + void localAddStat(net.minecraft.stats.StatBase paramStatBase, int paramInt); + + boolean realAttackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat); + + boolean superAttackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat); + + boolean localAttackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat); + + void realAttackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity); + + void superAttackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity); + + void localAttackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity); + + boolean realCanBreatheUnderwater(); + + boolean superCanBreatheUnderwater(); + + boolean localCanBreatheUnderwater(); + + boolean realCanHarvestBlock(net.minecraft.block.Block paramBlock); + + boolean superCanHarvestBlock(net.minecraft.block.Block paramBlock); + + boolean localCanHarvestBlock(net.minecraft.block.Block paramBlock); + + boolean realCanPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack); + + boolean superCanPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack); + + boolean localCanPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack); + + boolean realCanTriggerWalking(); + + boolean superCanTriggerWalking(); + + boolean localCanTriggerWalking(); + + void realCloseScreen(); + + void superCloseScreen(); + + void localCloseScreen(); + + void realDamageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat); + + void superDamageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat); + + void localDamageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat); + + void realDisplayGUIBrewingStand(net.minecraft.tileentity.TileEntityBrewingStand paramTileEntityBrewingStand); + + void superDisplayGUIBrewingStand(net.minecraft.tileentity.TileEntityBrewingStand paramTileEntityBrewingStand); + + void localDisplayGUIBrewingStand(net.minecraft.tileentity.TileEntityBrewingStand paramTileEntityBrewingStand); + + void realDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory); + + void superDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory); + + void localDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory); + + void realDisplayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser); + + void superDisplayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser); + + void localDisplayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser); + + void realDisplayGUIEditSign(net.minecraft.tileentity.TileEntity paramTileEntity); + + void superDisplayGUIEditSign(net.minecraft.tileentity.TileEntity paramTileEntity); + + void localDisplayGUIEditSign(net.minecraft.tileentity.TileEntity paramTileEntity); + + void realDisplayGUIEnchantment(int paramInt1, int paramInt2, int paramInt3, String paramString); + + void superDisplayGUIEnchantment(int paramInt1, int paramInt2, int paramInt3, String paramString); + + void localDisplayGUIEnchantment(int paramInt1, int paramInt2, int paramInt3, String paramString); + + void realDisplayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace); + + void superDisplayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace); + + void localDisplayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace); + + void realDisplayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3); + + void superDisplayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3); + + void localDisplayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3); + + net.minecraft.entity.item.EntityItem realDropOneItem(boolean paramBoolean); + + net.minecraft.entity.item.EntityItem superDropOneItem(boolean paramBoolean); + + net.minecraft.entity.item.EntityItem localDropOneItem(boolean paramBoolean); + + net.minecraft.entity.item.EntityItem realDropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean); + + net.minecraft.entity.item.EntityItem superDropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean); + + net.minecraft.entity.item.EntityItem localDropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean); + + net.minecraft.entity.item.EntityItem realDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2); + + net.minecraft.entity.item.EntityItem superDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2); + + net.minecraft.entity.item.EntityItem localDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2); + + void realFall(float paramFloat); + + void superFall(float paramFloat); + + void localFall(float paramFloat); + + float realGetAIMoveSpeed(); + + float superGetAIMoveSpeed(); + + float localGetAIMoveSpeed(); + + float realGetBedOrientationInDegrees(); + + float superGetBedOrientationInDegrees(); + + float localGetBedOrientationInDegrees(); + + float realGetBrightness(float paramFloat); + + float superGetBrightness(float paramFloat); + + float localGetBrightness(float paramFloat); + + int realGetBrightnessForRender(float paramFloat); + + int superGetBrightnessForRender(float paramFloat); + + int localGetBrightnessForRender(float paramFloat); + + float realGetCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean); + + float superGetCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean); + + float localGetCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean); + + float realGetCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt); + + float superGetCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt); + + float localGetCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt); + + double realGetDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3); + + double superGetDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3); + + double localGetDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3); + + double realGetDistanceSqToEntity(net.minecraft.entity.Entity paramEntity); + + double superGetDistanceSqToEntity(net.minecraft.entity.Entity paramEntity); + + double localGetDistanceSqToEntity(net.minecraft.entity.Entity paramEntity); + + float realGetFOVMultiplier(); + + float localGetFOVMultiplier(); + + java.lang.String realGetHurtSound(); + + java.lang.String superGetHurtSound(); + + java.lang.String localGetHurtSound(); + + net.minecraft.util.IIcon realGetItemIcon(net.minecraft.item.ItemStack paramItemStack, int paramInt); + + net.minecraft.util.IIcon superGetItemIcon(net.minecraft.item.ItemStack paramItemStack, int paramInt); + + net.minecraft.util.IIcon localGetItemIcon(net.minecraft.item.ItemStack paramItemStack, int paramInt); + + int realGetSleepTimer(); + + int superGetSleepTimer(); + + int localGetSleepTimer(); + + boolean realHandleLavaMovement(); + + boolean superHandleLavaMovement(); + + boolean localHandleLavaMovement(); + + boolean realHandleWaterMovement(); + + boolean superHandleWaterMovement(); + + boolean localHandleWaterMovement(); + + void realHeal(float paramFloat); + + void superHeal(float paramFloat); + + void localHeal(float paramFloat); + + boolean realIsEntityInsideOpaqueBlock(); + + boolean superIsEntityInsideOpaqueBlock(); + + boolean localIsEntityInsideOpaqueBlock(); + + boolean realIsInWater(); + + boolean superIsInWater(); + + boolean localIsInWater(); + + boolean realIsInsideOfMaterial(net.minecraft.block.material.Material paramMaterial); + + boolean superIsInsideOfMaterial(net.minecraft.block.material.Material paramMaterial); + + boolean localIsInsideOfMaterial(net.minecraft.block.material.Material paramMaterial); + + boolean realIsOnLadder(); + + boolean superIsOnLadder(); + + boolean localIsOnLadder(); + + boolean realIsPlayerSleeping(); + + boolean superIsPlayerSleeping(); + + boolean localIsPlayerSleeping(); + + boolean realIsSneaking(); + + boolean superIsSneaking(); + + boolean localIsSneaking(); + + boolean realIsSprinting(); + + boolean superIsSprinting(); + + boolean localIsSprinting(); + + void realJump(); + + void superJump(); + + void localJump(); + + void realKnockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2); + + void superKnockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2); + + void localKnockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2); + + void realMoveEntity(double paramDouble1, double paramDouble2, double paramDouble3); + + void superMoveEntity(double paramDouble1, double paramDouble2, double paramDouble3); + + void localMoveEntity(double paramDouble1, double paramDouble2, double paramDouble3); + + void realMoveEntityWithHeading(float paramFloat1, float paramFloat2); + + void superMoveEntityWithHeading(float paramFloat1, float paramFloat2); + + void localMoveEntityWithHeading(float paramFloat1, float paramFloat2); + + void realMoveFlying(float paramFloat1, float paramFloat2, float paramFloat3); + + void superMoveFlying(float paramFloat1, float paramFloat2, float paramFloat3); + + void localMoveFlying(float paramFloat1, float paramFloat2, float paramFloat3); + + void realOnDeath(net.minecraft.util.DamageSource paramDamageSource); + + void superOnDeath(net.minecraft.util.DamageSource paramDamageSource); + + void localOnDeath(net.minecraft.util.DamageSource paramDamageSource); + + void realOnLivingUpdate(); + + void superOnLivingUpdate(); + + void localOnLivingUpdate(); + + void realOnKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase); + + void superOnKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase); + + void localOnKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase); + + void realOnStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt); + + void superOnStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt); + + void localOnStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt); + + void realOnUpdate(); + + void superOnUpdate(); + + void localOnUpdate(); + + void realPlayStepSound(int paramInt1, int paramInt2, int paramInt3, net.minecraft.block.Block paramBlock); + + void superPlayStepSound(int paramInt1, int paramInt2, int paramInt3, net.minecraft.block.Block paramBlock); + + void localPlayStepSound(int paramInt1, int paramInt2, int paramInt3, net.minecraft.block.Block paramBlock); + + boolean realPushOutOfBlocks(double paramDouble1, double paramDouble2, double paramDouble3); + + boolean superPushOutOfBlocks(double paramDouble1, double paramDouble2, double paramDouble3); + + boolean localPushOutOfBlocks(double paramDouble1, double paramDouble2, double paramDouble3); + + net.minecraft.util.MovingObjectPosition realRayTrace(double paramDouble, float paramFloat); + + net.minecraft.util.MovingObjectPosition superRayTrace(double paramDouble, float paramFloat); + + net.minecraft.util.MovingObjectPosition localRayTrace(double paramDouble, float paramFloat); + + void realReadEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound); + + void superReadEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound); + + void localReadEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound); + + void realRespawnPlayer(); + + void superRespawnPlayer(); + + void localRespawnPlayer(); + + void realSetDead(); + + void superSetDead(); + + void localSetDead(); + + void realSetPlayerSPHealth(float paramFloat); + + void localSetPlayerSPHealth(float paramFloat); + + void realSetPositionAndRotation(double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat1, float paramFloat2); + + void superSetPositionAndRotation(double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat1, float paramFloat2); + + void localSetPositionAndRotation(double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat1, float paramFloat2); + + void realSetSneaking(boolean paramBoolean); + + void superSetSneaking(boolean paramBoolean); + + void localSetSneaking(boolean paramBoolean); + + void realSetSprinting(boolean paramBoolean); + + void superSetSprinting(boolean paramBoolean); + + void localSetSprinting(boolean paramBoolean); + + net.minecraft.entity.player.EntityPlayer.EnumStatus realSleepInBedAt(int paramInt1, int paramInt2, int paramInt3); + + net.minecraft.entity.player.EntityPlayer.EnumStatus superSleepInBedAt(int paramInt1, int paramInt2, int paramInt3); + + net.minecraft.entity.player.EntityPlayer.EnumStatus localSleepInBedAt(int paramInt1, int paramInt2, int paramInt3); + + void realSwingItem(); + + void superSwingItem(); + + void localSwingItem(); + + void realUpdateEntityActionState(); + + void superUpdateEntityActionState(); + + void localUpdateEntityActionState(); + + void realUpdateRidden(); + + void superUpdateRidden(); + + void localUpdateRidden(); + + void realWakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3); + + void superWakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3); + + void localWakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3); + + void realWriteEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound); + + void superWriteEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound); + + void localWriteEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound); + + boolean getAddedToChunkField(); + + void setAddedToChunkField(boolean addedToChunk); + + int getArrowHitTimerField(); + + void setArrowHitTimerField(int arrowHitTimer); + + int getAttackTimeField(); + + void setAttackTimeField(int attackTime); + + float getAttackedAtYawField(); + + void setAttackedAtYawField(float attackedAtYaw); + + net.minecraft.entity.player.EntityPlayer getAttackingPlayerField(); + + void setAttackingPlayerField(net.minecraft.entity.player.EntityPlayer attackingPlayer); + + net.minecraft.util.AxisAlignedBB getBoundingBoxField(); + + float getCameraPitchField(); + + void setCameraPitchField(float cameraPitch); + + float getCameraYawField(); + + void setCameraYawField(float cameraYaw); + + net.minecraft.entity.player.PlayerCapabilities getCapabilitiesField(); + + void setCapabilitiesField(net.minecraft.entity.player.PlayerCapabilities capabilities); + + int getChunkCoordXField(); + + void setChunkCoordXField(int chunkCoordX); + + int getChunkCoordYField(); + + void setChunkCoordYField(int chunkCoordY); + + int getChunkCoordZField(); + + void setChunkCoordZField(int chunkCoordZ); + + net.minecraft.entity.DataWatcher getDataWatcherField(); + + void setDataWatcherField(net.minecraft.entity.DataWatcher dataWatcher); + + boolean getDeadField(); + + void setDeadField(boolean dead); + + int getDeathTimeField(); + + void setDeathTimeField(int deathTime); + + int getDimensionField(); + + void setDimensionField(int dimension); + + float getDistanceWalkedModifiedField(); + + void setDistanceWalkedModifiedField(float distanceWalkedModified); + + float getDistanceWalkedOnStepModifiedField(); + + void setDistanceWalkedOnStepModifiedField(float distanceWalkedOnStepModified); + + int getEntityAgeField(); + + void setEntityAgeField(int entityAge); + + float getEntityCollisionReductionField(); + + void setEntityCollisionReductionField(float entityCollisionReduction); + + java.util.UUID getEntityUniqueIDField(); + + void setEntityUniqueIDField(java.util.UUID entityUniqueID); + + float getExperienceField(); + + void setExperienceField(float experience); + + int getExperienceLevelField(); + + void setExperienceLevelField(int experienceLevel); + + int getExperienceTotalField(); + + void setExperienceTotalField(int experienceTotal); + + float getFallDistanceField(); + + void setFallDistanceField(float fallDistance); + + float getField_110154_aXField(); + + void setField_110154_aXField(float field_110154_aX); + + boolean getField_70135_KField(); + + void setField_70135_KField(boolean field_70135_K); + + float getField_70741_aBField(); + + void setField_70741_aBField(float field_70741_aB); + + float getField_70763_axField(); + + void setField_70763_axField(float field_70763_ax); + + float getField_70764_awField(); + + void setField_70764_awField(float field_70764_aw); + + float getField_70768_auField(); + + void setField_70768_auField(float field_70768_au); + + float getField_70769_aoField(); + + void setField_70769_aoField(float field_70769_ao); + + float getField_70770_apField(); + + void setField_70770_apField(float field_70770_ap); + + float getField_71079_bUField(); + + void setField_71079_bUField(float field_71079_bU); + + float getField_71082_cxField(); + + void setField_71082_cxField(float field_71082_cx); + + double getField_71085_bRField(); + + void setField_71085_bRField(double field_71085_bR); + + float getField_71089_bVField(); + + void setField_71089_bVField(float field_71089_bV); + + double getField_71091_bMField(); + + void setField_71091_bMField(double field_71091_bM); + + double getField_71094_bPField(); + + void setField_71094_bPField(double field_71094_bP); + + double getField_71095_bQField(); + + void setField_71095_bQField(double field_71095_bQ); + + double getField_71096_bNField(); + + void setField_71096_bNField(double field_71096_bN); + + double getField_71097_bOField(); + + void setField_71097_bOField(double field_71097_bO); + + net.minecraft.util.MouseFilter getField_71160_ciField(); + + void setField_71160_ciField(net.minecraft.util.MouseFilter field_71160_ci); + + net.minecraft.util.MouseFilter getField_71161_cjField(); + + void setField_71161_cjField(net.minecraft.util.MouseFilter field_71161_cj); + + net.minecraft.util.MouseFilter getField_71162_chField(); + + void setField_71162_chField(net.minecraft.util.MouseFilter field_71162_ch); + + int getFireResistanceField(); + + void setFireResistanceField(int fireResistance); + + net.minecraft.entity.projectile.EntityFishHook getFishEntityField(); + + void setFishEntityField(net.minecraft.entity.projectile.EntityFishHook fishEntity); + + int getFlyToggleTimerField(); + + void setFlyToggleTimerField(int flyToggleTimer); + + net.minecraft.util.FoodStats getFoodStatsField(); + + void setFoodStatsField(net.minecraft.util.FoodStats foodStats); + + boolean getForceSpawnField(); + + void setForceSpawnField(boolean forceSpawn); + + float getHeightField(); + + void setHeightField(float height); + + float getHorseJumpPowerField(); + + void setHorseJumpPowerField(float horseJumpPower); + + int getHorseJumpPowerCounterField(); + + void setHorseJumpPowerCounterField(int horseJumpPowerCounter); + + int getHurtResistantTimeField(); + + void setHurtResistantTimeField(int hurtResistantTime); + + int getHurtTimeField(); + + void setHurtTimeField(int hurtTime); + + boolean getIgnoreFrustumCheckField(); + + void setIgnoreFrustumCheckField(boolean ignoreFrustumCheck); + + boolean getInPortalField(); + + void setInPortalField(boolean inPortal); + + boolean getInWaterField(); + + void setInWaterField(boolean inWater); + + net.minecraft.entity.player.InventoryPlayer getInventoryField(); + + void setInventoryField(net.minecraft.entity.player.InventoryPlayer inventory); + + net.minecraft.inventory.Container getInventoryContainerField(); + + void setInventoryContainerField(net.minecraft.inventory.Container inventoryContainer); + + boolean getIsAirBorneField(); + + void setIsAirBorneField(boolean isAirBorne); + + boolean getIsCollidedField(); + + void setIsCollidedField(boolean isCollided); + + boolean getIsCollidedHorizontallyField(); + + void setIsCollidedHorizontallyField(boolean isCollidedHorizontally); + + boolean getIsCollidedVerticallyField(); + + void setIsCollidedVerticallyField(boolean isCollidedVertically); + + boolean getIsDeadField(); + + void setIsDeadField(boolean isDead); + + boolean getIsImmuneToFireField(); + + void setIsImmuneToFireField(boolean isImmuneToFire); + + boolean getIsInWebField(); + + void setIsInWebField(boolean isInWeb); + + boolean getIsJumpingField(); + + void setIsJumpingField(boolean isJumping); + + boolean getIsSwingInProgressField(); + + void setIsSwingInProgressField(boolean isSwingInProgress); + + float getJumpMovementFactorField(); + + void setJumpMovementFactorField(float jumpMovementFactor); + + float getLastDamageField(); + + void setLastDamageField(float lastDamage); + + double getLastTickPosXField(); + + void setLastTickPosXField(double lastTickPosX); + + double getLastTickPosYField(); + + void setLastTickPosYField(double lastTickPosY); + + double getLastTickPosZField(); + + void setLastTickPosZField(double lastTickPosZ); + + float getLimbSwingField(); + + void setLimbSwingField(float limbSwing); + + float getLimbSwingAmountField(); + + void setLimbSwingAmountField(float limbSwingAmount); + + int getMaxHurtResistantTimeField(); + + void setMaxHurtResistantTimeField(int maxHurtResistantTime); + + int getMaxHurtTimeField(); + + void setMaxHurtTimeField(int maxHurtTime); + + net.minecraft.client.Minecraft getMcField(); + + void setMcField(net.minecraft.client.Minecraft mc); + + double getMotionXField(); + + void setMotionXField(double motionX); + + double getMotionYField(); + + void setMotionYField(double motionY); + + double getMotionZField(); + + void setMotionZField(double motionZ); + + float getMoveForwardField(); + + void setMoveForwardField(float moveForward); + + float getMoveStrafingField(); + + void setMoveStrafingField(float moveStrafing); + + net.minecraft.util.MovementInput getMovementInputField(); + + void setMovementInputField(net.minecraft.util.MovementInput movementInput); + + net.minecraft.entity.Entity.EnumEntitySize getMyEntitySizeField(); + + void setMyEntitySizeField(net.minecraft.entity.Entity.EnumEntitySize myEntitySize); + + int getNewPosRotationIncrementsField(); + + void setNewPosRotationIncrementsField(int newPosRotationIncrements); + + double getNewPosXField(); + + void setNewPosXField(double newPosX); + + double getNewPosYField(); + + void setNewPosYField(double newPosY); + + double getNewPosZField(); + + void setNewPosZField(double newPosZ); + + double getNewRotationPitchField(); + + void setNewRotationPitchField(double newRotationPitch); + + double getNewRotationYawField(); + + void setNewRotationYawField(double newRotationYaw); + + boolean getNoClipField(); + + void setNoClipField(boolean noClip); + + boolean getOnGroundField(); + + void setOnGroundField(boolean onGround); + + net.minecraft.inventory.Container getOpenContainerField(); + + void setOpenContainerField(net.minecraft.inventory.Container openContainer); + + net.minecraft.util.ChunkCoordinates getPlayerLocationField(); + + void setPlayerLocationField(net.minecraft.util.ChunkCoordinates playerLocation); + + int getPortalCounterField(); + + void setPortalCounterField(int portalCounter); + + double getPosXField(); + + void setPosXField(double posX); + + double getPosYField(); + + void setPosYField(double posY); + + double getPosZField(); + + void setPosZField(double posZ); + + float getPrevCameraPitchField(); + + void setPrevCameraPitchField(float prevCameraPitch); + + float getPrevCameraYawField(); + + void setPrevCameraYawField(float prevCameraYaw); + + float getPrevDistanceWalkedModifiedField(); + + void setPrevDistanceWalkedModifiedField(float prevDistanceWalkedModified); + + float getPrevHealthField(); + + void setPrevHealthField(float prevHealth); + + float getPrevLimbSwingAmountField(); + + void setPrevLimbSwingAmountField(float prevLimbSwingAmount); + + double getPrevPosXField(); + + void setPrevPosXField(double prevPosX); + + double getPrevPosYField(); + + void setPrevPosYField(double prevPosY); + + double getPrevPosZField(); + + void setPrevPosZField(double prevPosZ); + + float getPrevRenderArmPitchField(); + + void setPrevRenderArmPitchField(float prevRenderArmPitch); + + float getPrevRenderArmYawField(); + + void setPrevRenderArmYawField(float prevRenderArmYaw); + + float getPrevRenderYawOffsetField(); + + void setPrevRenderYawOffsetField(float prevRenderYawOffset); + + float getPrevRotationPitchField(); + + void setPrevRotationPitchField(float prevRotationPitch); + + float getPrevRotationYawField(); + + void setPrevRotationYawField(float prevRotationYaw); + + float getPrevRotationYawHeadField(); + + void setPrevRotationYawHeadField(float prevRotationYawHead); + + float getPrevSwingProgressField(); + + void setPrevSwingProgressField(float prevSwingProgress); + + float getPrevTimeInPortalField(); + + void setPrevTimeInPortalField(float prevTimeInPortal); + + boolean getPreventEntitySpawningField(); + + void setPreventEntitySpawningField(boolean preventEntitySpawning); + + java.util.Random getRandField(); + + void setRandField(java.util.Random rand); + + float getRandomYawVelocityField(); + + void setRandomYawVelocityField(float randomYawVelocity); + + int getRecentlyHitField(); + + void setRecentlyHitField(int recentlyHit); + + float getRenderArmPitchField(); + + void setRenderArmPitchField(float renderArmPitch); + + float getRenderArmYawField(); + + void setRenderArmYawField(float renderArmYaw); + + double getRenderDistanceWeightField(); + + void setRenderDistanceWeightField(double renderDistanceWeight); + + float getRenderYawOffsetField(); + + void setRenderYawOffsetField(float renderYawOffset); + + net.minecraft.entity.Entity getRiddenByEntityField(); + + void setRiddenByEntityField(net.minecraft.entity.Entity riddenByEntity); + + net.minecraft.entity.Entity getRidingEntityField(); + + void setRidingEntityField(net.minecraft.entity.Entity ridingEntity); + + float getRotationPitchField(); + + void setRotationPitchField(float rotationPitch); + + float getRotationYawField(); + + void setRotationYawField(float rotationYaw); + + float getRotationYawHeadField(); + + void setRotationYawHeadField(float rotationYawHead); + + int getScoreValueField(); + + void setScoreValueField(int scoreValue); + + int getServerPosXField(); + + void setServerPosXField(int serverPosX); + + int getServerPosYField(); + + void setServerPosYField(int serverPosY); + + int getServerPosZField(); + + void setServerPosZField(int serverPosZ); + + boolean getSleepingField(); + + void setSleepingField(boolean sleeping); + + float getSpeedInAirField(); + + void setSpeedInAirField(float speedInAir); + + float getSpeedOnGroundField(); + + void setSpeedOnGroundField(float speedOnGround); + + int getSprintToggleTimerField(); + + void setSprintToggleTimerField(int sprintToggleTimer); + + int getSprintingTicksLeftField(); + + void setSprintingTicksLeftField(int sprintingTicksLeft); + + float getStepHeightField(); + + void setStepHeightField(float stepHeight); + + float getSwingProgressField(); + + void setSwingProgressField(float swingProgress); + + int getSwingProgressIntField(); + + void setSwingProgressIntField(int swingProgressInt); + + int getTeleportDirectionField(); + + void setTeleportDirectionField(int teleportDirection); + + int getTicksExistedField(); + + void setTicksExistedField(int ticksExisted); + + float getTimeInPortalField(); + + void setTimeInPortalField(float timeInPortal); + + int getTimeUntilPortalField(); + + void setTimeUntilPortalField(int timeUntilPortal); + + boolean getVelocityChangedField(); + + void setVelocityChangedField(boolean velocityChanged); + + float getWidthField(); + + void setWidthField(float width); + + net.minecraft.world.World getWorldObjField(); + + void setWorldObjField(net.minecraft.world.World worldObj); + + int getXpCooldownField(); + + void setXpCooldownField(int xpCooldown); + + float getYOffsetField(); + + void setYOffsetField(float yOffset); + + float getYSizeField(); + + void setYSizeField(float ySize); + +} diff --git a/src/Java/api/player/client/IClientPlayerAPI.java b/src/Java/api/player/client/IClientPlayerAPI.java new file mode 100644 index 0000000000..5c2235ae6e --- /dev/null +++ b/src/Java/api/player/client/IClientPlayerAPI.java @@ -0,0 +1,26 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.client; + +public interface IClientPlayerAPI extends IClientPlayer +{ + ClientPlayerAPI getClientPlayerAPI(); + + net.minecraft.client.entity.EntityPlayerSP getEntityPlayerSP(); +} diff --git a/src/Java/api/player/forge/PlayerAPIContainer.java b/src/Java/api/player/forge/PlayerAPIContainer.java new file mode 100644 index 0000000000..8241ea4c18 --- /dev/null +++ b/src/Java/api/player/forge/PlayerAPIContainer.java @@ -0,0 +1,50 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.forge; + +import java.util.*; +import com.google.common.eventbus.*; +import cpw.mods.fml.common.*; + +public class PlayerAPIContainer extends DummyModContainer +{ + public PlayerAPIContainer() + { + super(createMetadata()); + } + + public boolean registerBus(EventBus bus, LoadController controller) + { + return true; + } + + private static ModMetadata createMetadata() + { + ModMetadata meta = new ModMetadata(); + + meta.modId = "PlayerAPI"; + meta.name = "Player API"; + meta.version = PlayerAPIPlugin.Version; + meta.description = "Player API for Minecraft Forge"; + meta.url = "http://www.minecraftforum.net/topic/738498-"; + meta.authorList = Arrays.asList(new String[] { "Divisor" }); + + return meta; + } +} \ No newline at end of file diff --git a/src/Java/api/player/forge/PlayerAPIPlugin.java b/src/Java/api/player/forge/PlayerAPIPlugin.java new file mode 100644 index 0000000000..bab6e05a37 --- /dev/null +++ b/src/Java/api/player/forge/PlayerAPIPlugin.java @@ -0,0 +1,57 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.forge; + +import java.util.*; + +import cpw.mods.fml.relauncher.*; + +@IFMLLoadingPlugin.MCVersion("1.7.10") +@IFMLLoadingPlugin.TransformerExclusions("api.player.forge") +public class PlayerAPIPlugin implements IFMLLoadingPlugin +{ + public static String Version = "1.4"; + + public static boolean isObfuscated; + + public String[] getASMTransformerClass() + { + return new String[] { "api.player.forge.PlayerAPITransformer" }; + } + + public String getModContainerClass() + { + return "api.player.forge.PlayerAPIContainer"; + } + + public String getSetupClass() + { + return null; + } + + public void injectData(Map data) + { + isObfuscated = (Boolean)data.get("runtimeDeobfuscationEnabled"); + } + + public String getAccessTransformerClass() + { + return null; + } +} diff --git a/src/Java/api/player/forge/PlayerAPITransformer.java b/src/Java/api/player/forge/PlayerAPITransformer.java new file mode 100644 index 0000000000..71173474d0 --- /dev/null +++ b/src/Java/api/player/forge/PlayerAPITransformer.java @@ -0,0 +1,37 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.forge; + +import net.minecraft.launchwrapper.*; + +import api.player.client.*; +import api.player.server.*; + +public class PlayerAPITransformer implements IClassTransformer +{ + public byte[] transform(String name, String transformedName, byte[] bytes) + { + if(transformedName.equals(ClientPlayerClassVisitor.targetClassName)) + return ClientPlayerClassVisitor.transform(bytes, PlayerAPIPlugin.isObfuscated); + else if(transformedName.equals(ServerPlayerClassVisitor.targetClassName)) + return ServerPlayerClassVisitor.transform(bytes, PlayerAPIPlugin.isObfuscated); + else + return bytes; + } +} \ No newline at end of file diff --git a/src/Java/api/player/server/IServerPlayer.java b/src/Java/api/player/server/IServerPlayer.java new file mode 100644 index 0000000000..0e8a5e6dc5 --- /dev/null +++ b/src/Java/api/player/server/IServerPlayer.java @@ -0,0 +1,983 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.server; + +public interface IServerPlayer +{ + ServerPlayerBase getServerPlayerBase(String baseId); + + java.util.Set getServerPlayerBaseIds(); + + Object dynamic(String key, Object[] parameters); + + void realAddExhaustion(float paramFloat); + + void superAddExhaustion(float paramFloat); + + void localAddExhaustion(float paramFloat); + + void realAddExperience(int paramInt); + + void superAddExperience(int paramInt); + + void localAddExperience(int paramInt); + + void realAddExperienceLevel(int paramInt); + + void superAddExperienceLevel(int paramInt); + + void localAddExperienceLevel(int paramInt); + + void realAddMovementStat(double paramDouble1, double paramDouble2, double paramDouble3); + + void superAddMovementStat(double paramDouble1, double paramDouble2, double paramDouble3); + + void localAddMovementStat(double paramDouble1, double paramDouble2, double paramDouble3); + + boolean realAttackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat); + + boolean superAttackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat); + + boolean localAttackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat); + + void realAttackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity); + + void superAttackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity); + + void localAttackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity); + + boolean realCanBreatheUnderwater(); + + boolean superCanBreatheUnderwater(); + + boolean localCanBreatheUnderwater(); + + boolean realCanHarvestBlock(net.minecraft.block.Block paramBlock); + + boolean superCanHarvestBlock(net.minecraft.block.Block paramBlock); + + boolean localCanHarvestBlock(net.minecraft.block.Block paramBlock); + + boolean realCanPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack); + + boolean superCanPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack); + + boolean localCanPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack); + + boolean realCanTriggerWalking(); + + boolean superCanTriggerWalking(); + + boolean localCanTriggerWalking(); + + void realClonePlayer(net.minecraft.entity.player.EntityPlayer paramEntityPlayer, boolean paramBoolean); + + void superClonePlayer(net.minecraft.entity.player.EntityPlayer paramEntityPlayer, boolean paramBoolean); + + void localClonePlayer(net.minecraft.entity.player.EntityPlayer paramEntityPlayer, boolean paramBoolean); + + void realDamageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat); + + void superDamageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat); + + void localDamageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat); + + void realDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory); + + void superDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory); + + void localDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory); + + void realDisplayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser); + + void superDisplayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser); + + void localDisplayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser); + + void realDisplayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace); + + void superDisplayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace); + + void localDisplayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace); + + void realDisplayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3); + + void superDisplayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3); + + void localDisplayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3); + + net.minecraft.entity.item.EntityItem realDropOneItem(boolean paramBoolean); + + net.minecraft.entity.item.EntityItem superDropOneItem(boolean paramBoolean); + + net.minecraft.entity.item.EntityItem localDropOneItem(boolean paramBoolean); + + net.minecraft.entity.item.EntityItem realDropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean); + + net.minecraft.entity.item.EntityItem superDropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean); + + net.minecraft.entity.item.EntityItem localDropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean); + + void realFall(float paramFloat); + + void superFall(float paramFloat); + + void localFall(float paramFloat); + + float realGetAIMoveSpeed(); + + float superGetAIMoveSpeed(); + + float localGetAIMoveSpeed(); + + float realGetCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean); + + float superGetCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean); + + float localGetCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean); + + float realGetCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt); + + float superGetCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt); + + float localGetCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt); + + double realGetDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3); + + double superGetDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3); + + double localGetDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3); + + float realGetBrightness(float paramFloat); + + float superGetBrightness(float paramFloat); + + float localGetBrightness(float paramFloat); + + float realGetEyeHeight(); + + float superGetEyeHeight(); + + float localGetEyeHeight(); + + void realHeal(float paramFloat); + + void superHeal(float paramFloat); + + void localHeal(float paramFloat); + + boolean realIsEntityInsideOpaqueBlock(); + + boolean superIsEntityInsideOpaqueBlock(); + + boolean localIsEntityInsideOpaqueBlock(); + + boolean realIsInWater(); + + boolean superIsInWater(); + + boolean localIsInWater(); + + boolean realIsInsideOfMaterial(net.minecraft.block.material.Material paramMaterial); + + boolean superIsInsideOfMaterial(net.minecraft.block.material.Material paramMaterial); + + boolean localIsInsideOfMaterial(net.minecraft.block.material.Material paramMaterial); + + boolean realIsOnLadder(); + + boolean superIsOnLadder(); + + boolean localIsOnLadder(); + + boolean realIsPlayerSleeping(); + + boolean superIsPlayerSleeping(); + + boolean localIsPlayerSleeping(); + + boolean realIsSneaking(); + + boolean superIsSneaking(); + + boolean localIsSneaking(); + + void realJump(); + + void superJump(); + + void localJump(); + + void realKnockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2); + + void superKnockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2); + + void localKnockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2); + + void realMountEntity(net.minecraft.entity.Entity paramEntity); + + void superMountEntity(net.minecraft.entity.Entity paramEntity); + + void localMountEntity(net.minecraft.entity.Entity paramEntity); + + void realMoveEntity(double paramDouble1, double paramDouble2, double paramDouble3); + + void superMoveEntity(double paramDouble1, double paramDouble2, double paramDouble3); + + void localMoveEntity(double paramDouble1, double paramDouble2, double paramDouble3); + + void realMoveEntityWithHeading(float paramFloat1, float paramFloat2); + + void superMoveEntityWithHeading(float paramFloat1, float paramFloat2); + + void localMoveEntityWithHeading(float paramFloat1, float paramFloat2); + + void realMoveFlying(float paramFloat1, float paramFloat2, float paramFloat3); + + void superMoveFlying(float paramFloat1, float paramFloat2, float paramFloat3); + + void localMoveFlying(float paramFloat1, float paramFloat2, float paramFloat3); + + void realOnDeath(net.minecraft.util.DamageSource paramDamageSource); + + void superOnDeath(net.minecraft.util.DamageSource paramDamageSource); + + void localOnDeath(net.minecraft.util.DamageSource paramDamageSource); + + void realOnLivingUpdate(); + + void superOnLivingUpdate(); + + void localOnLivingUpdate(); + + void realOnKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase); + + void superOnKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase); + + void localOnKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase); + + void realOnStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt); + + void superOnStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt); + + void localOnStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt); + + void realOnUpdate(); + + void superOnUpdate(); + + void localOnUpdate(); + + void realOnUpdateEntity(); + + void localOnUpdateEntity(); + + void realReadEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound); + + void superReadEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound); + + void localReadEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound); + + void realSetDead(); + + void superSetDead(); + + void localSetDead(); + + void realSetEntityActionState(float paramFloat1, float paramFloat2, boolean paramBoolean1, boolean paramBoolean2); + + void localSetEntityActionState(float paramFloat1, float paramFloat2, boolean paramBoolean1, boolean paramBoolean2); + + void realSetPosition(double paramDouble1, double paramDouble2, double paramDouble3); + + void superSetPosition(double paramDouble1, double paramDouble2, double paramDouble3); + + void localSetPosition(double paramDouble1, double paramDouble2, double paramDouble3); + + void realSetSneaking(boolean paramBoolean); + + void superSetSneaking(boolean paramBoolean); + + void localSetSneaking(boolean paramBoolean); + + void realSetSprinting(boolean paramBoolean); + + void superSetSprinting(boolean paramBoolean); + + void localSetSprinting(boolean paramBoolean); + + void realSwingItem(); + + void superSwingItem(); + + void localSwingItem(); + + void realUpdateEntityActionState(); + + void superUpdateEntityActionState(); + + void localUpdateEntityActionState(); + + void realUpdatePotionEffects(); + + void superUpdatePotionEffects(); + + void localUpdatePotionEffects(); + + void realUpdateRidden(); + + void superUpdateRidden(); + + void localUpdateRidden(); + + void realWakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3); + + void superWakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3); + + void localWakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3); + + void realWriteEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound); + + void superWriteEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound); + + void localWriteEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound); + + boolean getAddedToChunkField(); + + void setAddedToChunkField(boolean addedToChunk); + + int getArrowHitTimerField(); + + void setArrowHitTimerField(int arrowHitTimer); + + int getAttackTimeField(); + + void setAttackTimeField(int attackTime); + + float getAttackedAtYawField(); + + void setAttackedAtYawField(float attackedAtYaw); + + net.minecraft.entity.player.EntityPlayer getAttackingPlayerField(); + + void setAttackingPlayerField(net.minecraft.entity.player.EntityPlayer attackingPlayer); + + net.minecraft.util.AxisAlignedBB getBoundingBoxField(); + + float getCameraPitchField(); + + void setCameraPitchField(float cameraPitch); + + float getCameraYawField(); + + void setCameraYawField(float cameraYaw); + + net.minecraft.entity.player.PlayerCapabilities getCapabilitiesField(); + + void setCapabilitiesField(net.minecraft.entity.player.PlayerCapabilities capabilities); + + boolean getChatColoursField(); + + void setChatColoursField(boolean chatColours); + + net.minecraft.entity.player.EntityPlayer.EnumChatVisibility getChatVisibilityField(); + + void setChatVisibilityField(net.minecraft.entity.player.EntityPlayer.EnumChatVisibility chatVisibility); + + int getChunkCoordXField(); + + void setChunkCoordXField(int chunkCoordX); + + int getChunkCoordYField(); + + void setChunkCoordYField(int chunkCoordY); + + int getChunkCoordZField(); + + void setChunkCoordZField(int chunkCoordZ); + + int getCurrentWindowIdField(); + + void setCurrentWindowIdField(int currentWindowId); + + net.minecraft.entity.DataWatcher getDataWatcherField(); + + void setDataWatcherField(net.minecraft.entity.DataWatcher dataWatcher); + + boolean getDeadField(); + + void setDeadField(boolean dead); + + int getDeathTimeField(); + + void setDeathTimeField(int deathTime); + + java.util.List getDestroyedItemsNetCacheField(); + + int getDimensionField(); + + void setDimensionField(int dimension); + + float getDistanceWalkedModifiedField(); + + void setDistanceWalkedModifiedField(float distanceWalkedModified); + + float getDistanceWalkedOnStepModifiedField(); + + void setDistanceWalkedOnStepModifiedField(float distanceWalkedOnStepModified); + + int getEntityAgeField(); + + void setEntityAgeField(int entityAge); + + float getEntityCollisionReductionField(); + + void setEntityCollisionReductionField(float entityCollisionReduction); + + java.util.UUID getEntityUniqueIDField(); + + void setEntityUniqueIDField(java.util.UUID entityUniqueID); + + float getExperienceField(); + + void setExperienceField(float experience); + + int getExperienceLevelField(); + + void setExperienceLevelField(int experienceLevel); + + int getExperienceTotalField(); + + void setExperienceTotalField(int experienceTotal); + + float getFallDistanceField(); + + void setFallDistanceField(float fallDistance); + + float getField_110154_aXField(); + + void setField_110154_aXField(float field_110154_aX); + + float getField_130068_bOField(); + + void setField_130068_bOField(float field_130068_bO); + + long getField_143005_bXField(); + + void setField_143005_bXField(long field_143005_bX); + + int getField_147101_bUField(); + + void setField_147101_bUField(int field_147101_bU); + + net.minecraft.stats.StatisticsFile getField_147103_bOField(); + + boolean getField_70135_KField(); + + void setField_70135_KField(boolean field_70135_K); + + float getField_70741_aBField(); + + void setField_70741_aBField(float field_70741_aB); + + float getField_70763_axField(); + + void setField_70763_axField(float field_70763_ax); + + float getField_70764_awField(); + + void setField_70764_awField(float field_70764_aw); + + float getField_70768_auField(); + + void setField_70768_auField(float field_70768_au); + + float getField_70769_aoField(); + + void setField_70769_aoField(float field_70769_ao); + + float getField_70770_apField(); + + void setField_70770_apField(float field_70770_ap); + + float getField_71079_bUField(); + + void setField_71079_bUField(float field_71079_bU); + + float getField_71082_cxField(); + + void setField_71082_cxField(float field_71082_cx); + + double getField_71085_bRField(); + + void setField_71085_bRField(double field_71085_bR); + + float getField_71089_bVField(); + + void setField_71089_bVField(float field_71089_bV); + + double getField_71091_bMField(); + + void setField_71091_bMField(double field_71091_bM); + + double getField_71094_bPField(); + + void setField_71094_bPField(double field_71094_bP); + + double getField_71095_bQField(); + + void setField_71095_bQField(double field_71095_bQ); + + double getField_71096_bNField(); + + void setField_71096_bNField(double field_71096_bN); + + double getField_71097_bOField(); + + void setField_71097_bOField(double field_71097_bO); + + int getFireResistanceField(); + + void setFireResistanceField(int fireResistance); + + net.minecraft.entity.projectile.EntityFishHook getFishEntityField(); + + void setFishEntityField(net.minecraft.entity.projectile.EntityFishHook fishEntity); + + int getFlyToggleTimerField(); + + void setFlyToggleTimerField(int flyToggleTimer); + + net.minecraft.util.FoodStats getFoodStatsField(); + + void setFoodStatsField(net.minecraft.util.FoodStats foodStats); + + boolean getForceSpawnField(); + + void setForceSpawnField(boolean forceSpawn); + + float getHeightField(); + + void setHeightField(float height); + + int getHurtResistantTimeField(); + + void setHurtResistantTimeField(int hurtResistantTime); + + int getHurtTimeField(); + + void setHurtTimeField(int hurtTime); + + boolean getIgnoreFrustumCheckField(); + + void setIgnoreFrustumCheckField(boolean ignoreFrustumCheck); + + boolean getInPortalField(); + + void setInPortalField(boolean inPortal); + + boolean getInWaterField(); + + void setInWaterField(boolean inWater); + + net.minecraft.entity.player.InventoryPlayer getInventoryField(); + + void setInventoryField(net.minecraft.entity.player.InventoryPlayer inventory); + + net.minecraft.inventory.Container getInventoryContainerField(); + + void setInventoryContainerField(net.minecraft.inventory.Container inventoryContainer); + + boolean getIsAirBorneField(); + + void setIsAirBorneField(boolean isAirBorne); + + boolean getIsChangingQuantityOnlyField(); + + void setIsChangingQuantityOnlyField(boolean isChangingQuantityOnly); + + boolean getIsCollidedField(); + + void setIsCollidedField(boolean isCollided); + + boolean getIsCollidedHorizontallyField(); + + void setIsCollidedHorizontallyField(boolean isCollidedHorizontally); + + boolean getIsCollidedVerticallyField(); + + void setIsCollidedVerticallyField(boolean isCollidedVertically); + + boolean getIsDeadField(); + + void setIsDeadField(boolean isDead); + + boolean getIsImmuneToFireField(); + + void setIsImmuneToFireField(boolean isImmuneToFire); + + boolean getIsInWebField(); + + void setIsInWebField(boolean isInWeb); + + boolean getIsJumpingField(); + + void setIsJumpingField(boolean isJumping); + + boolean getIsSwingInProgressField(); + + void setIsSwingInProgressField(boolean isSwingInProgress); + + float getJumpMovementFactorField(); + + void setJumpMovementFactorField(float jumpMovementFactor); + + float getLastDamageField(); + + void setLastDamageField(float lastDamage); + + int getLastExperienceField(); + + void setLastExperienceField(int lastExperience); + + int getLastFoodLevelField(); + + void setLastFoodLevelField(int lastFoodLevel); + + float getLastHealthField(); + + void setLastHealthField(float lastHealth); + + double getLastTickPosXField(); + + void setLastTickPosXField(double lastTickPosX); + + double getLastTickPosYField(); + + void setLastTickPosYField(double lastTickPosY); + + double getLastTickPosZField(); + + void setLastTickPosZField(double lastTickPosZ); + + float getLimbSwingField(); + + void setLimbSwingField(float limbSwing); + + float getLimbSwingAmountField(); + + void setLimbSwingAmountField(float limbSwingAmount); + + java.util.List getLoadedChunksField(); + + org.apache.logging.log4j.Logger getLoggerField(); + + double getManagedPosXField(); + + void setManagedPosXField(double managedPosX); + + double getManagedPosZField(); + + void setManagedPosZField(double managedPosZ); + + int getMaxHurtResistantTimeField(); + + void setMaxHurtResistantTimeField(int maxHurtResistantTime); + + int getMaxHurtTimeField(); + + void setMaxHurtTimeField(int maxHurtTime); + + net.minecraft.server.MinecraftServer getMcServerField(); + + double getMotionXField(); + + void setMotionXField(double motionX); + + double getMotionYField(); + + void setMotionYField(double motionY); + + double getMotionZField(); + + void setMotionZField(double motionZ); + + float getMoveForwardField(); + + void setMoveForwardField(float moveForward); + + float getMoveStrafingField(); + + void setMoveStrafingField(float moveStrafing); + + net.minecraft.entity.Entity.EnumEntitySize getMyEntitySizeField(); + + void setMyEntitySizeField(net.minecraft.entity.Entity.EnumEntitySize myEntitySize); + + int getNewPosRotationIncrementsField(); + + void setNewPosRotationIncrementsField(int newPosRotationIncrements); + + double getNewPosXField(); + + void setNewPosXField(double newPosX); + + double getNewPosYField(); + + void setNewPosYField(double newPosY); + + double getNewPosZField(); + + void setNewPosZField(double newPosZ); + + double getNewRotationPitchField(); + + void setNewRotationPitchField(double newRotationPitch); + + double getNewRotationYawField(); + + void setNewRotationYawField(double newRotationYaw); + + boolean getNoClipField(); + + void setNoClipField(boolean noClip); + + boolean getOnGroundField(); + + void setOnGroundField(boolean onGround); + + net.minecraft.inventory.Container getOpenContainerField(); + + void setOpenContainerField(net.minecraft.inventory.Container openContainer); + + int getPingField(); + + void setPingField(int ping); + + boolean getPlayerConqueredTheEndField(); + + void setPlayerConqueredTheEndField(boolean playerConqueredTheEnd); + + net.minecraft.util.ChunkCoordinates getPlayerLocationField(); + + void setPlayerLocationField(net.minecraft.util.ChunkCoordinates playerLocation); + + net.minecraft.network.NetHandlerPlayServer getPlayerNetServerHandlerField(); + + void setPlayerNetServerHandlerField(net.minecraft.network.NetHandlerPlayServer playerNetServerHandler); + + int getPortalCounterField(); + + void setPortalCounterField(int portalCounter); + + double getPosXField(); + + void setPosXField(double posX); + + double getPosYField(); + + void setPosYField(double posY); + + double getPosZField(); + + void setPosZField(double posZ); + + float getPrevCameraPitchField(); + + void setPrevCameraPitchField(float prevCameraPitch); + + float getPrevCameraYawField(); + + void setPrevCameraYawField(float prevCameraYaw); + + float getPrevDistanceWalkedModifiedField(); + + void setPrevDistanceWalkedModifiedField(float prevDistanceWalkedModified); + + float getPrevHealthField(); + + void setPrevHealthField(float prevHealth); + + float getPrevLimbSwingAmountField(); + + void setPrevLimbSwingAmountField(float prevLimbSwingAmount); + + double getPrevPosXField(); + + void setPrevPosXField(double prevPosX); + + double getPrevPosYField(); + + void setPrevPosYField(double prevPosY); + + double getPrevPosZField(); + + void setPrevPosZField(double prevPosZ); + + float getPrevRenderYawOffsetField(); + + void setPrevRenderYawOffsetField(float prevRenderYawOffset); + + float getPrevRotationPitchField(); + + void setPrevRotationPitchField(float prevRotationPitch); + + float getPrevRotationYawField(); + + void setPrevRotationYawField(float prevRotationYaw); + + float getPrevRotationYawHeadField(); + + void setPrevRotationYawHeadField(float prevRotationYawHead); + + float getPrevSwingProgressField(); + + void setPrevSwingProgressField(float prevSwingProgress); + + boolean getPreventEntitySpawningField(); + + void setPreventEntitySpawningField(boolean preventEntitySpawning); + + java.util.Random getRandField(); + + void setRandField(java.util.Random rand); + + float getRandomYawVelocityField(); + + void setRandomYawVelocityField(float randomYawVelocity); + + int getRecentlyHitField(); + + void setRecentlyHitField(int recentlyHit); + + double getRenderDistanceWeightField(); + + void setRenderDistanceWeightField(double renderDistanceWeight); + + float getRenderYawOffsetField(); + + void setRenderYawOffsetField(float renderYawOffset); + + net.minecraft.entity.Entity getRiddenByEntityField(); + + void setRiddenByEntityField(net.minecraft.entity.Entity riddenByEntity); + + net.minecraft.entity.Entity getRidingEntityField(); + + void setRidingEntityField(net.minecraft.entity.Entity ridingEntity); + + float getRotationPitchField(); + + void setRotationPitchField(float rotationPitch); + + float getRotationYawField(); + + void setRotationYawField(float rotationYaw); + + float getRotationYawHeadField(); + + void setRotationYawHeadField(float rotationYawHead); + + int getScoreValueField(); + + void setScoreValueField(int scoreValue); + + int getServerPosXField(); + + void setServerPosXField(int serverPosX); + + int getServerPosYField(); + + void setServerPosYField(int serverPosY); + + int getServerPosZField(); + + void setServerPosZField(int serverPosZ); + + boolean getSleepingField(); + + void setSleepingField(boolean sleeping); + + float getSpeedInAirField(); + + void setSpeedInAirField(float speedInAir); + + float getSpeedOnGroundField(); + + void setSpeedOnGroundField(float speedOnGround); + + float getStepHeightField(); + + void setStepHeightField(float stepHeight); + + float getSwingProgressField(); + + void setSwingProgressField(float swingProgress); + + int getSwingProgressIntField(); + + void setSwingProgressIntField(int swingProgressInt); + + int getTeleportDirectionField(); + + void setTeleportDirectionField(int teleportDirection); + + net.minecraft.server.management.ItemInWorldManager getTheItemInWorldManagerField(); + + int getTicksExistedField(); + + void setTicksExistedField(int ticksExisted); + + int getTimeUntilPortalField(); + + void setTimeUntilPortalField(int timeUntilPortal); + + java.lang.String getTranslatorField(); + + void setTranslatorField(java.lang.String translator); + + boolean getVelocityChangedField(); + + void setVelocityChangedField(boolean velocityChanged); + + boolean getWasHungryField(); + + void setWasHungryField(boolean wasHungry); + + float getWidthField(); + + void setWidthField(float width); + + net.minecraft.world.World getWorldObjField(); + + void setWorldObjField(net.minecraft.world.World worldObj); + + int getXpCooldownField(); + + void setXpCooldownField(int xpCooldown); + + float getYOffsetField(); + + void setYOffsetField(float yOffset); + + float getYSizeField(); + + void setYSizeField(float ySize); + +} diff --git a/src/Java/api/player/server/IServerPlayerAPI.java b/src/Java/api/player/server/IServerPlayerAPI.java new file mode 100644 index 0000000000..29a4cf6a49 --- /dev/null +++ b/src/Java/api/player/server/IServerPlayerAPI.java @@ -0,0 +1,26 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.server; + +public interface IServerPlayerAPI extends IServerPlayer +{ + ServerPlayerAPI getServerPlayerAPI(); + + net.minecraft.entity.player.EntityPlayerMP getEntityPlayerMP(); +} diff --git a/src/Java/api/player/server/ServerPlayerAPI.java b/src/Java/api/player/server/ServerPlayerAPI.java new file mode 100644 index 0000000000..381c607a1e --- /dev/null +++ b/src/Java/api/player/server/ServerPlayerAPI.java @@ -0,0 +1,6017 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.server; + +import java.io.*; +import java.text.*; +import java.util.*; +import java.util.logging.*; +import java.lang.reflect.*; + +public final class ServerPlayerAPI +{ + private final static Class[] Class = new Class[] { ServerPlayerAPI.class }; + private final static Class[] Classes = new Class[] { ServerPlayerAPI.class, String.class }; + + private static boolean isCreated; + private static final Logger logger = Logger.getLogger("ServerPlayerAPI"); + + 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, ServerPlayerBaseSorting baseSorting) + { + try + { + register(baseClass, id, baseSorting); + } + catch(RuntimeException exception) + { + if(id != null) + log("Server Player: failed to register id '" + id + "'"); + else + log("Server Player: failed to register ServerPlayerBase"); + + throw exception; + } + } + + private static void register(Class baseClass, String id, ServerPlayerBaseSorting baseSorting) + { + if(!isCreated) + { + try + { + Method mandatory = net.minecraft.entity.player.EntityPlayerMP.class.getMethod("getServerPlayerBase", String.class); + if (mandatory.getReturnType() != ServerPlayerBase.class) + throw new NoSuchMethodException(ServerPlayerBase.class.getName() + " " + net.minecraft.entity.player.EntityPlayerMP.class.getName() + ".getServerPlayerBase(" + String.class.getName() + ")"); + } + catch(NoSuchMethodException exception) + { + String[] errorMessageParts = new String[] + { + "========================================", + "The API \"Server 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} getServerPlayerBase({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 baseEntityPlayerMPClassName = ServerPlayerBase.class.getName(); + String targetClassName = net.minecraft.entity.player.EntityPlayerMP.class.getName(); + String targetClassFileName = targetClassName.replace(".", File.separator); + String stringClassName = String.class.getName(); + + for(int i=0; i 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 '" + ServerPlayerAPI.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, allBaseBeforeAddExperienceSuperiors, baseSorting.getBeforeAddExperienceSuperiors()); + addSorting(id, allBaseBeforeAddExperienceInferiors, baseSorting.getBeforeAddExperienceInferiors()); + addSorting(id, allBaseOverrideAddExperienceSuperiors, baseSorting.getOverrideAddExperienceSuperiors()); + addSorting(id, allBaseOverrideAddExperienceInferiors, baseSorting.getOverrideAddExperienceInferiors()); + addSorting(id, allBaseAfterAddExperienceSuperiors, baseSorting.getAfterAddExperienceSuperiors()); + addSorting(id, allBaseAfterAddExperienceInferiors, baseSorting.getAfterAddExperienceInferiors()); + + addSorting(id, allBaseBeforeAddExperienceLevelSuperiors, baseSorting.getBeforeAddExperienceLevelSuperiors()); + addSorting(id, allBaseBeforeAddExperienceLevelInferiors, baseSorting.getBeforeAddExperienceLevelInferiors()); + addSorting(id, allBaseOverrideAddExperienceLevelSuperiors, baseSorting.getOverrideAddExperienceLevelSuperiors()); + addSorting(id, allBaseOverrideAddExperienceLevelInferiors, baseSorting.getOverrideAddExperienceLevelInferiors()); + addSorting(id, allBaseAfterAddExperienceLevelSuperiors, baseSorting.getAfterAddExperienceLevelSuperiors()); + addSorting(id, allBaseAfterAddExperienceLevelInferiors, baseSorting.getAfterAddExperienceLevelInferiors()); + + 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, 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, allBaseBeforeClonePlayerSuperiors, baseSorting.getBeforeClonePlayerSuperiors()); + addSorting(id, allBaseBeforeClonePlayerInferiors, baseSorting.getBeforeClonePlayerInferiors()); + addSorting(id, allBaseOverrideClonePlayerSuperiors, baseSorting.getOverrideClonePlayerSuperiors()); + addSorting(id, allBaseOverrideClonePlayerInferiors, baseSorting.getOverrideClonePlayerInferiors()); + addSorting(id, allBaseAfterClonePlayerSuperiors, baseSorting.getAfterClonePlayerSuperiors()); + addSorting(id, allBaseAfterClonePlayerInferiors, baseSorting.getAfterClonePlayerInferiors()); + + 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, 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, allBaseBeforeDisplayGUIDispenserSuperiors, baseSorting.getBeforeDisplayGUIDispenserSuperiors()); + addSorting(id, allBaseBeforeDisplayGUIDispenserInferiors, baseSorting.getBeforeDisplayGUIDispenserInferiors()); + addSorting(id, allBaseOverrideDisplayGUIDispenserSuperiors, baseSorting.getOverrideDisplayGUIDispenserSuperiors()); + addSorting(id, allBaseOverrideDisplayGUIDispenserInferiors, baseSorting.getOverrideDisplayGUIDispenserInferiors()); + addSorting(id, allBaseAfterDisplayGUIDispenserSuperiors, baseSorting.getAfterDisplayGUIDispenserSuperiors()); + addSorting(id, allBaseAfterDisplayGUIDispenserInferiors, baseSorting.getAfterDisplayGUIDispenserInferiors()); + + addSorting(id, allBaseBeforeDisplayGUIFurnaceSuperiors, baseSorting.getBeforeDisplayGUIFurnaceSuperiors()); + addSorting(id, allBaseBeforeDisplayGUIFurnaceInferiors, baseSorting.getBeforeDisplayGUIFurnaceInferiors()); + addSorting(id, allBaseOverrideDisplayGUIFurnaceSuperiors, baseSorting.getOverrideDisplayGUIFurnaceSuperiors()); + addSorting(id, allBaseOverrideDisplayGUIFurnaceInferiors, baseSorting.getOverrideDisplayGUIFurnaceInferiors()); + addSorting(id, allBaseAfterDisplayGUIFurnaceSuperiors, baseSorting.getAfterDisplayGUIFurnaceSuperiors()); + addSorting(id, allBaseAfterDisplayGUIFurnaceInferiors, baseSorting.getAfterDisplayGUIFurnaceInferiors()); + + addSorting(id, allBaseBeforeDisplayGUIWorkbenchSuperiors, baseSorting.getBeforeDisplayGUIWorkbenchSuperiors()); + addSorting(id, allBaseBeforeDisplayGUIWorkbenchInferiors, baseSorting.getBeforeDisplayGUIWorkbenchInferiors()); + addSorting(id, allBaseOverrideDisplayGUIWorkbenchSuperiors, baseSorting.getOverrideDisplayGUIWorkbenchSuperiors()); + addSorting(id, allBaseOverrideDisplayGUIWorkbenchInferiors, baseSorting.getOverrideDisplayGUIWorkbenchInferiors()); + addSorting(id, allBaseAfterDisplayGUIWorkbenchSuperiors, baseSorting.getAfterDisplayGUIWorkbenchSuperiors()); + addSorting(id, allBaseAfterDisplayGUIWorkbenchInferiors, baseSorting.getAfterDisplayGUIWorkbenchInferiors()); + + 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, allBaseBeforeDropPlayerItemSuperiors, baseSorting.getBeforeDropPlayerItemSuperiors()); + addSorting(id, allBaseBeforeDropPlayerItemInferiors, baseSorting.getBeforeDropPlayerItemInferiors()); + addSorting(id, allBaseOverrideDropPlayerItemSuperiors, baseSorting.getOverrideDropPlayerItemSuperiors()); + addSorting(id, allBaseOverrideDropPlayerItemInferiors, baseSorting.getOverrideDropPlayerItemInferiors()); + addSorting(id, allBaseAfterDropPlayerItemSuperiors, baseSorting.getAfterDropPlayerItemSuperiors()); + addSorting(id, allBaseAfterDropPlayerItemInferiors, baseSorting.getAfterDropPlayerItemInferiors()); + + 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, allBaseBeforeGetCurrentPlayerStrVsBlockSuperiors, baseSorting.getBeforeGetCurrentPlayerStrVsBlockSuperiors()); + addSorting(id, allBaseBeforeGetCurrentPlayerStrVsBlockInferiors, baseSorting.getBeforeGetCurrentPlayerStrVsBlockInferiors()); + addSorting(id, allBaseOverrideGetCurrentPlayerStrVsBlockSuperiors, baseSorting.getOverrideGetCurrentPlayerStrVsBlockSuperiors()); + addSorting(id, allBaseOverrideGetCurrentPlayerStrVsBlockInferiors, baseSorting.getOverrideGetCurrentPlayerStrVsBlockInferiors()); + addSorting(id, allBaseAfterGetCurrentPlayerStrVsBlockSuperiors, baseSorting.getAfterGetCurrentPlayerStrVsBlockSuperiors()); + addSorting(id, allBaseAfterGetCurrentPlayerStrVsBlockInferiors, baseSorting.getAfterGetCurrentPlayerStrVsBlockInferiors()); + + addSorting(id, allBaseBeforeGetCurrentPlayerStrVsBlockForgeSuperiors, baseSorting.getBeforeGetCurrentPlayerStrVsBlockForgeSuperiors()); + addSorting(id, allBaseBeforeGetCurrentPlayerStrVsBlockForgeInferiors, baseSorting.getBeforeGetCurrentPlayerStrVsBlockForgeInferiors()); + addSorting(id, allBaseOverrideGetCurrentPlayerStrVsBlockForgeSuperiors, baseSorting.getOverrideGetCurrentPlayerStrVsBlockForgeSuperiors()); + addSorting(id, allBaseOverrideGetCurrentPlayerStrVsBlockForgeInferiors, baseSorting.getOverrideGetCurrentPlayerStrVsBlockForgeInferiors()); + addSorting(id, allBaseAfterGetCurrentPlayerStrVsBlockForgeSuperiors, baseSorting.getAfterGetCurrentPlayerStrVsBlockForgeSuperiors()); + addSorting(id, allBaseAfterGetCurrentPlayerStrVsBlockForgeInferiors, baseSorting.getAfterGetCurrentPlayerStrVsBlockForgeInferiors()); + + 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, 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, allBaseBeforeGetEyeHeightSuperiors, baseSorting.getBeforeGetEyeHeightSuperiors()); + addSorting(id, allBaseBeforeGetEyeHeightInferiors, baseSorting.getBeforeGetEyeHeightInferiors()); + addSorting(id, allBaseOverrideGetEyeHeightSuperiors, baseSorting.getOverrideGetEyeHeightSuperiors()); + addSorting(id, allBaseOverrideGetEyeHeightInferiors, baseSorting.getOverrideGetEyeHeightInferiors()); + addSorting(id, allBaseAfterGetEyeHeightSuperiors, baseSorting.getAfterGetEyeHeightSuperiors()); + addSorting(id, allBaseAfterGetEyeHeightInferiors, baseSorting.getAfterGetEyeHeightInferiors()); + + 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, 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, allBaseBeforeMountEntitySuperiors, baseSorting.getBeforeMountEntitySuperiors()); + addSorting(id, allBaseBeforeMountEntityInferiors, baseSorting.getBeforeMountEntityInferiors()); + addSorting(id, allBaseOverrideMountEntitySuperiors, baseSorting.getOverrideMountEntitySuperiors()); + addSorting(id, allBaseOverrideMountEntityInferiors, baseSorting.getOverrideMountEntityInferiors()); + addSorting(id, allBaseAfterMountEntitySuperiors, baseSorting.getAfterMountEntitySuperiors()); + addSorting(id, allBaseAfterMountEntityInferiors, baseSorting.getAfterMountEntityInferiors()); + + 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, allBaseBeforeOnUpdateEntitySuperiors, baseSorting.getBeforeOnUpdateEntitySuperiors()); + addSorting(id, allBaseBeforeOnUpdateEntityInferiors, baseSorting.getBeforeOnUpdateEntityInferiors()); + addSorting(id, allBaseOverrideOnUpdateEntitySuperiors, baseSorting.getOverrideOnUpdateEntitySuperiors()); + addSorting(id, allBaseOverrideOnUpdateEntityInferiors, baseSorting.getOverrideOnUpdateEntityInferiors()); + addSorting(id, allBaseAfterOnUpdateEntitySuperiors, baseSorting.getAfterOnUpdateEntitySuperiors()); + addSorting(id, allBaseAfterOnUpdateEntityInferiors, baseSorting.getAfterOnUpdateEntityInferiors()); + + 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, 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, allBaseBeforeSetEntityActionStateSuperiors, baseSorting.getBeforeSetEntityActionStateSuperiors()); + addSorting(id, allBaseBeforeSetEntityActionStateInferiors, baseSorting.getBeforeSetEntityActionStateInferiors()); + addSorting(id, allBaseOverrideSetEntityActionStateSuperiors, baseSorting.getOverrideSetEntityActionStateSuperiors()); + addSorting(id, allBaseOverrideSetEntityActionStateInferiors, baseSorting.getOverrideSetEntityActionStateInferiors()); + addSorting(id, allBaseAfterSetEntityActionStateSuperiors, baseSorting.getAfterSetEntityActionStateSuperiors()); + addSorting(id, allBaseAfterSetEntityActionStateInferiors, baseSorting.getAfterSetEntityActionStateInferiors()); + + addSorting(id, allBaseBeforeSetPositionSuperiors, baseSorting.getBeforeSetPositionSuperiors()); + addSorting(id, allBaseBeforeSetPositionInferiors, baseSorting.getBeforeSetPositionInferiors()); + addSorting(id, allBaseOverrideSetPositionSuperiors, baseSorting.getOverrideSetPositionSuperiors()); + addSorting(id, allBaseOverrideSetPositionInferiors, baseSorting.getOverrideSetPositionInferiors()); + addSorting(id, allBaseAfterSetPositionSuperiors, baseSorting.getAfterSetPositionSuperiors()); + addSorting(id, allBaseAfterSetPositionInferiors, baseSorting.getAfterSetPositionInferiors()); + + 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, 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, allBaseBeforeUpdatePotionEffectsSuperiors, baseSorting.getBeforeUpdatePotionEffectsSuperiors()); + addSorting(id, allBaseBeforeUpdatePotionEffectsInferiors, baseSorting.getBeforeUpdatePotionEffectsInferiors()); + addSorting(id, allBaseOverrideUpdatePotionEffectsSuperiors, baseSorting.getOverrideUpdatePotionEffectsSuperiors()); + addSorting(id, allBaseOverrideUpdatePotionEffectsInferiors, baseSorting.getOverrideUpdatePotionEffectsInferiors()); + addSorting(id, allBaseAfterUpdatePotionEffectsSuperiors, baseSorting.getAfterUpdatePotionEffectsSuperiors()); + addSorting(id, allBaseAfterUpdatePotionEffectsInferiors, baseSorting.getAfterUpdatePotionEffectsInferiors()); + + 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.server.MinecraftServer.class, net.minecraft.world.WorldServer.class, com.mojang.authlib.GameProfile.class, net.minecraft.server.management.ItemInWorldManager.class); + addMethod(id, baseClass, afterLocalConstructingHookTypes, "afterLocalConstructing", net.minecraft.server.MinecraftServer.class, net.minecraft.world.WorldServer.class, com.mojang.authlib.GameProfile.class, net.minecraft.server.management.ItemInWorldManager.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, beforeAddExperienceHookTypes, "beforeAddExperience", int.class); + addMethod(id, baseClass, overrideAddExperienceHookTypes, "addExperience", int.class); + addMethod(id, baseClass, afterAddExperienceHookTypes, "afterAddExperience", int.class); + + addMethod(id, baseClass, beforeAddExperienceLevelHookTypes, "beforeAddExperienceLevel", int.class); + addMethod(id, baseClass, overrideAddExperienceLevelHookTypes, "addExperienceLevel", int.class); + addMethod(id, baseClass, afterAddExperienceLevelHookTypes, "afterAddExperienceLevel", int.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, 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", int.class, int.class, int.class, int.class, net.minecraft.item.ItemStack.class); + addMethod(id, baseClass, overrideCanPlayerEditHookTypes, "canPlayerEdit", int.class, int.class, int.class, int.class, net.minecraft.item.ItemStack.class); + addMethod(id, baseClass, afterCanPlayerEditHookTypes, "afterCanPlayerEdit", int.class, int.class, int.class, int.class, net.minecraft.item.ItemStack.class); + + addMethod(id, baseClass, beforeCanTriggerWalkingHookTypes, "beforeCanTriggerWalking"); + addMethod(id, baseClass, overrideCanTriggerWalkingHookTypes, "canTriggerWalking"); + addMethod(id, baseClass, afterCanTriggerWalkingHookTypes, "afterCanTriggerWalking"); + + addMethod(id, baseClass, beforeClonePlayerHookTypes, "beforeClonePlayer", net.minecraft.entity.player.EntityPlayer.class, boolean.class); + addMethod(id, baseClass, overrideClonePlayerHookTypes, "clonePlayer", net.minecraft.entity.player.EntityPlayer.class, boolean.class); + addMethod(id, baseClass, afterClonePlayerHookTypes, "afterClonePlayer", net.minecraft.entity.player.EntityPlayer.class, boolean.class); + + 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, 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, beforeDisplayGUIDispenserHookTypes, "beforeDisplayGUIDispenser", net.minecraft.tileentity.TileEntityDispenser.class); + addMethod(id, baseClass, overrideDisplayGUIDispenserHookTypes, "displayGUIDispenser", net.minecraft.tileentity.TileEntityDispenser.class); + addMethod(id, baseClass, afterDisplayGUIDispenserHookTypes, "afterDisplayGUIDispenser", net.minecraft.tileentity.TileEntityDispenser.class); + + addMethod(id, baseClass, beforeDisplayGUIFurnaceHookTypes, "beforeDisplayGUIFurnace", net.minecraft.tileentity.TileEntityFurnace.class); + addMethod(id, baseClass, overrideDisplayGUIFurnaceHookTypes, "displayGUIFurnace", net.minecraft.tileentity.TileEntityFurnace.class); + addMethod(id, baseClass, afterDisplayGUIFurnaceHookTypes, "afterDisplayGUIFurnace", net.minecraft.tileentity.TileEntityFurnace.class); + + addMethod(id, baseClass, beforeDisplayGUIWorkbenchHookTypes, "beforeDisplayGUIWorkbench", int.class, int.class, int.class); + addMethod(id, baseClass, overrideDisplayGUIWorkbenchHookTypes, "displayGUIWorkbench", int.class, int.class, int.class); + addMethod(id, baseClass, afterDisplayGUIWorkbenchHookTypes, "afterDisplayGUIWorkbench", int.class, int.class, int.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, beforeDropPlayerItemHookTypes, "beforeDropPlayerItem", net.minecraft.item.ItemStack.class, boolean.class); + addMethod(id, baseClass, overrideDropPlayerItemHookTypes, "dropPlayerItem", net.minecraft.item.ItemStack.class, boolean.class); + addMethod(id, baseClass, afterDropPlayerItemHookTypes, "afterDropPlayerItem", net.minecraft.item.ItemStack.class, boolean.class); + + addMethod(id, baseClass, beforeFallHookTypes, "beforeFall", float.class); + addMethod(id, baseClass, overrideFallHookTypes, "fall", float.class); + addMethod(id, baseClass, afterFallHookTypes, "afterFall", float.class); + + addMethod(id, baseClass, beforeGetAIMoveSpeedHookTypes, "beforeGetAIMoveSpeed"); + addMethod(id, baseClass, overrideGetAIMoveSpeedHookTypes, "getAIMoveSpeed"); + addMethod(id, baseClass, afterGetAIMoveSpeedHookTypes, "afterGetAIMoveSpeed"); + + addMethod(id, baseClass, beforeGetCurrentPlayerStrVsBlockHookTypes, "beforeGetCurrentPlayerStrVsBlock", net.minecraft.block.Block.class, boolean.class); + addMethod(id, baseClass, overrideGetCurrentPlayerStrVsBlockHookTypes, "getCurrentPlayerStrVsBlock", net.minecraft.block.Block.class, boolean.class); + addMethod(id, baseClass, afterGetCurrentPlayerStrVsBlockHookTypes, "afterGetCurrentPlayerStrVsBlock", net.minecraft.block.Block.class, boolean.class); + + addMethod(id, baseClass, beforeGetCurrentPlayerStrVsBlockForgeHookTypes, "beforeGetCurrentPlayerStrVsBlockForge", net.minecraft.block.Block.class, boolean.class, int.class); + addMethod(id, baseClass, overrideGetCurrentPlayerStrVsBlockForgeHookTypes, "getCurrentPlayerStrVsBlockForge", net.minecraft.block.Block.class, boolean.class, int.class); + addMethod(id, baseClass, afterGetCurrentPlayerStrVsBlockForgeHookTypes, "afterGetCurrentPlayerStrVsBlockForge", net.minecraft.block.Block.class, boolean.class, int.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, beforeGetBrightnessHookTypes, "beforeGetBrightness", float.class); + addMethod(id, baseClass, overrideGetBrightnessHookTypes, "getBrightness", float.class); + addMethod(id, baseClass, afterGetBrightnessHookTypes, "afterGetBrightness", float.class); + + addMethod(id, baseClass, beforeGetEyeHeightHookTypes, "beforeGetEyeHeight"); + addMethod(id, baseClass, overrideGetEyeHeightHookTypes, "getEyeHeight"); + addMethod(id, baseClass, afterGetEyeHeightHookTypes, "afterGetEyeHeight"); + + 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, 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, beforeMountEntityHookTypes, "beforeMountEntity", net.minecraft.entity.Entity.class); + addMethod(id, baseClass, overrideMountEntityHookTypes, "mountEntity", net.minecraft.entity.Entity.class); + addMethod(id, baseClass, afterMountEntityHookTypes, "afterMountEntity", net.minecraft.entity.Entity.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, beforeOnUpdateEntityHookTypes, "beforeOnUpdateEntity"); + addMethod(id, baseClass, overrideOnUpdateEntityHookTypes, "onUpdateEntity"); + addMethod(id, baseClass, afterOnUpdateEntityHookTypes, "afterOnUpdateEntity"); + + 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, beforeSetDeadHookTypes, "beforeSetDead"); + addMethod(id, baseClass, overrideSetDeadHookTypes, "setDead"); + addMethod(id, baseClass, afterSetDeadHookTypes, "afterSetDead"); + + addMethod(id, baseClass, beforeSetEntityActionStateHookTypes, "beforeSetEntityActionState", float.class, float.class, boolean.class, boolean.class); + addMethod(id, baseClass, overrideSetEntityActionStateHookTypes, "setEntityActionState", float.class, float.class, boolean.class, boolean.class); + addMethod(id, baseClass, afterSetEntityActionStateHookTypes, "afterSetEntityActionState", float.class, float.class, boolean.class, boolean.class); + + addMethod(id, baseClass, beforeSetPositionHookTypes, "beforeSetPosition", double.class, double.class, double.class); + addMethod(id, baseClass, overrideSetPositionHookTypes, "setPosition", double.class, double.class, double.class); + addMethod(id, baseClass, afterSetPositionHookTypes, "afterSetPosition", double.class, double.class, double.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, 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, beforeUpdatePotionEffectsHookTypes, "beforeUpdatePotionEffects"); + addMethod(id, baseClass, overrideUpdatePotionEffectsHookTypes, "updatePotionEffects"); + addMethod(id, baseClass, afterUpdatePotionEffectsHookTypes, "afterUpdatePotionEffects"); + + 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(IServerPlayerAPI instance : getAllInstancesList()) + instance.getServerPlayerAPI().attachServerPlayerBase(id); + + System.out.println("Server Player: registered " + id); + logger.fine("Server 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(IServerPlayerAPI instance : getAllInstancesList()) + instance.getServerPlayerAPI().detachServerPlayerBase(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); + + allBaseBeforeAddExperienceSuperiors.remove(id); + allBaseBeforeAddExperienceInferiors.remove(id); + allBaseOverrideAddExperienceSuperiors.remove(id); + allBaseOverrideAddExperienceInferiors.remove(id); + allBaseAfterAddExperienceSuperiors.remove(id); + allBaseAfterAddExperienceInferiors.remove(id); + + beforeAddExperienceHookTypes.remove(id); + overrideAddExperienceHookTypes.remove(id); + afterAddExperienceHookTypes.remove(id); + + allBaseBeforeAddExperienceLevelSuperiors.remove(id); + allBaseBeforeAddExperienceLevelInferiors.remove(id); + allBaseOverrideAddExperienceLevelSuperiors.remove(id); + allBaseOverrideAddExperienceLevelInferiors.remove(id); + allBaseAfterAddExperienceLevelSuperiors.remove(id); + allBaseAfterAddExperienceLevelInferiors.remove(id); + + beforeAddExperienceLevelHookTypes.remove(id); + overrideAddExperienceLevelHookTypes.remove(id); + afterAddExperienceLevelHookTypes.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); + + 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); + + allBaseBeforeClonePlayerSuperiors.remove(id); + allBaseBeforeClonePlayerInferiors.remove(id); + allBaseOverrideClonePlayerSuperiors.remove(id); + allBaseOverrideClonePlayerInferiors.remove(id); + allBaseAfterClonePlayerSuperiors.remove(id); + allBaseAfterClonePlayerInferiors.remove(id); + + beforeClonePlayerHookTypes.remove(id); + overrideClonePlayerHookTypes.remove(id); + afterClonePlayerHookTypes.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); + + 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); + + allBaseBeforeDisplayGUIDispenserSuperiors.remove(id); + allBaseBeforeDisplayGUIDispenserInferiors.remove(id); + allBaseOverrideDisplayGUIDispenserSuperiors.remove(id); + allBaseOverrideDisplayGUIDispenserInferiors.remove(id); + allBaseAfterDisplayGUIDispenserSuperiors.remove(id); + allBaseAfterDisplayGUIDispenserInferiors.remove(id); + + beforeDisplayGUIDispenserHookTypes.remove(id); + overrideDisplayGUIDispenserHookTypes.remove(id); + afterDisplayGUIDispenserHookTypes.remove(id); + + allBaseBeforeDisplayGUIFurnaceSuperiors.remove(id); + allBaseBeforeDisplayGUIFurnaceInferiors.remove(id); + allBaseOverrideDisplayGUIFurnaceSuperiors.remove(id); + allBaseOverrideDisplayGUIFurnaceInferiors.remove(id); + allBaseAfterDisplayGUIFurnaceSuperiors.remove(id); + allBaseAfterDisplayGUIFurnaceInferiors.remove(id); + + beforeDisplayGUIFurnaceHookTypes.remove(id); + overrideDisplayGUIFurnaceHookTypes.remove(id); + afterDisplayGUIFurnaceHookTypes.remove(id); + + allBaseBeforeDisplayGUIWorkbenchSuperiors.remove(id); + allBaseBeforeDisplayGUIWorkbenchInferiors.remove(id); + allBaseOverrideDisplayGUIWorkbenchSuperiors.remove(id); + allBaseOverrideDisplayGUIWorkbenchInferiors.remove(id); + allBaseAfterDisplayGUIWorkbenchSuperiors.remove(id); + allBaseAfterDisplayGUIWorkbenchInferiors.remove(id); + + beforeDisplayGUIWorkbenchHookTypes.remove(id); + overrideDisplayGUIWorkbenchHookTypes.remove(id); + afterDisplayGUIWorkbenchHookTypes.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); + + allBaseBeforeDropPlayerItemSuperiors.remove(id); + allBaseBeforeDropPlayerItemInferiors.remove(id); + allBaseOverrideDropPlayerItemSuperiors.remove(id); + allBaseOverrideDropPlayerItemInferiors.remove(id); + allBaseAfterDropPlayerItemSuperiors.remove(id); + allBaseAfterDropPlayerItemInferiors.remove(id); + + beforeDropPlayerItemHookTypes.remove(id); + overrideDropPlayerItemHookTypes.remove(id); + afterDropPlayerItemHookTypes.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); + + allBaseBeforeGetCurrentPlayerStrVsBlockSuperiors.remove(id); + allBaseBeforeGetCurrentPlayerStrVsBlockInferiors.remove(id); + allBaseOverrideGetCurrentPlayerStrVsBlockSuperiors.remove(id); + allBaseOverrideGetCurrentPlayerStrVsBlockInferiors.remove(id); + allBaseAfterGetCurrentPlayerStrVsBlockSuperiors.remove(id); + allBaseAfterGetCurrentPlayerStrVsBlockInferiors.remove(id); + + beforeGetCurrentPlayerStrVsBlockHookTypes.remove(id); + overrideGetCurrentPlayerStrVsBlockHookTypes.remove(id); + afterGetCurrentPlayerStrVsBlockHookTypes.remove(id); + + allBaseBeforeGetCurrentPlayerStrVsBlockForgeSuperiors.remove(id); + allBaseBeforeGetCurrentPlayerStrVsBlockForgeInferiors.remove(id); + allBaseOverrideGetCurrentPlayerStrVsBlockForgeSuperiors.remove(id); + allBaseOverrideGetCurrentPlayerStrVsBlockForgeInferiors.remove(id); + allBaseAfterGetCurrentPlayerStrVsBlockForgeSuperiors.remove(id); + allBaseAfterGetCurrentPlayerStrVsBlockForgeInferiors.remove(id); + + beforeGetCurrentPlayerStrVsBlockForgeHookTypes.remove(id); + overrideGetCurrentPlayerStrVsBlockForgeHookTypes.remove(id); + afterGetCurrentPlayerStrVsBlockForgeHookTypes.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); + + 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); + + allBaseBeforeGetEyeHeightSuperiors.remove(id); + allBaseBeforeGetEyeHeightInferiors.remove(id); + allBaseOverrideGetEyeHeightSuperiors.remove(id); + allBaseOverrideGetEyeHeightInferiors.remove(id); + allBaseAfterGetEyeHeightSuperiors.remove(id); + allBaseAfterGetEyeHeightInferiors.remove(id); + + beforeGetEyeHeightHookTypes.remove(id); + overrideGetEyeHeightHookTypes.remove(id); + afterGetEyeHeightHookTypes.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); + + 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); + + allBaseBeforeMountEntitySuperiors.remove(id); + allBaseBeforeMountEntityInferiors.remove(id); + allBaseOverrideMountEntitySuperiors.remove(id); + allBaseOverrideMountEntityInferiors.remove(id); + allBaseAfterMountEntitySuperiors.remove(id); + allBaseAfterMountEntityInferiors.remove(id); + + beforeMountEntityHookTypes.remove(id); + overrideMountEntityHookTypes.remove(id); + afterMountEntityHookTypes.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); + + allBaseBeforeOnUpdateEntitySuperiors.remove(id); + allBaseBeforeOnUpdateEntityInferiors.remove(id); + allBaseOverrideOnUpdateEntitySuperiors.remove(id); + allBaseOverrideOnUpdateEntityInferiors.remove(id); + allBaseAfterOnUpdateEntitySuperiors.remove(id); + allBaseAfterOnUpdateEntityInferiors.remove(id); + + beforeOnUpdateEntityHookTypes.remove(id); + overrideOnUpdateEntityHookTypes.remove(id); + afterOnUpdateEntityHookTypes.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); + + 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); + + allBaseBeforeSetEntityActionStateSuperiors.remove(id); + allBaseBeforeSetEntityActionStateInferiors.remove(id); + allBaseOverrideSetEntityActionStateSuperiors.remove(id); + allBaseOverrideSetEntityActionStateInferiors.remove(id); + allBaseAfterSetEntityActionStateSuperiors.remove(id); + allBaseAfterSetEntityActionStateInferiors.remove(id); + + beforeSetEntityActionStateHookTypes.remove(id); + overrideSetEntityActionStateHookTypes.remove(id); + afterSetEntityActionStateHookTypes.remove(id); + + allBaseBeforeSetPositionSuperiors.remove(id); + allBaseBeforeSetPositionInferiors.remove(id); + allBaseOverrideSetPositionSuperiors.remove(id); + allBaseOverrideSetPositionInferiors.remove(id); + allBaseAfterSetPositionSuperiors.remove(id); + allBaseAfterSetPositionInferiors.remove(id); + + beforeSetPositionHookTypes.remove(id); + overrideSetPositionHookTypes.remove(id); + afterSetPositionHookTypes.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); + + 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); + + allBaseBeforeUpdatePotionEffectsSuperiors.remove(id); + allBaseBeforeUpdatePotionEffectsInferiors.remove(id); + allBaseOverrideUpdatePotionEffectsSuperiors.remove(id); + allBaseOverrideUpdatePotionEffectsInferiors.remove(id); + allBaseAfterUpdatePotionEffectsSuperiors.remove(id); + allBaseAfterUpdatePotionEffectsInferiors.remove(id); + + beforeUpdatePotionEffectsHookTypes.remove(id); + overrideUpdatePotionEffectsHookTypes.remove(id); + afterUpdatePotionEffectsHookTypes.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(IServerPlayerAPI instance : getAllInstancesList()) + instance.getServerPlayerAPI().updateServerPlayerBases(); + + Iterator 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("ServerPlayerAPI: unregistered id '" + id + "'"); + + return true; + } + + public static void removeDynamicHookTypes(String id, Map> map) + { + Iterator keys = map.keySet().iterator(); + while(keys.hasNext()) + map.get(keys.next()).remove(id); + } + + public static Set getRegisteredIds() + { + return unmodifiableAllIds; + } + + private static void addSorting(String id, Map map, String[] values) + { + if(values != null && values.length > 0) + map.put(id, values); + } + + private static void addDynamicSorting(String id, Map> map, Map values) + { + if(values != null && values.size() > 0) + map.put(id, values); + } + + private static boolean addMethod(String id, Class baseClass, List list, String methodName, Class... _parameterTypes) + { + try + { + Method method = baseClass.getMethod(methodName, _parameterTypes); + boolean isOverridden = method.getDeclaringClass() != ServerPlayerBase.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 virtuals = null; + Map befores = null; + Map overrides = null; + Map afters = null; + + Method[] methods = baseClass.getDeclaredMethods(); + for(int i=0; i= 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, Map> dynamicHookMethods, Map> dynamicHookTypes) + { + Map methods = dynamicHookMethods.get(baseClass); + if(methods == null || methods.size() == 0) + return; + + Iterator keys = methods.keySet().iterator(); + while(keys.hasNext()) + { + String key = keys.next(); + if(!dynamicHookTypes.containsKey(key)) + dynamicHookTypes.put(key, new ArrayList(1)); + dynamicHookTypes.get(key).add(id); + } + } + + private static Map addDynamicMethod(String key, Method method, Map methods) + { + if(methods == null) + methods = new HashMap(); + if(methods.containsKey(key)) + throw new RuntimeException("method with key '" + key + "' allready exists"); + methods.put(key, method); + return methods; + } + + public static ServerPlayerAPI create(IServerPlayerAPI serverPlayer) + { + if(allBaseConstructors.size() > 0 && !initialized) + initialize(); + return new ServerPlayerAPI(serverPlayer); + } + + private static void initialize() + { + sortBases(beforeLocalConstructingHookTypes, allBaseBeforeLocalConstructingSuperiors, allBaseBeforeLocalConstructingInferiors, "beforeLocalConstructing"); + sortBases(afterLocalConstructingHookTypes, allBaseAfterLocalConstructingSuperiors, allBaseAfterLocalConstructingInferiors, "afterLocalConstructing"); + + Iterator 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(beforeAddExperienceHookTypes, allBaseBeforeAddExperienceSuperiors, allBaseBeforeAddExperienceInferiors, "beforeAddExperience"); + sortBases(overrideAddExperienceHookTypes, allBaseOverrideAddExperienceSuperiors, allBaseOverrideAddExperienceInferiors, "overrideAddExperience"); + sortBases(afterAddExperienceHookTypes, allBaseAfterAddExperienceSuperiors, allBaseAfterAddExperienceInferiors, "afterAddExperience"); + + sortBases(beforeAddExperienceLevelHookTypes, allBaseBeforeAddExperienceLevelSuperiors, allBaseBeforeAddExperienceLevelInferiors, "beforeAddExperienceLevel"); + sortBases(overrideAddExperienceLevelHookTypes, allBaseOverrideAddExperienceLevelSuperiors, allBaseOverrideAddExperienceLevelInferiors, "overrideAddExperienceLevel"); + sortBases(afterAddExperienceLevelHookTypes, allBaseAfterAddExperienceLevelSuperiors, allBaseAfterAddExperienceLevelInferiors, "afterAddExperienceLevel"); + + sortBases(beforeAddMovementStatHookTypes, allBaseBeforeAddMovementStatSuperiors, allBaseBeforeAddMovementStatInferiors, "beforeAddMovementStat"); + sortBases(overrideAddMovementStatHookTypes, allBaseOverrideAddMovementStatSuperiors, allBaseOverrideAddMovementStatInferiors, "overrideAddMovementStat"); + sortBases(afterAddMovementStatHookTypes, allBaseAfterAddMovementStatSuperiors, allBaseAfterAddMovementStatInferiors, "afterAddMovementStat"); + + 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(beforeClonePlayerHookTypes, allBaseBeforeClonePlayerSuperiors, allBaseBeforeClonePlayerInferiors, "beforeClonePlayer"); + sortBases(overrideClonePlayerHookTypes, allBaseOverrideClonePlayerSuperiors, allBaseOverrideClonePlayerInferiors, "overrideClonePlayer"); + sortBases(afterClonePlayerHookTypes, allBaseAfterClonePlayerSuperiors, allBaseAfterClonePlayerInferiors, "afterClonePlayer"); + + sortBases(beforeDamageEntityHookTypes, allBaseBeforeDamageEntitySuperiors, allBaseBeforeDamageEntityInferiors, "beforeDamageEntity"); + sortBases(overrideDamageEntityHookTypes, allBaseOverrideDamageEntitySuperiors, allBaseOverrideDamageEntityInferiors, "overrideDamageEntity"); + sortBases(afterDamageEntityHookTypes, allBaseAfterDamageEntitySuperiors, allBaseAfterDamageEntityInferiors, "afterDamageEntity"); + + sortBases(beforeDisplayGUIChestHookTypes, allBaseBeforeDisplayGUIChestSuperiors, allBaseBeforeDisplayGUIChestInferiors, "beforeDisplayGUIChest"); + sortBases(overrideDisplayGUIChestHookTypes, allBaseOverrideDisplayGUIChestSuperiors, allBaseOverrideDisplayGUIChestInferiors, "overrideDisplayGUIChest"); + sortBases(afterDisplayGUIChestHookTypes, allBaseAfterDisplayGUIChestSuperiors, allBaseAfterDisplayGUIChestInferiors, "afterDisplayGUIChest"); + + sortBases(beforeDisplayGUIDispenserHookTypes, allBaseBeforeDisplayGUIDispenserSuperiors, allBaseBeforeDisplayGUIDispenserInferiors, "beforeDisplayGUIDispenser"); + sortBases(overrideDisplayGUIDispenserHookTypes, allBaseOverrideDisplayGUIDispenserSuperiors, allBaseOverrideDisplayGUIDispenserInferiors, "overrideDisplayGUIDispenser"); + sortBases(afterDisplayGUIDispenserHookTypes, allBaseAfterDisplayGUIDispenserSuperiors, allBaseAfterDisplayGUIDispenserInferiors, "afterDisplayGUIDispenser"); + + sortBases(beforeDisplayGUIFurnaceHookTypes, allBaseBeforeDisplayGUIFurnaceSuperiors, allBaseBeforeDisplayGUIFurnaceInferiors, "beforeDisplayGUIFurnace"); + sortBases(overrideDisplayGUIFurnaceHookTypes, allBaseOverrideDisplayGUIFurnaceSuperiors, allBaseOverrideDisplayGUIFurnaceInferiors, "overrideDisplayGUIFurnace"); + sortBases(afterDisplayGUIFurnaceHookTypes, allBaseAfterDisplayGUIFurnaceSuperiors, allBaseAfterDisplayGUIFurnaceInferiors, "afterDisplayGUIFurnace"); + + sortBases(beforeDisplayGUIWorkbenchHookTypes, allBaseBeforeDisplayGUIWorkbenchSuperiors, allBaseBeforeDisplayGUIWorkbenchInferiors, "beforeDisplayGUIWorkbench"); + sortBases(overrideDisplayGUIWorkbenchHookTypes, allBaseOverrideDisplayGUIWorkbenchSuperiors, allBaseOverrideDisplayGUIWorkbenchInferiors, "overrideDisplayGUIWorkbench"); + sortBases(afterDisplayGUIWorkbenchHookTypes, allBaseAfterDisplayGUIWorkbenchSuperiors, allBaseAfterDisplayGUIWorkbenchInferiors, "afterDisplayGUIWorkbench"); + + sortBases(beforeDropOneItemHookTypes, allBaseBeforeDropOneItemSuperiors, allBaseBeforeDropOneItemInferiors, "beforeDropOneItem"); + sortBases(overrideDropOneItemHookTypes, allBaseOverrideDropOneItemSuperiors, allBaseOverrideDropOneItemInferiors, "overrideDropOneItem"); + sortBases(afterDropOneItemHookTypes, allBaseAfterDropOneItemSuperiors, allBaseAfterDropOneItemInferiors, "afterDropOneItem"); + + sortBases(beforeDropPlayerItemHookTypes, allBaseBeforeDropPlayerItemSuperiors, allBaseBeforeDropPlayerItemInferiors, "beforeDropPlayerItem"); + sortBases(overrideDropPlayerItemHookTypes, allBaseOverrideDropPlayerItemSuperiors, allBaseOverrideDropPlayerItemInferiors, "overrideDropPlayerItem"); + sortBases(afterDropPlayerItemHookTypes, allBaseAfterDropPlayerItemSuperiors, allBaseAfterDropPlayerItemInferiors, "afterDropPlayerItem"); + + 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(beforeGetCurrentPlayerStrVsBlockHookTypes, allBaseBeforeGetCurrentPlayerStrVsBlockSuperiors, allBaseBeforeGetCurrentPlayerStrVsBlockInferiors, "beforeGetCurrentPlayerStrVsBlock"); + sortBases(overrideGetCurrentPlayerStrVsBlockHookTypes, allBaseOverrideGetCurrentPlayerStrVsBlockSuperiors, allBaseOverrideGetCurrentPlayerStrVsBlockInferiors, "overrideGetCurrentPlayerStrVsBlock"); + sortBases(afterGetCurrentPlayerStrVsBlockHookTypes, allBaseAfterGetCurrentPlayerStrVsBlockSuperiors, allBaseAfterGetCurrentPlayerStrVsBlockInferiors, "afterGetCurrentPlayerStrVsBlock"); + + sortBases(beforeGetCurrentPlayerStrVsBlockForgeHookTypes, allBaseBeforeGetCurrentPlayerStrVsBlockForgeSuperiors, allBaseBeforeGetCurrentPlayerStrVsBlockForgeInferiors, "beforeGetCurrentPlayerStrVsBlockForge"); + sortBases(overrideGetCurrentPlayerStrVsBlockForgeHookTypes, allBaseOverrideGetCurrentPlayerStrVsBlockForgeSuperiors, allBaseOverrideGetCurrentPlayerStrVsBlockForgeInferiors, "overrideGetCurrentPlayerStrVsBlockForge"); + sortBases(afterGetCurrentPlayerStrVsBlockForgeHookTypes, allBaseAfterGetCurrentPlayerStrVsBlockForgeSuperiors, allBaseAfterGetCurrentPlayerStrVsBlockForgeInferiors, "afterGetCurrentPlayerStrVsBlockForge"); + + sortBases(beforeGetDistanceSqHookTypes, allBaseBeforeGetDistanceSqSuperiors, allBaseBeforeGetDistanceSqInferiors, "beforeGetDistanceSq"); + sortBases(overrideGetDistanceSqHookTypes, allBaseOverrideGetDistanceSqSuperiors, allBaseOverrideGetDistanceSqInferiors, "overrideGetDistanceSq"); + sortBases(afterGetDistanceSqHookTypes, allBaseAfterGetDistanceSqSuperiors, allBaseAfterGetDistanceSqInferiors, "afterGetDistanceSq"); + + sortBases(beforeGetBrightnessHookTypes, allBaseBeforeGetBrightnessSuperiors, allBaseBeforeGetBrightnessInferiors, "beforeGetBrightness"); + sortBases(overrideGetBrightnessHookTypes, allBaseOverrideGetBrightnessSuperiors, allBaseOverrideGetBrightnessInferiors, "overrideGetBrightness"); + sortBases(afterGetBrightnessHookTypes, allBaseAfterGetBrightnessSuperiors, allBaseAfterGetBrightnessInferiors, "afterGetBrightness"); + + sortBases(beforeGetEyeHeightHookTypes, allBaseBeforeGetEyeHeightSuperiors, allBaseBeforeGetEyeHeightInferiors, "beforeGetEyeHeight"); + sortBases(overrideGetEyeHeightHookTypes, allBaseOverrideGetEyeHeightSuperiors, allBaseOverrideGetEyeHeightInferiors, "overrideGetEyeHeight"); + sortBases(afterGetEyeHeightHookTypes, allBaseAfterGetEyeHeightSuperiors, allBaseAfterGetEyeHeightInferiors, "afterGetEyeHeight"); + + 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(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(beforeMountEntityHookTypes, allBaseBeforeMountEntitySuperiors, allBaseBeforeMountEntityInferiors, "beforeMountEntity"); + sortBases(overrideMountEntityHookTypes, allBaseOverrideMountEntitySuperiors, allBaseOverrideMountEntityInferiors, "overrideMountEntity"); + sortBases(afterMountEntityHookTypes, allBaseAfterMountEntitySuperiors, allBaseAfterMountEntityInferiors, "afterMountEntity"); + + 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(beforeOnUpdateEntityHookTypes, allBaseBeforeOnUpdateEntitySuperiors, allBaseBeforeOnUpdateEntityInferiors, "beforeOnUpdateEntity"); + sortBases(overrideOnUpdateEntityHookTypes, allBaseOverrideOnUpdateEntitySuperiors, allBaseOverrideOnUpdateEntityInferiors, "overrideOnUpdateEntity"); + sortBases(afterOnUpdateEntityHookTypes, allBaseAfterOnUpdateEntitySuperiors, allBaseAfterOnUpdateEntityInferiors, "afterOnUpdateEntity"); + + sortBases(beforeReadEntityFromNBTHookTypes, allBaseBeforeReadEntityFromNBTSuperiors, allBaseBeforeReadEntityFromNBTInferiors, "beforeReadEntityFromNBT"); + sortBases(overrideReadEntityFromNBTHookTypes, allBaseOverrideReadEntityFromNBTSuperiors, allBaseOverrideReadEntityFromNBTInferiors, "overrideReadEntityFromNBT"); + sortBases(afterReadEntityFromNBTHookTypes, allBaseAfterReadEntityFromNBTSuperiors, allBaseAfterReadEntityFromNBTInferiors, "afterReadEntityFromNBT"); + + sortBases(beforeSetDeadHookTypes, allBaseBeforeSetDeadSuperiors, allBaseBeforeSetDeadInferiors, "beforeSetDead"); + sortBases(overrideSetDeadHookTypes, allBaseOverrideSetDeadSuperiors, allBaseOverrideSetDeadInferiors, "overrideSetDead"); + sortBases(afterSetDeadHookTypes, allBaseAfterSetDeadSuperiors, allBaseAfterSetDeadInferiors, "afterSetDead"); + + sortBases(beforeSetEntityActionStateHookTypes, allBaseBeforeSetEntityActionStateSuperiors, allBaseBeforeSetEntityActionStateInferiors, "beforeSetEntityActionState"); + sortBases(overrideSetEntityActionStateHookTypes, allBaseOverrideSetEntityActionStateSuperiors, allBaseOverrideSetEntityActionStateInferiors, "overrideSetEntityActionState"); + sortBases(afterSetEntityActionStateHookTypes, allBaseAfterSetEntityActionStateSuperiors, allBaseAfterSetEntityActionStateInferiors, "afterSetEntityActionState"); + + sortBases(beforeSetPositionHookTypes, allBaseBeforeSetPositionSuperiors, allBaseBeforeSetPositionInferiors, "beforeSetPosition"); + sortBases(overrideSetPositionHookTypes, allBaseOverrideSetPositionSuperiors, allBaseOverrideSetPositionInferiors, "overrideSetPosition"); + sortBases(afterSetPositionHookTypes, allBaseAfterSetPositionSuperiors, allBaseAfterSetPositionInferiors, "afterSetPosition"); + + 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(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(beforeUpdatePotionEffectsHookTypes, allBaseBeforeUpdatePotionEffectsSuperiors, allBaseBeforeUpdatePotionEffectsInferiors, "beforeUpdatePotionEffects"); + sortBases(overrideUpdatePotionEffectsHookTypes, allBaseOverrideUpdatePotionEffectsSuperiors, allBaseOverrideUpdatePotionEffectsInferiors, "overrideUpdatePotionEffects"); + sortBases(afterUpdatePotionEffectsHookTypes, allBaseAfterUpdatePotionEffectsSuperiors, allBaseAfterUpdatePotionEffectsInferiors, "afterUpdatePotionEffects"); + + 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 getAllInstancesList() + { + List result = new ArrayList(); + Object entityPlayerList; + try + { + Object minecraftServer = net.minecraft.server.MinecraftServer.class.getMethod("func_71276_C").invoke(null); + Object serverConfigurationManager = minecraftServer != null ? net.minecraft.server.MinecraftServer.class.getMethod("func_71203_ab").invoke(minecraftServer) : null; + entityPlayerList = serverConfigurationManager != null ? serverConfigurationManager.getClass().getField("field_72404_b").get(serverConfigurationManager) : null; + } + catch(Exception obfuscatedException) + { + try + { + Object minecraftServer = net.minecraft.server.MinecraftServer.class.getMethod("getServer").invoke(null); + Object serverConfigurationManager = minecraftServer != null ? net.minecraft.server.MinecraftServer.class.getMethod("getConfigurationManager").invoke(minecraftServer) : null; + entityPlayerList = serverConfigurationManager != null ? serverConfigurationManager.getClass().getField("playerEntityList").get(serverConfigurationManager) : null; + } + catch(Exception deobfuscatedException) + { + throw new RuntimeException("Unable to aquire list of current server players.", obfuscatedException); + } + } + if(entityPlayerList != null) + for(Object entityPlayer : (List)entityPlayerList) + result.add((IServerPlayerAPI)entityPlayer); + return result; + } + + public static net.minecraft.entity.player.EntityPlayerMP[] getAllInstances() + { + List allInstances = getAllInstancesList(); + return allInstances.toArray(new net.minecraft.entity.player.EntityPlayerMP[allInstances.size()]); + } + + public static void beforeLocalConstructing(IServerPlayerAPI serverPlayer, net.minecraft.server.MinecraftServer paramMinecraftServer, net.minecraft.world.WorldServer paramWorldServer, com.mojang.authlib.GameProfile paramGameProfile, net.minecraft.server.management.ItemInWorldManager paramItemInWorldManager) + { + ServerPlayerAPI serverPlayerAPI = serverPlayer.getServerPlayerAPI(); + if(serverPlayerAPI != null) + serverPlayerAPI.load(); + + if(serverPlayerAPI != null) + serverPlayerAPI.beforeLocalConstructing(paramMinecraftServer, paramWorldServer, paramGameProfile, paramItemInWorldManager); + } + + public static void afterLocalConstructing(IServerPlayerAPI serverPlayer, net.minecraft.server.MinecraftServer paramMinecraftServer, net.minecraft.world.WorldServer paramWorldServer, com.mojang.authlib.GameProfile paramGameProfile, net.minecraft.server.management.ItemInWorldManager paramItemInWorldManager) + { + ServerPlayerAPI serverPlayerAPI = serverPlayer.getServerPlayerAPI(); + if(serverPlayerAPI != null) + serverPlayerAPI.afterLocalConstructing(paramMinecraftServer, paramWorldServer, paramGameProfile, paramItemInWorldManager); + } + + public static ServerPlayerBase getServerPlayerBase(IServerPlayerAPI serverPlayer, String baseId) + { + ServerPlayerAPI serverPlayerAPI = serverPlayer.getServerPlayerAPI(); + if(serverPlayerAPI != null) + return serverPlayerAPI.getServerPlayerBase(baseId); + return null; + } + + public static Set getServerPlayerBaseIds(IServerPlayerAPI serverPlayer) + { + ServerPlayerAPI serverPlayerAPI = serverPlayer.getServerPlayerAPI(); + Set result = null; + if(serverPlayerAPI != null) + result = serverPlayerAPI.getServerPlayerBaseIds(); + else + result = Collections.emptySet(); + return result; + } + + public static Object dynamic(IServerPlayerAPI serverPlayer, String key, Object[] parameters) + { + ServerPlayerAPI serverPlayerAPI = serverPlayer.getServerPlayerAPI(); + if(serverPlayerAPI != null) + return serverPlayerAPI.dynamic(key, parameters); + return null; + } + + private static void sortBases(List list, Map allBaseSuperiors, Map allBaseInferiors, String methodName) + { + new ServerPlayerBaseSorter(list, allBaseSuperiors, allBaseInferiors, methodName).Sort(); + } + + private final static Map EmptySortMap = Collections.unmodifiableMap(new HashMap()); + + private static void sortDynamicBases(Map> lists, Map> allBaseSuperiors, Map> allBaseInferiors, String key) + { + List types = lists.get(key); + if(types != null && types.size() > 1) + sortBases(types, getDynamicSorters(key, types, allBaseSuperiors), getDynamicSorters(key, types, allBaseInferiors), key); + } + + private static Map getDynamicSorters(String key, List toSort, Map> allBaseValues) + { + Map superiors = null; + + Iterator ids = toSort.iterator(); + while(ids.hasNext()) + { + String id = ids.next(); + Map 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(1); + superiors.put(id, keySuperiorIds); + } + } + + return superiors != null ? superiors : EmptySortMap; + } + + private ServerPlayerAPI(IServerPlayerAPI player) + { + this.player = player; + } + + private void load() + { + Iterator iterator = allBaseConstructors.keySet().iterator(); + while(iterator.hasNext()) + { + String id = iterator.next(); + ServerPlayerBase toAttach = createServerPlayerBase(id); + toAttach.beforeBaseAttach(false); + allBaseObjects.put(id, toAttach); + baseObjectsToId.put(toAttach, id); + } + + beforeLocalConstructingHooks = create(beforeLocalConstructingHookTypes); + afterLocalConstructingHooks = create(afterLocalConstructingHookTypes); + + updateServerPlayerBases(); + + iterator = allBaseObjects.keySet().iterator(); + while(iterator.hasNext()) + allBaseObjects.get(iterator.next()).afterBaseAttach(false); + } + + private ServerPlayerBase createServerPlayerBase(String id) + { + Constructor contructor = allBaseConstructors.get(id); + + ServerPlayerBase base; + try + { + if(contructor.getParameterTypes().length == 1) + base = (ServerPlayerBase)contructor.newInstance(this); + else + base = (ServerPlayerBase)contructor.newInstance(this, id); + } + catch (Exception e) + { + throw new RuntimeException("Exception while creating a ServerPlayerBase of type '" + contructor.getDeclaringClass() + "'", e); + } + return base; + } + + private void updateServerPlayerBases() + { + beforeAddExhaustionHooks = create(beforeAddExhaustionHookTypes); + overrideAddExhaustionHooks = create(overrideAddExhaustionHookTypes); + afterAddExhaustionHooks = create(afterAddExhaustionHookTypes); + isAddExhaustionModded = + beforeAddExhaustionHooks != null || + overrideAddExhaustionHooks != null || + afterAddExhaustionHooks != null; + + beforeAddExperienceHooks = create(beforeAddExperienceHookTypes); + overrideAddExperienceHooks = create(overrideAddExperienceHookTypes); + afterAddExperienceHooks = create(afterAddExperienceHookTypes); + isAddExperienceModded = + beforeAddExperienceHooks != null || + overrideAddExperienceHooks != null || + afterAddExperienceHooks != null; + + beforeAddExperienceLevelHooks = create(beforeAddExperienceLevelHookTypes); + overrideAddExperienceLevelHooks = create(overrideAddExperienceLevelHookTypes); + afterAddExperienceLevelHooks = create(afterAddExperienceLevelHookTypes); + isAddExperienceLevelModded = + beforeAddExperienceLevelHooks != null || + overrideAddExperienceLevelHooks != null || + afterAddExperienceLevelHooks != null; + + beforeAddMovementStatHooks = create(beforeAddMovementStatHookTypes); + overrideAddMovementStatHooks = create(overrideAddMovementStatHookTypes); + afterAddMovementStatHooks = create(afterAddMovementStatHookTypes); + isAddMovementStatModded = + beforeAddMovementStatHooks != null || + overrideAddMovementStatHooks != null || + afterAddMovementStatHooks != 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; + + beforeClonePlayerHooks = create(beforeClonePlayerHookTypes); + overrideClonePlayerHooks = create(overrideClonePlayerHookTypes); + afterClonePlayerHooks = create(afterClonePlayerHookTypes); + isClonePlayerModded = + beforeClonePlayerHooks != null || + overrideClonePlayerHooks != null || + afterClonePlayerHooks != null; + + beforeDamageEntityHooks = create(beforeDamageEntityHookTypes); + overrideDamageEntityHooks = create(overrideDamageEntityHookTypes); + afterDamageEntityHooks = create(afterDamageEntityHookTypes); + isDamageEntityModded = + beforeDamageEntityHooks != null || + overrideDamageEntityHooks != null || + afterDamageEntityHooks != null; + + beforeDisplayGUIChestHooks = create(beforeDisplayGUIChestHookTypes); + overrideDisplayGUIChestHooks = create(overrideDisplayGUIChestHookTypes); + afterDisplayGUIChestHooks = create(afterDisplayGUIChestHookTypes); + isDisplayGUIChestModded = + beforeDisplayGUIChestHooks != null || + overrideDisplayGUIChestHooks != null || + afterDisplayGUIChestHooks != null; + + beforeDisplayGUIDispenserHooks = create(beforeDisplayGUIDispenserHookTypes); + overrideDisplayGUIDispenserHooks = create(overrideDisplayGUIDispenserHookTypes); + afterDisplayGUIDispenserHooks = create(afterDisplayGUIDispenserHookTypes); + isDisplayGUIDispenserModded = + beforeDisplayGUIDispenserHooks != null || + overrideDisplayGUIDispenserHooks != null || + afterDisplayGUIDispenserHooks != null; + + beforeDisplayGUIFurnaceHooks = create(beforeDisplayGUIFurnaceHookTypes); + overrideDisplayGUIFurnaceHooks = create(overrideDisplayGUIFurnaceHookTypes); + afterDisplayGUIFurnaceHooks = create(afterDisplayGUIFurnaceHookTypes); + isDisplayGUIFurnaceModded = + beforeDisplayGUIFurnaceHooks != null || + overrideDisplayGUIFurnaceHooks != null || + afterDisplayGUIFurnaceHooks != null; + + beforeDisplayGUIWorkbenchHooks = create(beforeDisplayGUIWorkbenchHookTypes); + overrideDisplayGUIWorkbenchHooks = create(overrideDisplayGUIWorkbenchHookTypes); + afterDisplayGUIWorkbenchHooks = create(afterDisplayGUIWorkbenchHookTypes); + isDisplayGUIWorkbenchModded = + beforeDisplayGUIWorkbenchHooks != null || + overrideDisplayGUIWorkbenchHooks != null || + afterDisplayGUIWorkbenchHooks != null; + + beforeDropOneItemHooks = create(beforeDropOneItemHookTypes); + overrideDropOneItemHooks = create(overrideDropOneItemHookTypes); + afterDropOneItemHooks = create(afterDropOneItemHookTypes); + isDropOneItemModded = + beforeDropOneItemHooks != null || + overrideDropOneItemHooks != null || + afterDropOneItemHooks != null; + + beforeDropPlayerItemHooks = create(beforeDropPlayerItemHookTypes); + overrideDropPlayerItemHooks = create(overrideDropPlayerItemHookTypes); + afterDropPlayerItemHooks = create(afterDropPlayerItemHookTypes); + isDropPlayerItemModded = + beforeDropPlayerItemHooks != null || + overrideDropPlayerItemHooks != null || + afterDropPlayerItemHooks != 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; + + beforeGetCurrentPlayerStrVsBlockHooks = create(beforeGetCurrentPlayerStrVsBlockHookTypes); + overrideGetCurrentPlayerStrVsBlockHooks = create(overrideGetCurrentPlayerStrVsBlockHookTypes); + afterGetCurrentPlayerStrVsBlockHooks = create(afterGetCurrentPlayerStrVsBlockHookTypes); + isGetCurrentPlayerStrVsBlockModded = + beforeGetCurrentPlayerStrVsBlockHooks != null || + overrideGetCurrentPlayerStrVsBlockHooks != null || + afterGetCurrentPlayerStrVsBlockHooks != null; + + beforeGetCurrentPlayerStrVsBlockForgeHooks = create(beforeGetCurrentPlayerStrVsBlockForgeHookTypes); + overrideGetCurrentPlayerStrVsBlockForgeHooks = create(overrideGetCurrentPlayerStrVsBlockForgeHookTypes); + afterGetCurrentPlayerStrVsBlockForgeHooks = create(afterGetCurrentPlayerStrVsBlockForgeHookTypes); + isGetCurrentPlayerStrVsBlockForgeModded = + beforeGetCurrentPlayerStrVsBlockForgeHooks != null || + overrideGetCurrentPlayerStrVsBlockForgeHooks != null || + afterGetCurrentPlayerStrVsBlockForgeHooks != null; + + beforeGetDistanceSqHooks = create(beforeGetDistanceSqHookTypes); + overrideGetDistanceSqHooks = create(overrideGetDistanceSqHookTypes); + afterGetDistanceSqHooks = create(afterGetDistanceSqHookTypes); + isGetDistanceSqModded = + beforeGetDistanceSqHooks != null || + overrideGetDistanceSqHooks != null || + afterGetDistanceSqHooks != null; + + beforeGetBrightnessHooks = create(beforeGetBrightnessHookTypes); + overrideGetBrightnessHooks = create(overrideGetBrightnessHookTypes); + afterGetBrightnessHooks = create(afterGetBrightnessHookTypes); + isGetBrightnessModded = + beforeGetBrightnessHooks != null || + overrideGetBrightnessHooks != null || + afterGetBrightnessHooks != null; + + beforeGetEyeHeightHooks = create(beforeGetEyeHeightHookTypes); + overrideGetEyeHeightHooks = create(overrideGetEyeHeightHookTypes); + afterGetEyeHeightHooks = create(afterGetEyeHeightHookTypes); + isGetEyeHeightModded = + beforeGetEyeHeightHooks != null || + overrideGetEyeHeightHooks != null || + afterGetEyeHeightHooks != 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; + + 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; + + beforeMountEntityHooks = create(beforeMountEntityHookTypes); + overrideMountEntityHooks = create(overrideMountEntityHookTypes); + afterMountEntityHooks = create(afterMountEntityHookTypes); + isMountEntityModded = + beforeMountEntityHooks != null || + overrideMountEntityHooks != null || + afterMountEntityHooks != 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; + + beforeOnUpdateEntityHooks = create(beforeOnUpdateEntityHookTypes); + overrideOnUpdateEntityHooks = create(overrideOnUpdateEntityHookTypes); + afterOnUpdateEntityHooks = create(afterOnUpdateEntityHookTypes); + isOnUpdateEntityModded = + beforeOnUpdateEntityHooks != null || + overrideOnUpdateEntityHooks != null || + afterOnUpdateEntityHooks != null; + + beforeReadEntityFromNBTHooks = create(beforeReadEntityFromNBTHookTypes); + overrideReadEntityFromNBTHooks = create(overrideReadEntityFromNBTHookTypes); + afterReadEntityFromNBTHooks = create(afterReadEntityFromNBTHookTypes); + isReadEntityFromNBTModded = + beforeReadEntityFromNBTHooks != null || + overrideReadEntityFromNBTHooks != null || + afterReadEntityFromNBTHooks != null; + + beforeSetDeadHooks = create(beforeSetDeadHookTypes); + overrideSetDeadHooks = create(overrideSetDeadHookTypes); + afterSetDeadHooks = create(afterSetDeadHookTypes); + isSetDeadModded = + beforeSetDeadHooks != null || + overrideSetDeadHooks != null || + afterSetDeadHooks != null; + + beforeSetEntityActionStateHooks = create(beforeSetEntityActionStateHookTypes); + overrideSetEntityActionStateHooks = create(overrideSetEntityActionStateHookTypes); + afterSetEntityActionStateHooks = create(afterSetEntityActionStateHookTypes); + isSetEntityActionStateModded = + beforeSetEntityActionStateHooks != null || + overrideSetEntityActionStateHooks != null || + afterSetEntityActionStateHooks != null; + + beforeSetPositionHooks = create(beforeSetPositionHookTypes); + overrideSetPositionHooks = create(overrideSetPositionHookTypes); + afterSetPositionHooks = create(afterSetPositionHookTypes); + isSetPositionModded = + beforeSetPositionHooks != null || + overrideSetPositionHooks != null || + afterSetPositionHooks != 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; + + 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; + + beforeUpdatePotionEffectsHooks = create(beforeUpdatePotionEffectsHookTypes); + overrideUpdatePotionEffectsHooks = create(overrideUpdatePotionEffectsHookTypes); + afterUpdatePotionEffectsHooks = create(afterUpdatePotionEffectsHookTypes); + isUpdatePotionEffectsModded = + beforeUpdatePotionEffectsHooks != null || + overrideUpdatePotionEffectsHooks != null || + afterUpdatePotionEffectsHooks != 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 attachServerPlayerBase(String id) + { + ServerPlayerBase toAttach = createServerPlayerBase(id); + toAttach.beforeBaseAttach(true); + allBaseObjects.put(id, toAttach); + updateServerPlayerBases(); + toAttach.afterBaseAttach(true); + } + + private void detachServerPlayerBase(String id) + { + ServerPlayerBase toDetach = allBaseObjects.get(id); + toDetach.beforeBaseDetach(true); + allBaseObjects.remove(id); + toDetach.afterBaseDetach(true); + } + + private ServerPlayerBase[] create(List types) + { + if(types.isEmpty()) + return null; + + ServerPlayerBase[] result = new ServerPlayerBase[types.size()]; + for(int i = 0; i < result.length; i++) + result[i] = getServerPlayerBase(types.get(i)); + return result; + } + + private void beforeLocalConstructing(net.minecraft.server.MinecraftServer paramMinecraftServer, net.minecraft.world.WorldServer paramWorldServer, com.mojang.authlib.GameProfile paramGameProfile, net.minecraft.server.management.ItemInWorldManager paramItemInWorldManager) + { + if(beforeLocalConstructingHooks != null) + for(int i = beforeLocalConstructingHooks.length - 1; i >= 0 ; i--) + beforeLocalConstructingHooks[i].beforeLocalConstructing(paramMinecraftServer, paramWorldServer, paramGameProfile, paramItemInWorldManager); + beforeLocalConstructingHooks = null; + } + + private void afterLocalConstructing(net.minecraft.server.MinecraftServer paramMinecraftServer, net.minecraft.world.WorldServer paramWorldServer, com.mojang.authlib.GameProfile paramGameProfile, net.minecraft.server.management.ItemInWorldManager paramItemInWorldManager) + { + if(afterLocalConstructingHooks != null) + for(int i = 0; i < afterLocalConstructingHooks.length; i++) + afterLocalConstructingHooks[i].afterLocalConstructing(paramMinecraftServer, paramWorldServer, paramGameProfile, paramItemInWorldManager); + afterLocalConstructingHooks = null; + } + + public ServerPlayerBase getServerPlayerBase(String id) + { + return allBaseObjects.get(id); + } + + public Set getServerPlayerBaseIds() + { + 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, ServerPlayerBase overwriter) + { + List 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, Map> methodMap; + + if(id == null) + { + id = keysToVirtualIds.get(key); + if(id == null) + return null; + methodMap = virtualDynamicHookMethods; + } + else + methodMap = overrideDynamicHookMethods; + + Map methods = methodMap.get(allBaseConstructors.get(id).getDeclaringClass()); + if(methods == null) + return null; + + Method method = methods.get(key); + if(method == null) + return null; + + return execute(getServerPlayerBase(id), method, parameters); + } + + private void executeAll(String key, Object[] parameters, Map> dynamicHookTypes, Map, Map> dynamicHookMethods, boolean reverse) + { + List 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); + ServerPlayerBase base = getServerPlayerBase(id); + Class type = base.getClass(); + + Map methods = dynamicHookMethods.get(type); + if(methods == null) + continue; + + Method method = methods.get(key); + if(method == null) + continue; + + execute(base, method, parameters); + } + } + + private Object execute(ServerPlayerBase 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(IServerPlayerAPI target, float paramFloat) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isAddExhaustionModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenAddExhaustion(ServerPlayerBase 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 beforeAddExhaustionHookTypes = new LinkedList(); + private final static List overrideAddExhaustionHookTypes = new LinkedList(); + private final static List afterAddExhaustionHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeAddExhaustionHooks; + private ServerPlayerBase[] overrideAddExhaustionHooks; + private ServerPlayerBase[] afterAddExhaustionHooks; + + public boolean isAddExhaustionModded; + + private static final Map allBaseBeforeAddExhaustionSuperiors = new Hashtable(0); + private static final Map allBaseBeforeAddExhaustionInferiors = new Hashtable(0); + private static final Map allBaseOverrideAddExhaustionSuperiors = new Hashtable(0); + private static final Map allBaseOverrideAddExhaustionInferiors = new Hashtable(0); + private static final Map allBaseAfterAddExhaustionSuperiors = new Hashtable(0); + private static final Map allBaseAfterAddExhaustionInferiors = new Hashtable(0); + + public static void addExperience(IServerPlayerAPI target, int paramInt) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isAddExperienceModded) + serverPlayerAPI.addExperience(paramInt); + else + target.localAddExperience(paramInt); + } + + private void addExperience(int paramInt) + { + if(beforeAddExperienceHooks != null) + for(int i = beforeAddExperienceHooks.length - 1; i >= 0 ; i--) + beforeAddExperienceHooks[i].beforeAddExperience(paramInt); + + if(overrideAddExperienceHooks != null) + overrideAddExperienceHooks[overrideAddExperienceHooks.length - 1].addExperience(paramInt); + else + player.localAddExperience(paramInt); + + if(afterAddExperienceHooks != null) + for(int i = 0; i < afterAddExperienceHooks.length; i++) + afterAddExperienceHooks[i].afterAddExperience(paramInt); + + } + + protected ServerPlayerBase GetOverwrittenAddExperience(ServerPlayerBase overWriter) + { + if (overrideAddExperienceHooks == null) + return overWriter; + + for(int i = 0; i < overrideAddExperienceHooks.length; i++) + if(overrideAddExperienceHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideAddExperienceHooks[i - 1]; + + return overWriter; + } + + private final static List beforeAddExperienceHookTypes = new LinkedList(); + private final static List overrideAddExperienceHookTypes = new LinkedList(); + private final static List afterAddExperienceHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeAddExperienceHooks; + private ServerPlayerBase[] overrideAddExperienceHooks; + private ServerPlayerBase[] afterAddExperienceHooks; + + public boolean isAddExperienceModded; + + private static final Map allBaseBeforeAddExperienceSuperiors = new Hashtable(0); + private static final Map allBaseBeforeAddExperienceInferiors = new Hashtable(0); + private static final Map allBaseOverrideAddExperienceSuperiors = new Hashtable(0); + private static final Map allBaseOverrideAddExperienceInferiors = new Hashtable(0); + private static final Map allBaseAfterAddExperienceSuperiors = new Hashtable(0); + private static final Map allBaseAfterAddExperienceInferiors = new Hashtable(0); + + public static void addExperienceLevel(IServerPlayerAPI target, int paramInt) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isAddExperienceLevelModded) + serverPlayerAPI.addExperienceLevel(paramInt); + else + target.localAddExperienceLevel(paramInt); + } + + private void addExperienceLevel(int paramInt) + { + if(beforeAddExperienceLevelHooks != null) + for(int i = beforeAddExperienceLevelHooks.length - 1; i >= 0 ; i--) + beforeAddExperienceLevelHooks[i].beforeAddExperienceLevel(paramInt); + + if(overrideAddExperienceLevelHooks != null) + overrideAddExperienceLevelHooks[overrideAddExperienceLevelHooks.length - 1].addExperienceLevel(paramInt); + else + player.localAddExperienceLevel(paramInt); + + if(afterAddExperienceLevelHooks != null) + for(int i = 0; i < afterAddExperienceLevelHooks.length; i++) + afterAddExperienceLevelHooks[i].afterAddExperienceLevel(paramInt); + + } + + protected ServerPlayerBase GetOverwrittenAddExperienceLevel(ServerPlayerBase overWriter) + { + if (overrideAddExperienceLevelHooks == null) + return overWriter; + + for(int i = 0; i < overrideAddExperienceLevelHooks.length; i++) + if(overrideAddExperienceLevelHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideAddExperienceLevelHooks[i - 1]; + + return overWriter; + } + + private final static List beforeAddExperienceLevelHookTypes = new LinkedList(); + private final static List overrideAddExperienceLevelHookTypes = new LinkedList(); + private final static List afterAddExperienceLevelHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeAddExperienceLevelHooks; + private ServerPlayerBase[] overrideAddExperienceLevelHooks; + private ServerPlayerBase[] afterAddExperienceLevelHooks; + + public boolean isAddExperienceLevelModded; + + private static final Map allBaseBeforeAddExperienceLevelSuperiors = new Hashtable(0); + private static final Map allBaseBeforeAddExperienceLevelInferiors = new Hashtable(0); + private static final Map allBaseOverrideAddExperienceLevelSuperiors = new Hashtable(0); + private static final Map allBaseOverrideAddExperienceLevelInferiors = new Hashtable(0); + private static final Map allBaseAfterAddExperienceLevelSuperiors = new Hashtable(0); + private static final Map allBaseAfterAddExperienceLevelInferiors = new Hashtable(0); + + public static void addMovementStat(IServerPlayerAPI target, double paramDouble1, double paramDouble2, double paramDouble3) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isAddMovementStatModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenAddMovementStat(ServerPlayerBase 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 beforeAddMovementStatHookTypes = new LinkedList(); + private final static List overrideAddMovementStatHookTypes = new LinkedList(); + private final static List afterAddMovementStatHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeAddMovementStatHooks; + private ServerPlayerBase[] overrideAddMovementStatHooks; + private ServerPlayerBase[] afterAddMovementStatHooks; + + public boolean isAddMovementStatModded; + + private static final Map allBaseBeforeAddMovementStatSuperiors = new Hashtable(0); + private static final Map allBaseBeforeAddMovementStatInferiors = new Hashtable(0); + private static final Map allBaseOverrideAddMovementStatSuperiors = new Hashtable(0); + private static final Map allBaseOverrideAddMovementStatInferiors = new Hashtable(0); + private static final Map allBaseAfterAddMovementStatSuperiors = new Hashtable(0); + private static final Map allBaseAfterAddMovementStatInferiors = new Hashtable(0); + + public static boolean attackEntityFrom(IServerPlayerAPI target, net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + boolean _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isAttackEntityFromModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenAttackEntityFrom(ServerPlayerBase 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 beforeAttackEntityFromHookTypes = new LinkedList(); + private final static List overrideAttackEntityFromHookTypes = new LinkedList(); + private final static List afterAttackEntityFromHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeAttackEntityFromHooks; + private ServerPlayerBase[] overrideAttackEntityFromHooks; + private ServerPlayerBase[] afterAttackEntityFromHooks; + + public boolean isAttackEntityFromModded; + + private static final Map allBaseBeforeAttackEntityFromSuperiors = new Hashtable(0); + private static final Map allBaseBeforeAttackEntityFromInferiors = new Hashtable(0); + private static final Map allBaseOverrideAttackEntityFromSuperiors = new Hashtable(0); + private static final Map allBaseOverrideAttackEntityFromInferiors = new Hashtable(0); + private static final Map allBaseAfterAttackEntityFromSuperiors = new Hashtable(0); + private static final Map allBaseAfterAttackEntityFromInferiors = new Hashtable(0); + + public static void attackTargetEntityWithCurrentItem(IServerPlayerAPI target, net.minecraft.entity.Entity paramEntity) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isAttackTargetEntityWithCurrentItemModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenAttackTargetEntityWithCurrentItem(ServerPlayerBase 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 beforeAttackTargetEntityWithCurrentItemHookTypes = new LinkedList(); + private final static List overrideAttackTargetEntityWithCurrentItemHookTypes = new LinkedList(); + private final static List afterAttackTargetEntityWithCurrentItemHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeAttackTargetEntityWithCurrentItemHooks; + private ServerPlayerBase[] overrideAttackTargetEntityWithCurrentItemHooks; + private ServerPlayerBase[] afterAttackTargetEntityWithCurrentItemHooks; + + public boolean isAttackTargetEntityWithCurrentItemModded; + + private static final Map allBaseBeforeAttackTargetEntityWithCurrentItemSuperiors = new Hashtable(0); + private static final Map allBaseBeforeAttackTargetEntityWithCurrentItemInferiors = new Hashtable(0); + private static final Map allBaseOverrideAttackTargetEntityWithCurrentItemSuperiors = new Hashtable(0); + private static final Map allBaseOverrideAttackTargetEntityWithCurrentItemInferiors = new Hashtable(0); + private static final Map allBaseAfterAttackTargetEntityWithCurrentItemSuperiors = new Hashtable(0); + private static final Map allBaseAfterAttackTargetEntityWithCurrentItemInferiors = new Hashtable(0); + + public static boolean canBreatheUnderwater(IServerPlayerAPI target) + { + boolean _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isCanBreatheUnderwaterModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenCanBreatheUnderwater(ServerPlayerBase 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 beforeCanBreatheUnderwaterHookTypes = new LinkedList(); + private final static List overrideCanBreatheUnderwaterHookTypes = new LinkedList(); + private final static List afterCanBreatheUnderwaterHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeCanBreatheUnderwaterHooks; + private ServerPlayerBase[] overrideCanBreatheUnderwaterHooks; + private ServerPlayerBase[] afterCanBreatheUnderwaterHooks; + + public boolean isCanBreatheUnderwaterModded; + + private static final Map allBaseBeforeCanBreatheUnderwaterSuperiors = new Hashtable(0); + private static final Map allBaseBeforeCanBreatheUnderwaterInferiors = new Hashtable(0); + private static final Map allBaseOverrideCanBreatheUnderwaterSuperiors = new Hashtable(0); + private static final Map allBaseOverrideCanBreatheUnderwaterInferiors = new Hashtable(0); + private static final Map allBaseAfterCanBreatheUnderwaterSuperiors = new Hashtable(0); + private static final Map allBaseAfterCanBreatheUnderwaterInferiors = new Hashtable(0); + + public static boolean canHarvestBlock(IServerPlayerAPI target, net.minecraft.block.Block paramBlock) + { + boolean _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isCanHarvestBlockModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenCanHarvestBlock(ServerPlayerBase 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 beforeCanHarvestBlockHookTypes = new LinkedList(); + private final static List overrideCanHarvestBlockHookTypes = new LinkedList(); + private final static List afterCanHarvestBlockHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeCanHarvestBlockHooks; + private ServerPlayerBase[] overrideCanHarvestBlockHooks; + private ServerPlayerBase[] afterCanHarvestBlockHooks; + + public boolean isCanHarvestBlockModded; + + private static final Map allBaseBeforeCanHarvestBlockSuperiors = new Hashtable(0); + private static final Map allBaseBeforeCanHarvestBlockInferiors = new Hashtable(0); + private static final Map allBaseOverrideCanHarvestBlockSuperiors = new Hashtable(0); + private static final Map allBaseOverrideCanHarvestBlockInferiors = new Hashtable(0); + private static final Map allBaseAfterCanHarvestBlockSuperiors = new Hashtable(0); + private static final Map allBaseAfterCanHarvestBlockInferiors = new Hashtable(0); + + public static boolean canPlayerEdit(IServerPlayerAPI target, int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack) + { + boolean _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isCanPlayerEditModded) + _result = serverPlayerAPI.canPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + else + _result = target.localCanPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + return _result; + } + + private boolean canPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack) + { + if(beforeCanPlayerEditHooks != null) + for(int i = beforeCanPlayerEditHooks.length - 1; i >= 0 ; i--) + beforeCanPlayerEditHooks[i].beforeCanPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + + boolean _result; + if(overrideCanPlayerEditHooks != null) + _result = overrideCanPlayerEditHooks[overrideCanPlayerEditHooks.length - 1].canPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + else + _result = player.localCanPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + + if(afterCanPlayerEditHooks != null) + for(int i = 0; i < afterCanPlayerEditHooks.length; i++) + afterCanPlayerEditHooks[i].afterCanPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + + return _result; + } + + protected ServerPlayerBase GetOverwrittenCanPlayerEdit(ServerPlayerBase 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 beforeCanPlayerEditHookTypes = new LinkedList(); + private final static List overrideCanPlayerEditHookTypes = new LinkedList(); + private final static List afterCanPlayerEditHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeCanPlayerEditHooks; + private ServerPlayerBase[] overrideCanPlayerEditHooks; + private ServerPlayerBase[] afterCanPlayerEditHooks; + + public boolean isCanPlayerEditModded; + + private static final Map allBaseBeforeCanPlayerEditSuperiors = new Hashtable(0); + private static final Map allBaseBeforeCanPlayerEditInferiors = new Hashtable(0); + private static final Map allBaseOverrideCanPlayerEditSuperiors = new Hashtable(0); + private static final Map allBaseOverrideCanPlayerEditInferiors = new Hashtable(0); + private static final Map allBaseAfterCanPlayerEditSuperiors = new Hashtable(0); + private static final Map allBaseAfterCanPlayerEditInferiors = new Hashtable(0); + + public static boolean canTriggerWalking(IServerPlayerAPI target) + { + boolean _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isCanTriggerWalkingModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenCanTriggerWalking(ServerPlayerBase 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 beforeCanTriggerWalkingHookTypes = new LinkedList(); + private final static List overrideCanTriggerWalkingHookTypes = new LinkedList(); + private final static List afterCanTriggerWalkingHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeCanTriggerWalkingHooks; + private ServerPlayerBase[] overrideCanTriggerWalkingHooks; + private ServerPlayerBase[] afterCanTriggerWalkingHooks; + + public boolean isCanTriggerWalkingModded; + + private static final Map allBaseBeforeCanTriggerWalkingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeCanTriggerWalkingInferiors = new Hashtable(0); + private static final Map allBaseOverrideCanTriggerWalkingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideCanTriggerWalkingInferiors = new Hashtable(0); + private static final Map allBaseAfterCanTriggerWalkingSuperiors = new Hashtable(0); + private static final Map allBaseAfterCanTriggerWalkingInferiors = new Hashtable(0); + + public static void clonePlayer(IServerPlayerAPI target, net.minecraft.entity.player.EntityPlayer paramEntityPlayer, boolean paramBoolean) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isClonePlayerModded) + serverPlayerAPI.clonePlayer(paramEntityPlayer, paramBoolean); + else + target.localClonePlayer(paramEntityPlayer, paramBoolean); + } + + private void clonePlayer(net.minecraft.entity.player.EntityPlayer paramEntityPlayer, boolean paramBoolean) + { + if(beforeClonePlayerHooks != null) + for(int i = beforeClonePlayerHooks.length - 1; i >= 0 ; i--) + beforeClonePlayerHooks[i].beforeClonePlayer(paramEntityPlayer, paramBoolean); + + if(overrideClonePlayerHooks != null) + overrideClonePlayerHooks[overrideClonePlayerHooks.length - 1].clonePlayer(paramEntityPlayer, paramBoolean); + else + player.localClonePlayer(paramEntityPlayer, paramBoolean); + + if(afterClonePlayerHooks != null) + for(int i = 0; i < afterClonePlayerHooks.length; i++) + afterClonePlayerHooks[i].afterClonePlayer(paramEntityPlayer, paramBoolean); + + } + + protected ServerPlayerBase GetOverwrittenClonePlayer(ServerPlayerBase overWriter) + { + if (overrideClonePlayerHooks == null) + return overWriter; + + for(int i = 0; i < overrideClonePlayerHooks.length; i++) + if(overrideClonePlayerHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideClonePlayerHooks[i - 1]; + + return overWriter; + } + + private final static List beforeClonePlayerHookTypes = new LinkedList(); + private final static List overrideClonePlayerHookTypes = new LinkedList(); + private final static List afterClonePlayerHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeClonePlayerHooks; + private ServerPlayerBase[] overrideClonePlayerHooks; + private ServerPlayerBase[] afterClonePlayerHooks; + + public boolean isClonePlayerModded; + + private static final Map allBaseBeforeClonePlayerSuperiors = new Hashtable(0); + private static final Map allBaseBeforeClonePlayerInferiors = new Hashtable(0); + private static final Map allBaseOverrideClonePlayerSuperiors = new Hashtable(0); + private static final Map allBaseOverrideClonePlayerInferiors = new Hashtable(0); + private static final Map allBaseAfterClonePlayerSuperiors = new Hashtable(0); + private static final Map allBaseAfterClonePlayerInferiors = new Hashtable(0); + + public static void damageEntity(IServerPlayerAPI target, net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isDamageEntityModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenDamageEntity(ServerPlayerBase 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 beforeDamageEntityHookTypes = new LinkedList(); + private final static List overrideDamageEntityHookTypes = new LinkedList(); + private final static List afterDamageEntityHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeDamageEntityHooks; + private ServerPlayerBase[] overrideDamageEntityHooks; + private ServerPlayerBase[] afterDamageEntityHooks; + + public boolean isDamageEntityModded; + + private static final Map allBaseBeforeDamageEntitySuperiors = new Hashtable(0); + private static final Map allBaseBeforeDamageEntityInferiors = new Hashtable(0); + private static final Map allBaseOverrideDamageEntitySuperiors = new Hashtable(0); + private static final Map allBaseOverrideDamageEntityInferiors = new Hashtable(0); + private static final Map allBaseAfterDamageEntitySuperiors = new Hashtable(0); + private static final Map allBaseAfterDamageEntityInferiors = new Hashtable(0); + + public static void displayGUIChest(IServerPlayerAPI target, net.minecraft.inventory.IInventory paramIInventory) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isDisplayGUIChestModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenDisplayGUIChest(ServerPlayerBase 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 beforeDisplayGUIChestHookTypes = new LinkedList(); + private final static List overrideDisplayGUIChestHookTypes = new LinkedList(); + private final static List afterDisplayGUIChestHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeDisplayGUIChestHooks; + private ServerPlayerBase[] overrideDisplayGUIChestHooks; + private ServerPlayerBase[] afterDisplayGUIChestHooks; + + public boolean isDisplayGUIChestModded; + + private static final Map allBaseBeforeDisplayGUIChestSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDisplayGUIChestInferiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIChestSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIChestInferiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIChestSuperiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIChestInferiors = new Hashtable(0); + + public static void displayGUIDispenser(IServerPlayerAPI target, net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isDisplayGUIDispenserModded) + serverPlayerAPI.displayGUIDispenser(paramTileEntityDispenser); + else + target.localDisplayGUIDispenser(paramTileEntityDispenser); + } + + private void displayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser) + { + if(beforeDisplayGUIDispenserHooks != null) + for(int i = beforeDisplayGUIDispenserHooks.length - 1; i >= 0 ; i--) + beforeDisplayGUIDispenserHooks[i].beforeDisplayGUIDispenser(paramTileEntityDispenser); + + if(overrideDisplayGUIDispenserHooks != null) + overrideDisplayGUIDispenserHooks[overrideDisplayGUIDispenserHooks.length - 1].displayGUIDispenser(paramTileEntityDispenser); + else + player.localDisplayGUIDispenser(paramTileEntityDispenser); + + if(afterDisplayGUIDispenserHooks != null) + for(int i = 0; i < afterDisplayGUIDispenserHooks.length; i++) + afterDisplayGUIDispenserHooks[i].afterDisplayGUIDispenser(paramTileEntityDispenser); + + } + + protected ServerPlayerBase GetOverwrittenDisplayGUIDispenser(ServerPlayerBase overWriter) + { + if (overrideDisplayGUIDispenserHooks == null) + return overWriter; + + for(int i = 0; i < overrideDisplayGUIDispenserHooks.length; i++) + if(overrideDisplayGUIDispenserHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideDisplayGUIDispenserHooks[i - 1]; + + return overWriter; + } + + private final static List beforeDisplayGUIDispenserHookTypes = new LinkedList(); + private final static List overrideDisplayGUIDispenserHookTypes = new LinkedList(); + private final static List afterDisplayGUIDispenserHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeDisplayGUIDispenserHooks; + private ServerPlayerBase[] overrideDisplayGUIDispenserHooks; + private ServerPlayerBase[] afterDisplayGUIDispenserHooks; + + public boolean isDisplayGUIDispenserModded; + + private static final Map allBaseBeforeDisplayGUIDispenserSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDisplayGUIDispenserInferiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIDispenserSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIDispenserInferiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIDispenserSuperiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIDispenserInferiors = new Hashtable(0); + + public static void displayGUIFurnace(IServerPlayerAPI target, net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isDisplayGUIFurnaceModded) + serverPlayerAPI.displayGUIFurnace(paramTileEntityFurnace); + else + target.localDisplayGUIFurnace(paramTileEntityFurnace); + } + + private void displayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace) + { + if(beforeDisplayGUIFurnaceHooks != null) + for(int i = beforeDisplayGUIFurnaceHooks.length - 1; i >= 0 ; i--) + beforeDisplayGUIFurnaceHooks[i].beforeDisplayGUIFurnace(paramTileEntityFurnace); + + if(overrideDisplayGUIFurnaceHooks != null) + overrideDisplayGUIFurnaceHooks[overrideDisplayGUIFurnaceHooks.length - 1].displayGUIFurnace(paramTileEntityFurnace); + else + player.localDisplayGUIFurnace(paramTileEntityFurnace); + + if(afterDisplayGUIFurnaceHooks != null) + for(int i = 0; i < afterDisplayGUIFurnaceHooks.length; i++) + afterDisplayGUIFurnaceHooks[i].afterDisplayGUIFurnace(paramTileEntityFurnace); + + } + + protected ServerPlayerBase GetOverwrittenDisplayGUIFurnace(ServerPlayerBase overWriter) + { + if (overrideDisplayGUIFurnaceHooks == null) + return overWriter; + + for(int i = 0; i < overrideDisplayGUIFurnaceHooks.length; i++) + if(overrideDisplayGUIFurnaceHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideDisplayGUIFurnaceHooks[i - 1]; + + return overWriter; + } + + private final static List beforeDisplayGUIFurnaceHookTypes = new LinkedList(); + private final static List overrideDisplayGUIFurnaceHookTypes = new LinkedList(); + private final static List afterDisplayGUIFurnaceHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeDisplayGUIFurnaceHooks; + private ServerPlayerBase[] overrideDisplayGUIFurnaceHooks; + private ServerPlayerBase[] afterDisplayGUIFurnaceHooks; + + public boolean isDisplayGUIFurnaceModded; + + private static final Map allBaseBeforeDisplayGUIFurnaceSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDisplayGUIFurnaceInferiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIFurnaceSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIFurnaceInferiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIFurnaceSuperiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIFurnaceInferiors = new Hashtable(0); + + public static void displayGUIWorkbench(IServerPlayerAPI target, int paramInt1, int paramInt2, int paramInt3) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isDisplayGUIWorkbenchModded) + serverPlayerAPI.displayGUIWorkbench(paramInt1, paramInt2, paramInt3); + else + target.localDisplayGUIWorkbench(paramInt1, paramInt2, paramInt3); + } + + private void displayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3) + { + if(beforeDisplayGUIWorkbenchHooks != null) + for(int i = beforeDisplayGUIWorkbenchHooks.length - 1; i >= 0 ; i--) + beforeDisplayGUIWorkbenchHooks[i].beforeDisplayGUIWorkbench(paramInt1, paramInt2, paramInt3); + + if(overrideDisplayGUIWorkbenchHooks != null) + overrideDisplayGUIWorkbenchHooks[overrideDisplayGUIWorkbenchHooks.length - 1].displayGUIWorkbench(paramInt1, paramInt2, paramInt3); + else + player.localDisplayGUIWorkbench(paramInt1, paramInt2, paramInt3); + + if(afterDisplayGUIWorkbenchHooks != null) + for(int i = 0; i < afterDisplayGUIWorkbenchHooks.length; i++) + afterDisplayGUIWorkbenchHooks[i].afterDisplayGUIWorkbench(paramInt1, paramInt2, paramInt3); + + } + + protected ServerPlayerBase GetOverwrittenDisplayGUIWorkbench(ServerPlayerBase overWriter) + { + if (overrideDisplayGUIWorkbenchHooks == null) + return overWriter; + + for(int i = 0; i < overrideDisplayGUIWorkbenchHooks.length; i++) + if(overrideDisplayGUIWorkbenchHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideDisplayGUIWorkbenchHooks[i - 1]; + + return overWriter; + } + + private final static List beforeDisplayGUIWorkbenchHookTypes = new LinkedList(); + private final static List overrideDisplayGUIWorkbenchHookTypes = new LinkedList(); + private final static List afterDisplayGUIWorkbenchHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeDisplayGUIWorkbenchHooks; + private ServerPlayerBase[] overrideDisplayGUIWorkbenchHooks; + private ServerPlayerBase[] afterDisplayGUIWorkbenchHooks; + + public boolean isDisplayGUIWorkbenchModded; + + private static final Map allBaseBeforeDisplayGUIWorkbenchSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDisplayGUIWorkbenchInferiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIWorkbenchSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDisplayGUIWorkbenchInferiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIWorkbenchSuperiors = new Hashtable(0); + private static final Map allBaseAfterDisplayGUIWorkbenchInferiors = new Hashtable(0); + + public static net.minecraft.entity.item.EntityItem dropOneItem(IServerPlayerAPI target, boolean paramBoolean) + { + net.minecraft.entity.item.EntityItem _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isDropOneItemModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenDropOneItem(ServerPlayerBase 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 beforeDropOneItemHookTypes = new LinkedList(); + private final static List overrideDropOneItemHookTypes = new LinkedList(); + private final static List afterDropOneItemHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeDropOneItemHooks; + private ServerPlayerBase[] overrideDropOneItemHooks; + private ServerPlayerBase[] afterDropOneItemHooks; + + public boolean isDropOneItemModded; + + private static final Map allBaseBeforeDropOneItemSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDropOneItemInferiors = new Hashtable(0); + private static final Map allBaseOverrideDropOneItemSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDropOneItemInferiors = new Hashtable(0); + private static final Map allBaseAfterDropOneItemSuperiors = new Hashtable(0); + private static final Map allBaseAfterDropOneItemInferiors = new Hashtable(0); + + public static net.minecraft.entity.item.EntityItem dropPlayerItem(IServerPlayerAPI target, net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) + { + net.minecraft.entity.item.EntityItem _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isDropPlayerItemModded) + _result = serverPlayerAPI.dropPlayerItem(paramItemStack, paramBoolean); + else + _result = target.localDropPlayerItem(paramItemStack, paramBoolean); + return _result; + } + + private net.minecraft.entity.item.EntityItem dropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) + { + if(beforeDropPlayerItemHooks != null) + for(int i = beforeDropPlayerItemHooks.length - 1; i >= 0 ; i--) + beforeDropPlayerItemHooks[i].beforeDropPlayerItem(paramItemStack, paramBoolean); + + net.minecraft.entity.item.EntityItem _result; + if(overrideDropPlayerItemHooks != null) + _result = overrideDropPlayerItemHooks[overrideDropPlayerItemHooks.length - 1].dropPlayerItem(paramItemStack, paramBoolean); + else + _result = player.localDropPlayerItem(paramItemStack, paramBoolean); + + if(afterDropPlayerItemHooks != null) + for(int i = 0; i < afterDropPlayerItemHooks.length; i++) + afterDropPlayerItemHooks[i].afterDropPlayerItem(paramItemStack, paramBoolean); + + return _result; + } + + protected ServerPlayerBase GetOverwrittenDropPlayerItem(ServerPlayerBase overWriter) + { + if (overrideDropPlayerItemHooks == null) + return overWriter; + + for(int i = 0; i < overrideDropPlayerItemHooks.length; i++) + if(overrideDropPlayerItemHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideDropPlayerItemHooks[i - 1]; + + return overWriter; + } + + private final static List beforeDropPlayerItemHookTypes = new LinkedList(); + private final static List overrideDropPlayerItemHookTypes = new LinkedList(); + private final static List afterDropPlayerItemHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeDropPlayerItemHooks; + private ServerPlayerBase[] overrideDropPlayerItemHooks; + private ServerPlayerBase[] afterDropPlayerItemHooks; + + public boolean isDropPlayerItemModded; + + private static final Map allBaseBeforeDropPlayerItemSuperiors = new Hashtable(0); + private static final Map allBaseBeforeDropPlayerItemInferiors = new Hashtable(0); + private static final Map allBaseOverrideDropPlayerItemSuperiors = new Hashtable(0); + private static final Map allBaseOverrideDropPlayerItemInferiors = new Hashtable(0); + private static final Map allBaseAfterDropPlayerItemSuperiors = new Hashtable(0); + private static final Map allBaseAfterDropPlayerItemInferiors = new Hashtable(0); + + public static void fall(IServerPlayerAPI target, float paramFloat) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isFallModded) + serverPlayerAPI.fall(paramFloat); + else + target.localFall(paramFloat); + } + + private void fall(float paramFloat) + { + if(beforeFallHooks != null) + for(int i = beforeFallHooks.length - 1; i >= 0 ; i--) + beforeFallHooks[i].beforeFall(paramFloat); + + if(overrideFallHooks != null) + overrideFallHooks[overrideFallHooks.length - 1].fall(paramFloat); + else + player.localFall(paramFloat); + + if(afterFallHooks != null) + for(int i = 0; i < afterFallHooks.length; i++) + afterFallHooks[i].afterFall(paramFloat); + + } + + protected ServerPlayerBase GetOverwrittenFall(ServerPlayerBase 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 beforeFallHookTypes = new LinkedList(); + private final static List overrideFallHookTypes = new LinkedList(); + private final static List afterFallHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeFallHooks; + private ServerPlayerBase[] overrideFallHooks; + private ServerPlayerBase[] afterFallHooks; + + public boolean isFallModded; + + private static final Map allBaseBeforeFallSuperiors = new Hashtable(0); + private static final Map allBaseBeforeFallInferiors = new Hashtable(0); + private static final Map allBaseOverrideFallSuperiors = new Hashtable(0); + private static final Map allBaseOverrideFallInferiors = new Hashtable(0); + private static final Map allBaseAfterFallSuperiors = new Hashtable(0); + private static final Map allBaseAfterFallInferiors = new Hashtable(0); + + public static float getAIMoveSpeed(IServerPlayerAPI target) + { + float _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isGetAIMoveSpeedModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenGetAIMoveSpeed(ServerPlayerBase 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 beforeGetAIMoveSpeedHookTypes = new LinkedList(); + private final static List overrideGetAIMoveSpeedHookTypes = new LinkedList(); + private final static List afterGetAIMoveSpeedHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeGetAIMoveSpeedHooks; + private ServerPlayerBase[] overrideGetAIMoveSpeedHooks; + private ServerPlayerBase[] afterGetAIMoveSpeedHooks; + + public boolean isGetAIMoveSpeedModded; + + private static final Map allBaseBeforeGetAIMoveSpeedSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetAIMoveSpeedInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetAIMoveSpeedSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetAIMoveSpeedInferiors = new Hashtable(0); + private static final Map allBaseAfterGetAIMoveSpeedSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetAIMoveSpeedInferiors = new Hashtable(0); + + public static float getCurrentPlayerStrVsBlock(IServerPlayerAPI target, net.minecraft.block.Block paramBlock, boolean paramBoolean) + { + float _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isGetCurrentPlayerStrVsBlockModded) + _result = serverPlayerAPI.getCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + else + _result = target.localGetCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + return _result; + } + + private float getCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean) + { + if(beforeGetCurrentPlayerStrVsBlockHooks != null) + for(int i = beforeGetCurrentPlayerStrVsBlockHooks.length - 1; i >= 0 ; i--) + beforeGetCurrentPlayerStrVsBlockHooks[i].beforeGetCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + + float _result; + if(overrideGetCurrentPlayerStrVsBlockHooks != null) + _result = overrideGetCurrentPlayerStrVsBlockHooks[overrideGetCurrentPlayerStrVsBlockHooks.length - 1].getCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + else + _result = player.localGetCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + + if(afterGetCurrentPlayerStrVsBlockHooks != null) + for(int i = 0; i < afterGetCurrentPlayerStrVsBlockHooks.length; i++) + afterGetCurrentPlayerStrVsBlockHooks[i].afterGetCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + + return _result; + } + + protected ServerPlayerBase GetOverwrittenGetCurrentPlayerStrVsBlock(ServerPlayerBase overWriter) + { + if (overrideGetCurrentPlayerStrVsBlockHooks == null) + return overWriter; + + for(int i = 0; i < overrideGetCurrentPlayerStrVsBlockHooks.length; i++) + if(overrideGetCurrentPlayerStrVsBlockHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideGetCurrentPlayerStrVsBlockHooks[i - 1]; + + return overWriter; + } + + private final static List beforeGetCurrentPlayerStrVsBlockHookTypes = new LinkedList(); + private final static List overrideGetCurrentPlayerStrVsBlockHookTypes = new LinkedList(); + private final static List afterGetCurrentPlayerStrVsBlockHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeGetCurrentPlayerStrVsBlockHooks; + private ServerPlayerBase[] overrideGetCurrentPlayerStrVsBlockHooks; + private ServerPlayerBase[] afterGetCurrentPlayerStrVsBlockHooks; + + public boolean isGetCurrentPlayerStrVsBlockModded; + + private static final Map allBaseBeforeGetCurrentPlayerStrVsBlockSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetCurrentPlayerStrVsBlockInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetCurrentPlayerStrVsBlockSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetCurrentPlayerStrVsBlockInferiors = new Hashtable(0); + private static final Map allBaseAfterGetCurrentPlayerStrVsBlockSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetCurrentPlayerStrVsBlockInferiors = new Hashtable(0); + + public static float getCurrentPlayerStrVsBlockForge(IServerPlayerAPI target, net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt) + { + float _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isGetCurrentPlayerStrVsBlockForgeModded) + _result = serverPlayerAPI.getCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + else + _result = target.localGetCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + return _result; + } + + private float getCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt) + { + if(beforeGetCurrentPlayerStrVsBlockForgeHooks != null) + for(int i = beforeGetCurrentPlayerStrVsBlockForgeHooks.length - 1; i >= 0 ; i--) + beforeGetCurrentPlayerStrVsBlockForgeHooks[i].beforeGetCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + + float _result; + if(overrideGetCurrentPlayerStrVsBlockForgeHooks != null) + _result = overrideGetCurrentPlayerStrVsBlockForgeHooks[overrideGetCurrentPlayerStrVsBlockForgeHooks.length - 1].getCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + else + _result = player.localGetCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + + if(afterGetCurrentPlayerStrVsBlockForgeHooks != null) + for(int i = 0; i < afterGetCurrentPlayerStrVsBlockForgeHooks.length; i++) + afterGetCurrentPlayerStrVsBlockForgeHooks[i].afterGetCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + + return _result; + } + + protected ServerPlayerBase GetOverwrittenGetCurrentPlayerStrVsBlockForge(ServerPlayerBase overWriter) + { + if (overrideGetCurrentPlayerStrVsBlockForgeHooks == null) + return overWriter; + + for(int i = 0; i < overrideGetCurrentPlayerStrVsBlockForgeHooks.length; i++) + if(overrideGetCurrentPlayerStrVsBlockForgeHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideGetCurrentPlayerStrVsBlockForgeHooks[i - 1]; + + return overWriter; + } + + private final static List beforeGetCurrentPlayerStrVsBlockForgeHookTypes = new LinkedList(); + private final static List overrideGetCurrentPlayerStrVsBlockForgeHookTypes = new LinkedList(); + private final static List afterGetCurrentPlayerStrVsBlockForgeHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeGetCurrentPlayerStrVsBlockForgeHooks; + private ServerPlayerBase[] overrideGetCurrentPlayerStrVsBlockForgeHooks; + private ServerPlayerBase[] afterGetCurrentPlayerStrVsBlockForgeHooks; + + public boolean isGetCurrentPlayerStrVsBlockForgeModded; + + private static final Map allBaseBeforeGetCurrentPlayerStrVsBlockForgeSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetCurrentPlayerStrVsBlockForgeInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetCurrentPlayerStrVsBlockForgeSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetCurrentPlayerStrVsBlockForgeInferiors = new Hashtable(0); + private static final Map allBaseAfterGetCurrentPlayerStrVsBlockForgeSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetCurrentPlayerStrVsBlockForgeInferiors = new Hashtable(0); + + public static double getDistanceSq(IServerPlayerAPI target, double paramDouble1, double paramDouble2, double paramDouble3) + { + double _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isGetDistanceSqModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenGetDistanceSq(ServerPlayerBase 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 beforeGetDistanceSqHookTypes = new LinkedList(); + private final static List overrideGetDistanceSqHookTypes = new LinkedList(); + private final static List afterGetDistanceSqHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeGetDistanceSqHooks; + private ServerPlayerBase[] overrideGetDistanceSqHooks; + private ServerPlayerBase[] afterGetDistanceSqHooks; + + public boolean isGetDistanceSqModded; + + private static final Map allBaseBeforeGetDistanceSqSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetDistanceSqInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetDistanceSqSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetDistanceSqInferiors = new Hashtable(0); + private static final Map allBaseAfterGetDistanceSqSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetDistanceSqInferiors = new Hashtable(0); + + public static float getBrightness(IServerPlayerAPI target, float paramFloat) + { + float _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isGetBrightnessModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenGetBrightness(ServerPlayerBase 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 beforeGetBrightnessHookTypes = new LinkedList(); + private final static List overrideGetBrightnessHookTypes = new LinkedList(); + private final static List afterGetBrightnessHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeGetBrightnessHooks; + private ServerPlayerBase[] overrideGetBrightnessHooks; + private ServerPlayerBase[] afterGetBrightnessHooks; + + public boolean isGetBrightnessModded; + + private static final Map allBaseBeforeGetBrightnessSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetBrightnessInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetBrightnessSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetBrightnessInferiors = new Hashtable(0); + private static final Map allBaseAfterGetBrightnessSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetBrightnessInferiors = new Hashtable(0); + + public static float getEyeHeight(IServerPlayerAPI target) + { + float _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isGetEyeHeightModded) + _result = serverPlayerAPI.getEyeHeight(); + else + _result = target.localGetEyeHeight(); + return _result; + } + + private float getEyeHeight() + { + if(beforeGetEyeHeightHooks != null) + for(int i = beforeGetEyeHeightHooks.length - 1; i >= 0 ; i--) + beforeGetEyeHeightHooks[i].beforeGetEyeHeight(); + + float _result; + if(overrideGetEyeHeightHooks != null) + _result = overrideGetEyeHeightHooks[overrideGetEyeHeightHooks.length - 1].getEyeHeight(); + else + _result = player.localGetEyeHeight(); + + if(afterGetEyeHeightHooks != null) + for(int i = 0; i < afterGetEyeHeightHooks.length; i++) + afterGetEyeHeightHooks[i].afterGetEyeHeight(); + + return _result; + } + + protected ServerPlayerBase GetOverwrittenGetEyeHeight(ServerPlayerBase overWriter) + { + if (overrideGetEyeHeightHooks == null) + return overWriter; + + for(int i = 0; i < overrideGetEyeHeightHooks.length; i++) + if(overrideGetEyeHeightHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideGetEyeHeightHooks[i - 1]; + + return overWriter; + } + + private final static List beforeGetEyeHeightHookTypes = new LinkedList(); + private final static List overrideGetEyeHeightHookTypes = new LinkedList(); + private final static List afterGetEyeHeightHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeGetEyeHeightHooks; + private ServerPlayerBase[] overrideGetEyeHeightHooks; + private ServerPlayerBase[] afterGetEyeHeightHooks; + + public boolean isGetEyeHeightModded; + + private static final Map allBaseBeforeGetEyeHeightSuperiors = new Hashtable(0); + private static final Map allBaseBeforeGetEyeHeightInferiors = new Hashtable(0); + private static final Map allBaseOverrideGetEyeHeightSuperiors = new Hashtable(0); + private static final Map allBaseOverrideGetEyeHeightInferiors = new Hashtable(0); + private static final Map allBaseAfterGetEyeHeightSuperiors = new Hashtable(0); + private static final Map allBaseAfterGetEyeHeightInferiors = new Hashtable(0); + + public static void heal(IServerPlayerAPI target, float paramFloat) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isHealModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenHeal(ServerPlayerBase 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 beforeHealHookTypes = new LinkedList(); + private final static List overrideHealHookTypes = new LinkedList(); + private final static List afterHealHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeHealHooks; + private ServerPlayerBase[] overrideHealHooks; + private ServerPlayerBase[] afterHealHooks; + + public boolean isHealModded; + + private static final Map allBaseBeforeHealSuperiors = new Hashtable(0); + private static final Map allBaseBeforeHealInferiors = new Hashtable(0); + private static final Map allBaseOverrideHealSuperiors = new Hashtable(0); + private static final Map allBaseOverrideHealInferiors = new Hashtable(0); + private static final Map allBaseAfterHealSuperiors = new Hashtable(0); + private static final Map allBaseAfterHealInferiors = new Hashtable(0); + + public static boolean isEntityInsideOpaqueBlock(IServerPlayerAPI target) + { + boolean _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isIsEntityInsideOpaqueBlockModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenIsEntityInsideOpaqueBlock(ServerPlayerBase 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 beforeIsEntityInsideOpaqueBlockHookTypes = new LinkedList(); + private final static List overrideIsEntityInsideOpaqueBlockHookTypes = new LinkedList(); + private final static List afterIsEntityInsideOpaqueBlockHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeIsEntityInsideOpaqueBlockHooks; + private ServerPlayerBase[] overrideIsEntityInsideOpaqueBlockHooks; + private ServerPlayerBase[] afterIsEntityInsideOpaqueBlockHooks; + + public boolean isIsEntityInsideOpaqueBlockModded; + + private static final Map allBaseBeforeIsEntityInsideOpaqueBlockSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsEntityInsideOpaqueBlockInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsEntityInsideOpaqueBlockSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsEntityInsideOpaqueBlockInferiors = new Hashtable(0); + private static final Map allBaseAfterIsEntityInsideOpaqueBlockSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsEntityInsideOpaqueBlockInferiors = new Hashtable(0); + + public static boolean isInWater(IServerPlayerAPI target) + { + boolean _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isIsInWaterModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenIsInWater(ServerPlayerBase 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 beforeIsInWaterHookTypes = new LinkedList(); + private final static List overrideIsInWaterHookTypes = new LinkedList(); + private final static List afterIsInWaterHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeIsInWaterHooks; + private ServerPlayerBase[] overrideIsInWaterHooks; + private ServerPlayerBase[] afterIsInWaterHooks; + + public boolean isIsInWaterModded; + + private static final Map allBaseBeforeIsInWaterSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsInWaterInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsInWaterSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsInWaterInferiors = new Hashtable(0); + private static final Map allBaseAfterIsInWaterSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsInWaterInferiors = new Hashtable(0); + + public static boolean isInsideOfMaterial(IServerPlayerAPI target, net.minecraft.block.material.Material paramMaterial) + { + boolean _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isIsInsideOfMaterialModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenIsInsideOfMaterial(ServerPlayerBase 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 beforeIsInsideOfMaterialHookTypes = new LinkedList(); + private final static List overrideIsInsideOfMaterialHookTypes = new LinkedList(); + private final static List afterIsInsideOfMaterialHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeIsInsideOfMaterialHooks; + private ServerPlayerBase[] overrideIsInsideOfMaterialHooks; + private ServerPlayerBase[] afterIsInsideOfMaterialHooks; + + public boolean isIsInsideOfMaterialModded; + + private static final Map allBaseBeforeIsInsideOfMaterialSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsInsideOfMaterialInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsInsideOfMaterialSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsInsideOfMaterialInferiors = new Hashtable(0); + private static final Map allBaseAfterIsInsideOfMaterialSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsInsideOfMaterialInferiors = new Hashtable(0); + + public static boolean isOnLadder(IServerPlayerAPI target) + { + boolean _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isIsOnLadderModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenIsOnLadder(ServerPlayerBase 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 beforeIsOnLadderHookTypes = new LinkedList(); + private final static List overrideIsOnLadderHookTypes = new LinkedList(); + private final static List afterIsOnLadderHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeIsOnLadderHooks; + private ServerPlayerBase[] overrideIsOnLadderHooks; + private ServerPlayerBase[] afterIsOnLadderHooks; + + public boolean isIsOnLadderModded; + + private static final Map allBaseBeforeIsOnLadderSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsOnLadderInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsOnLadderSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsOnLadderInferiors = new Hashtable(0); + private static final Map allBaseAfterIsOnLadderSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsOnLadderInferiors = new Hashtable(0); + + public static boolean isPlayerSleeping(IServerPlayerAPI target) + { + boolean _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isIsPlayerSleepingModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenIsPlayerSleeping(ServerPlayerBase 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 beforeIsPlayerSleepingHookTypes = new LinkedList(); + private final static List overrideIsPlayerSleepingHookTypes = new LinkedList(); + private final static List afterIsPlayerSleepingHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeIsPlayerSleepingHooks; + private ServerPlayerBase[] overrideIsPlayerSleepingHooks; + private ServerPlayerBase[] afterIsPlayerSleepingHooks; + + public boolean isIsPlayerSleepingModded; + + private static final Map allBaseBeforeIsPlayerSleepingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsPlayerSleepingInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsPlayerSleepingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsPlayerSleepingInferiors = new Hashtable(0); + private static final Map allBaseAfterIsPlayerSleepingSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsPlayerSleepingInferiors = new Hashtable(0); + + public static boolean isSneaking(IServerPlayerAPI target) + { + boolean _result; + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isIsSneakingModded) + _result = serverPlayerAPI.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 ServerPlayerBase GetOverwrittenIsSneaking(ServerPlayerBase 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 beforeIsSneakingHookTypes = new LinkedList(); + private final static List overrideIsSneakingHookTypes = new LinkedList(); + private final static List afterIsSneakingHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeIsSneakingHooks; + private ServerPlayerBase[] overrideIsSneakingHooks; + private ServerPlayerBase[] afterIsSneakingHooks; + + public boolean isIsSneakingModded; + + private static final Map allBaseBeforeIsSneakingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeIsSneakingInferiors = new Hashtable(0); + private static final Map allBaseOverrideIsSneakingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideIsSneakingInferiors = new Hashtable(0); + private static final Map allBaseAfterIsSneakingSuperiors = new Hashtable(0); + private static final Map allBaseAfterIsSneakingInferiors = new Hashtable(0); + + public static void jump(IServerPlayerAPI target) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isJumpModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenJump(ServerPlayerBase 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 beforeJumpHookTypes = new LinkedList(); + private final static List overrideJumpHookTypes = new LinkedList(); + private final static List afterJumpHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeJumpHooks; + private ServerPlayerBase[] overrideJumpHooks; + private ServerPlayerBase[] afterJumpHooks; + + public boolean isJumpModded; + + private static final Map allBaseBeforeJumpSuperiors = new Hashtable(0); + private static final Map allBaseBeforeJumpInferiors = new Hashtable(0); + private static final Map allBaseOverrideJumpSuperiors = new Hashtable(0); + private static final Map allBaseOverrideJumpInferiors = new Hashtable(0); + private static final Map allBaseAfterJumpSuperiors = new Hashtable(0); + private static final Map allBaseAfterJumpInferiors = new Hashtable(0); + + public static void knockBack(IServerPlayerAPI target, net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isKnockBackModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenKnockBack(ServerPlayerBase 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 beforeKnockBackHookTypes = new LinkedList(); + private final static List overrideKnockBackHookTypes = new LinkedList(); + private final static List afterKnockBackHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeKnockBackHooks; + private ServerPlayerBase[] overrideKnockBackHooks; + private ServerPlayerBase[] afterKnockBackHooks; + + public boolean isKnockBackModded; + + private static final Map allBaseBeforeKnockBackSuperiors = new Hashtable(0); + private static final Map allBaseBeforeKnockBackInferiors = new Hashtable(0); + private static final Map allBaseOverrideKnockBackSuperiors = new Hashtable(0); + private static final Map allBaseOverrideKnockBackInferiors = new Hashtable(0); + private static final Map allBaseAfterKnockBackSuperiors = new Hashtable(0); + private static final Map allBaseAfterKnockBackInferiors = new Hashtable(0); + + public static void mountEntity(IServerPlayerAPI target, net.minecraft.entity.Entity paramEntity) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isMountEntityModded) + serverPlayerAPI.mountEntity(paramEntity); + else + target.localMountEntity(paramEntity); + } + + private void mountEntity(net.minecraft.entity.Entity paramEntity) + { + if(beforeMountEntityHooks != null) + for(int i = beforeMountEntityHooks.length - 1; i >= 0 ; i--) + beforeMountEntityHooks[i].beforeMountEntity(paramEntity); + + if(overrideMountEntityHooks != null) + overrideMountEntityHooks[overrideMountEntityHooks.length - 1].mountEntity(paramEntity); + else + player.localMountEntity(paramEntity); + + if(afterMountEntityHooks != null) + for(int i = 0; i < afterMountEntityHooks.length; i++) + afterMountEntityHooks[i].afterMountEntity(paramEntity); + + } + + protected ServerPlayerBase GetOverwrittenMountEntity(ServerPlayerBase overWriter) + { + if (overrideMountEntityHooks == null) + return overWriter; + + for(int i = 0; i < overrideMountEntityHooks.length; i++) + if(overrideMountEntityHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideMountEntityHooks[i - 1]; + + return overWriter; + } + + private final static List beforeMountEntityHookTypes = new LinkedList(); + private final static List overrideMountEntityHookTypes = new LinkedList(); + private final static List afterMountEntityHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeMountEntityHooks; + private ServerPlayerBase[] overrideMountEntityHooks; + private ServerPlayerBase[] afterMountEntityHooks; + + public boolean isMountEntityModded; + + private static final Map allBaseBeforeMountEntitySuperiors = new Hashtable(0); + private static final Map allBaseBeforeMountEntityInferiors = new Hashtable(0); + private static final Map allBaseOverrideMountEntitySuperiors = new Hashtable(0); + private static final Map allBaseOverrideMountEntityInferiors = new Hashtable(0); + private static final Map allBaseAfterMountEntitySuperiors = new Hashtable(0); + private static final Map allBaseAfterMountEntityInferiors = new Hashtable(0); + + public static void moveEntity(IServerPlayerAPI target, double paramDouble1, double paramDouble2, double paramDouble3) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isMoveEntityModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenMoveEntity(ServerPlayerBase 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 beforeMoveEntityHookTypes = new LinkedList(); + private final static List overrideMoveEntityHookTypes = new LinkedList(); + private final static List afterMoveEntityHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeMoveEntityHooks; + private ServerPlayerBase[] overrideMoveEntityHooks; + private ServerPlayerBase[] afterMoveEntityHooks; + + public boolean isMoveEntityModded; + + private static final Map allBaseBeforeMoveEntitySuperiors = new Hashtable(0); + private static final Map allBaseBeforeMoveEntityInferiors = new Hashtable(0); + private static final Map allBaseOverrideMoveEntitySuperiors = new Hashtable(0); + private static final Map allBaseOverrideMoveEntityInferiors = new Hashtable(0); + private static final Map allBaseAfterMoveEntitySuperiors = new Hashtable(0); + private static final Map allBaseAfterMoveEntityInferiors = new Hashtable(0); + + public static void moveEntityWithHeading(IServerPlayerAPI target, float paramFloat1, float paramFloat2) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isMoveEntityWithHeadingModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenMoveEntityWithHeading(ServerPlayerBase 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 beforeMoveEntityWithHeadingHookTypes = new LinkedList(); + private final static List overrideMoveEntityWithHeadingHookTypes = new LinkedList(); + private final static List afterMoveEntityWithHeadingHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeMoveEntityWithHeadingHooks; + private ServerPlayerBase[] overrideMoveEntityWithHeadingHooks; + private ServerPlayerBase[] afterMoveEntityWithHeadingHooks; + + public boolean isMoveEntityWithHeadingModded; + + private static final Map allBaseBeforeMoveEntityWithHeadingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeMoveEntityWithHeadingInferiors = new Hashtable(0); + private static final Map allBaseOverrideMoveEntityWithHeadingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideMoveEntityWithHeadingInferiors = new Hashtable(0); + private static final Map allBaseAfterMoveEntityWithHeadingSuperiors = new Hashtable(0); + private static final Map allBaseAfterMoveEntityWithHeadingInferiors = new Hashtable(0); + + public static void moveFlying(IServerPlayerAPI target, float paramFloat1, float paramFloat2, float paramFloat3) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isMoveFlyingModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenMoveFlying(ServerPlayerBase 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 beforeMoveFlyingHookTypes = new LinkedList(); + private final static List overrideMoveFlyingHookTypes = new LinkedList(); + private final static List afterMoveFlyingHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeMoveFlyingHooks; + private ServerPlayerBase[] overrideMoveFlyingHooks; + private ServerPlayerBase[] afterMoveFlyingHooks; + + public boolean isMoveFlyingModded; + + private static final Map allBaseBeforeMoveFlyingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeMoveFlyingInferiors = new Hashtable(0); + private static final Map allBaseOverrideMoveFlyingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideMoveFlyingInferiors = new Hashtable(0); + private static final Map allBaseAfterMoveFlyingSuperiors = new Hashtable(0); + private static final Map allBaseAfterMoveFlyingInferiors = new Hashtable(0); + + public static void onDeath(IServerPlayerAPI target, net.minecraft.util.DamageSource paramDamageSource) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isOnDeathModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenOnDeath(ServerPlayerBase 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 beforeOnDeathHookTypes = new LinkedList(); + private final static List overrideOnDeathHookTypes = new LinkedList(); + private final static List afterOnDeathHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeOnDeathHooks; + private ServerPlayerBase[] overrideOnDeathHooks; + private ServerPlayerBase[] afterOnDeathHooks; + + public boolean isOnDeathModded; + + private static final Map allBaseBeforeOnDeathSuperiors = new Hashtable(0); + private static final Map allBaseBeforeOnDeathInferiors = new Hashtable(0); + private static final Map allBaseOverrideOnDeathSuperiors = new Hashtable(0); + private static final Map allBaseOverrideOnDeathInferiors = new Hashtable(0); + private static final Map allBaseAfterOnDeathSuperiors = new Hashtable(0); + private static final Map allBaseAfterOnDeathInferiors = new Hashtable(0); + + public static void onLivingUpdate(IServerPlayerAPI target) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isOnLivingUpdateModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenOnLivingUpdate(ServerPlayerBase 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 beforeOnLivingUpdateHookTypes = new LinkedList(); + private final static List overrideOnLivingUpdateHookTypes = new LinkedList(); + private final static List afterOnLivingUpdateHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeOnLivingUpdateHooks; + private ServerPlayerBase[] overrideOnLivingUpdateHooks; + private ServerPlayerBase[] afterOnLivingUpdateHooks; + + public boolean isOnLivingUpdateModded; + + private static final Map allBaseBeforeOnLivingUpdateSuperiors = new Hashtable(0); + private static final Map allBaseBeforeOnLivingUpdateInferiors = new Hashtable(0); + private static final Map allBaseOverrideOnLivingUpdateSuperiors = new Hashtable(0); + private static final Map allBaseOverrideOnLivingUpdateInferiors = new Hashtable(0); + private static final Map allBaseAfterOnLivingUpdateSuperiors = new Hashtable(0); + private static final Map allBaseAfterOnLivingUpdateInferiors = new Hashtable(0); + + public static void onKillEntity(IServerPlayerAPI target, net.minecraft.entity.EntityLivingBase paramEntityLivingBase) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isOnKillEntityModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenOnKillEntity(ServerPlayerBase 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 beforeOnKillEntityHookTypes = new LinkedList(); + private final static List overrideOnKillEntityHookTypes = new LinkedList(); + private final static List afterOnKillEntityHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeOnKillEntityHooks; + private ServerPlayerBase[] overrideOnKillEntityHooks; + private ServerPlayerBase[] afterOnKillEntityHooks; + + public boolean isOnKillEntityModded; + + private static final Map allBaseBeforeOnKillEntitySuperiors = new Hashtable(0); + private static final Map allBaseBeforeOnKillEntityInferiors = new Hashtable(0); + private static final Map allBaseOverrideOnKillEntitySuperiors = new Hashtable(0); + private static final Map allBaseOverrideOnKillEntityInferiors = new Hashtable(0); + private static final Map allBaseAfterOnKillEntitySuperiors = new Hashtable(0); + private static final Map allBaseAfterOnKillEntityInferiors = new Hashtable(0); + + public static void onStruckByLightning(IServerPlayerAPI target, net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isOnStruckByLightningModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenOnStruckByLightning(ServerPlayerBase 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 beforeOnStruckByLightningHookTypes = new LinkedList(); + private final static List overrideOnStruckByLightningHookTypes = new LinkedList(); + private final static List afterOnStruckByLightningHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeOnStruckByLightningHooks; + private ServerPlayerBase[] overrideOnStruckByLightningHooks; + private ServerPlayerBase[] afterOnStruckByLightningHooks; + + public boolean isOnStruckByLightningModded; + + private static final Map allBaseBeforeOnStruckByLightningSuperiors = new Hashtable(0); + private static final Map allBaseBeforeOnStruckByLightningInferiors = new Hashtable(0); + private static final Map allBaseOverrideOnStruckByLightningSuperiors = new Hashtable(0); + private static final Map allBaseOverrideOnStruckByLightningInferiors = new Hashtable(0); + private static final Map allBaseAfterOnStruckByLightningSuperiors = new Hashtable(0); + private static final Map allBaseAfterOnStruckByLightningInferiors = new Hashtable(0); + + public static void onUpdate(IServerPlayerAPI target) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isOnUpdateModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenOnUpdate(ServerPlayerBase 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 beforeOnUpdateHookTypes = new LinkedList(); + private final static List overrideOnUpdateHookTypes = new LinkedList(); + private final static List afterOnUpdateHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeOnUpdateHooks; + private ServerPlayerBase[] overrideOnUpdateHooks; + private ServerPlayerBase[] afterOnUpdateHooks; + + public boolean isOnUpdateModded; + + private static final Map allBaseBeforeOnUpdateSuperiors = new Hashtable(0); + private static final Map allBaseBeforeOnUpdateInferiors = new Hashtable(0); + private static final Map allBaseOverrideOnUpdateSuperiors = new Hashtable(0); + private static final Map allBaseOverrideOnUpdateInferiors = new Hashtable(0); + private static final Map allBaseAfterOnUpdateSuperiors = new Hashtable(0); + private static final Map allBaseAfterOnUpdateInferiors = new Hashtable(0); + + public static void onUpdateEntity(IServerPlayerAPI target) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isOnUpdateEntityModded) + serverPlayerAPI.onUpdateEntity(); + else + target.localOnUpdateEntity(); + } + + private void onUpdateEntity() + { + if(beforeOnUpdateEntityHooks != null) + for(int i = beforeOnUpdateEntityHooks.length - 1; i >= 0 ; i--) + beforeOnUpdateEntityHooks[i].beforeOnUpdateEntity(); + + if(overrideOnUpdateEntityHooks != null) + overrideOnUpdateEntityHooks[overrideOnUpdateEntityHooks.length - 1].onUpdateEntity(); + else + player.localOnUpdateEntity(); + + if(afterOnUpdateEntityHooks != null) + for(int i = 0; i < afterOnUpdateEntityHooks.length; i++) + afterOnUpdateEntityHooks[i].afterOnUpdateEntity(); + + } + + protected ServerPlayerBase GetOverwrittenOnUpdateEntity(ServerPlayerBase overWriter) + { + if (overrideOnUpdateEntityHooks == null) + return overWriter; + + for(int i = 0; i < overrideOnUpdateEntityHooks.length; i++) + if(overrideOnUpdateEntityHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideOnUpdateEntityHooks[i - 1]; + + return overWriter; + } + + private final static List beforeOnUpdateEntityHookTypes = new LinkedList(); + private final static List overrideOnUpdateEntityHookTypes = new LinkedList(); + private final static List afterOnUpdateEntityHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeOnUpdateEntityHooks; + private ServerPlayerBase[] overrideOnUpdateEntityHooks; + private ServerPlayerBase[] afterOnUpdateEntityHooks; + + public boolean isOnUpdateEntityModded; + + private static final Map allBaseBeforeOnUpdateEntitySuperiors = new Hashtable(0); + private static final Map allBaseBeforeOnUpdateEntityInferiors = new Hashtable(0); + private static final Map allBaseOverrideOnUpdateEntitySuperiors = new Hashtable(0); + private static final Map allBaseOverrideOnUpdateEntityInferiors = new Hashtable(0); + private static final Map allBaseAfterOnUpdateEntitySuperiors = new Hashtable(0); + private static final Map allBaseAfterOnUpdateEntityInferiors = new Hashtable(0); + + public static void readEntityFromNBT(IServerPlayerAPI target, net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isReadEntityFromNBTModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenReadEntityFromNBT(ServerPlayerBase 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 beforeReadEntityFromNBTHookTypes = new LinkedList(); + private final static List overrideReadEntityFromNBTHookTypes = new LinkedList(); + private final static List afterReadEntityFromNBTHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeReadEntityFromNBTHooks; + private ServerPlayerBase[] overrideReadEntityFromNBTHooks; + private ServerPlayerBase[] afterReadEntityFromNBTHooks; + + public boolean isReadEntityFromNBTModded; + + private static final Map allBaseBeforeReadEntityFromNBTSuperiors = new Hashtable(0); + private static final Map allBaseBeforeReadEntityFromNBTInferiors = new Hashtable(0); + private static final Map allBaseOverrideReadEntityFromNBTSuperiors = new Hashtable(0); + private static final Map allBaseOverrideReadEntityFromNBTInferiors = new Hashtable(0); + private static final Map allBaseAfterReadEntityFromNBTSuperiors = new Hashtable(0); + private static final Map allBaseAfterReadEntityFromNBTInferiors = new Hashtable(0); + + public static void setDead(IServerPlayerAPI target) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isSetDeadModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenSetDead(ServerPlayerBase 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 beforeSetDeadHookTypes = new LinkedList(); + private final static List overrideSetDeadHookTypes = new LinkedList(); + private final static List afterSetDeadHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeSetDeadHooks; + private ServerPlayerBase[] overrideSetDeadHooks; + private ServerPlayerBase[] afterSetDeadHooks; + + public boolean isSetDeadModded; + + private static final Map allBaseBeforeSetDeadSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSetDeadInferiors = new Hashtable(0); + private static final Map allBaseOverrideSetDeadSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSetDeadInferiors = new Hashtable(0); + private static final Map allBaseAfterSetDeadSuperiors = new Hashtable(0); + private static final Map allBaseAfterSetDeadInferiors = new Hashtable(0); + + public static void setEntityActionState(IServerPlayerAPI target, float paramFloat1, float paramFloat2, boolean paramBoolean1, boolean paramBoolean2) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isSetEntityActionStateModded) + serverPlayerAPI.setEntityActionState(paramFloat1, paramFloat2, paramBoolean1, paramBoolean2); + else + target.localSetEntityActionState(paramFloat1, paramFloat2, paramBoolean1, paramBoolean2); + } + + private void setEntityActionState(float paramFloat1, float paramFloat2, boolean paramBoolean1, boolean paramBoolean2) + { + if(beforeSetEntityActionStateHooks != null) + for(int i = beforeSetEntityActionStateHooks.length - 1; i >= 0 ; i--) + beforeSetEntityActionStateHooks[i].beforeSetEntityActionState(paramFloat1, paramFloat2, paramBoolean1, paramBoolean2); + + if(overrideSetEntityActionStateHooks != null) + overrideSetEntityActionStateHooks[overrideSetEntityActionStateHooks.length - 1].setEntityActionState(paramFloat1, paramFloat2, paramBoolean1, paramBoolean2); + else + player.localSetEntityActionState(paramFloat1, paramFloat2, paramBoolean1, paramBoolean2); + + if(afterSetEntityActionStateHooks != null) + for(int i = 0; i < afterSetEntityActionStateHooks.length; i++) + afterSetEntityActionStateHooks[i].afterSetEntityActionState(paramFloat1, paramFloat2, paramBoolean1, paramBoolean2); + + } + + protected ServerPlayerBase GetOverwrittenSetEntityActionState(ServerPlayerBase overWriter) + { + if (overrideSetEntityActionStateHooks == null) + return overWriter; + + for(int i = 0; i < overrideSetEntityActionStateHooks.length; i++) + if(overrideSetEntityActionStateHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideSetEntityActionStateHooks[i - 1]; + + return overWriter; + } + + private final static List beforeSetEntityActionStateHookTypes = new LinkedList(); + private final static List overrideSetEntityActionStateHookTypes = new LinkedList(); + private final static List afterSetEntityActionStateHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeSetEntityActionStateHooks; + private ServerPlayerBase[] overrideSetEntityActionStateHooks; + private ServerPlayerBase[] afterSetEntityActionStateHooks; + + public boolean isSetEntityActionStateModded; + + private static final Map allBaseBeforeSetEntityActionStateSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSetEntityActionStateInferiors = new Hashtable(0); + private static final Map allBaseOverrideSetEntityActionStateSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSetEntityActionStateInferiors = new Hashtable(0); + private static final Map allBaseAfterSetEntityActionStateSuperiors = new Hashtable(0); + private static final Map allBaseAfterSetEntityActionStateInferiors = new Hashtable(0); + + public static void setPosition(IServerPlayerAPI target, double paramDouble1, double paramDouble2, double paramDouble3) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isSetPositionModded) + serverPlayerAPI.setPosition(paramDouble1, paramDouble2, paramDouble3); + else + target.localSetPosition(paramDouble1, paramDouble2, paramDouble3); + } + + private void setPosition(double paramDouble1, double paramDouble2, double paramDouble3) + { + if(beforeSetPositionHooks != null) + for(int i = beforeSetPositionHooks.length - 1; i >= 0 ; i--) + beforeSetPositionHooks[i].beforeSetPosition(paramDouble1, paramDouble2, paramDouble3); + + if(overrideSetPositionHooks != null) + overrideSetPositionHooks[overrideSetPositionHooks.length - 1].setPosition(paramDouble1, paramDouble2, paramDouble3); + else + player.localSetPosition(paramDouble1, paramDouble2, paramDouble3); + + if(afterSetPositionHooks != null) + for(int i = 0; i < afterSetPositionHooks.length; i++) + afterSetPositionHooks[i].afterSetPosition(paramDouble1, paramDouble2, paramDouble3); + + } + + protected ServerPlayerBase GetOverwrittenSetPosition(ServerPlayerBase overWriter) + { + if (overrideSetPositionHooks == null) + return overWriter; + + for(int i = 0; i < overrideSetPositionHooks.length; i++) + if(overrideSetPositionHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideSetPositionHooks[i - 1]; + + return overWriter; + } + + private final static List beforeSetPositionHookTypes = new LinkedList(); + private final static List overrideSetPositionHookTypes = new LinkedList(); + private final static List afterSetPositionHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeSetPositionHooks; + private ServerPlayerBase[] overrideSetPositionHooks; + private ServerPlayerBase[] afterSetPositionHooks; + + public boolean isSetPositionModded; + + private static final Map allBaseBeforeSetPositionSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSetPositionInferiors = new Hashtable(0); + private static final Map allBaseOverrideSetPositionSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSetPositionInferiors = new Hashtable(0); + private static final Map allBaseAfterSetPositionSuperiors = new Hashtable(0); + private static final Map allBaseAfterSetPositionInferiors = new Hashtable(0); + + public static void setSneaking(IServerPlayerAPI target, boolean paramBoolean) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isSetSneakingModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenSetSneaking(ServerPlayerBase 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 beforeSetSneakingHookTypes = new LinkedList(); + private final static List overrideSetSneakingHookTypes = new LinkedList(); + private final static List afterSetSneakingHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeSetSneakingHooks; + private ServerPlayerBase[] overrideSetSneakingHooks; + private ServerPlayerBase[] afterSetSneakingHooks; + + public boolean isSetSneakingModded; + + private static final Map allBaseBeforeSetSneakingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSetSneakingInferiors = new Hashtable(0); + private static final Map allBaseOverrideSetSneakingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSetSneakingInferiors = new Hashtable(0); + private static final Map allBaseAfterSetSneakingSuperiors = new Hashtable(0); + private static final Map allBaseAfterSetSneakingInferiors = new Hashtable(0); + + public static void setSprinting(IServerPlayerAPI target, boolean paramBoolean) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isSetSprintingModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenSetSprinting(ServerPlayerBase 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 beforeSetSprintingHookTypes = new LinkedList(); + private final static List overrideSetSprintingHookTypes = new LinkedList(); + private final static List afterSetSprintingHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeSetSprintingHooks; + private ServerPlayerBase[] overrideSetSprintingHooks; + private ServerPlayerBase[] afterSetSprintingHooks; + + public boolean isSetSprintingModded; + + private static final Map allBaseBeforeSetSprintingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSetSprintingInferiors = new Hashtable(0); + private static final Map allBaseOverrideSetSprintingSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSetSprintingInferiors = new Hashtable(0); + private static final Map allBaseAfterSetSprintingSuperiors = new Hashtable(0); + private static final Map allBaseAfterSetSprintingInferiors = new Hashtable(0); + + public static void swingItem(IServerPlayerAPI target) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isSwingItemModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenSwingItem(ServerPlayerBase 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 beforeSwingItemHookTypes = new LinkedList(); + private final static List overrideSwingItemHookTypes = new LinkedList(); + private final static List afterSwingItemHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeSwingItemHooks; + private ServerPlayerBase[] overrideSwingItemHooks; + private ServerPlayerBase[] afterSwingItemHooks; + + public boolean isSwingItemModded; + + private static final Map allBaseBeforeSwingItemSuperiors = new Hashtable(0); + private static final Map allBaseBeforeSwingItemInferiors = new Hashtable(0); + private static final Map allBaseOverrideSwingItemSuperiors = new Hashtable(0); + private static final Map allBaseOverrideSwingItemInferiors = new Hashtable(0); + private static final Map allBaseAfterSwingItemSuperiors = new Hashtable(0); + private static final Map allBaseAfterSwingItemInferiors = new Hashtable(0); + + public static void updateEntityActionState(IServerPlayerAPI target) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isUpdateEntityActionStateModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenUpdateEntityActionState(ServerPlayerBase 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 beforeUpdateEntityActionStateHookTypes = new LinkedList(); + private final static List overrideUpdateEntityActionStateHookTypes = new LinkedList(); + private final static List afterUpdateEntityActionStateHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeUpdateEntityActionStateHooks; + private ServerPlayerBase[] overrideUpdateEntityActionStateHooks; + private ServerPlayerBase[] afterUpdateEntityActionStateHooks; + + public boolean isUpdateEntityActionStateModded; + + private static final Map allBaseBeforeUpdateEntityActionStateSuperiors = new Hashtable(0); + private static final Map allBaseBeforeUpdateEntityActionStateInferiors = new Hashtable(0); + private static final Map allBaseOverrideUpdateEntityActionStateSuperiors = new Hashtable(0); + private static final Map allBaseOverrideUpdateEntityActionStateInferiors = new Hashtable(0); + private static final Map allBaseAfterUpdateEntityActionStateSuperiors = new Hashtable(0); + private static final Map allBaseAfterUpdateEntityActionStateInferiors = new Hashtable(0); + + public static void updatePotionEffects(IServerPlayerAPI target) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isUpdatePotionEffectsModded) + serverPlayerAPI.updatePotionEffects(); + else + target.localUpdatePotionEffects(); + } + + private void updatePotionEffects() + { + if(beforeUpdatePotionEffectsHooks != null) + for(int i = beforeUpdatePotionEffectsHooks.length - 1; i >= 0 ; i--) + beforeUpdatePotionEffectsHooks[i].beforeUpdatePotionEffects(); + + if(overrideUpdatePotionEffectsHooks != null) + overrideUpdatePotionEffectsHooks[overrideUpdatePotionEffectsHooks.length - 1].updatePotionEffects(); + else + player.localUpdatePotionEffects(); + + if(afterUpdatePotionEffectsHooks != null) + for(int i = 0; i < afterUpdatePotionEffectsHooks.length; i++) + afterUpdatePotionEffectsHooks[i].afterUpdatePotionEffects(); + + } + + protected ServerPlayerBase GetOverwrittenUpdatePotionEffects(ServerPlayerBase overWriter) + { + if (overrideUpdatePotionEffectsHooks == null) + return overWriter; + + for(int i = 0; i < overrideUpdatePotionEffectsHooks.length; i++) + if(overrideUpdatePotionEffectsHooks[i] == overWriter) + if(i == 0) + return null; + else + return overrideUpdatePotionEffectsHooks[i - 1]; + + return overWriter; + } + + private final static List beforeUpdatePotionEffectsHookTypes = new LinkedList(); + private final static List overrideUpdatePotionEffectsHookTypes = new LinkedList(); + private final static List afterUpdatePotionEffectsHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeUpdatePotionEffectsHooks; + private ServerPlayerBase[] overrideUpdatePotionEffectsHooks; + private ServerPlayerBase[] afterUpdatePotionEffectsHooks; + + public boolean isUpdatePotionEffectsModded; + + private static final Map allBaseBeforeUpdatePotionEffectsSuperiors = new Hashtable(0); + private static final Map allBaseBeforeUpdatePotionEffectsInferiors = new Hashtable(0); + private static final Map allBaseOverrideUpdatePotionEffectsSuperiors = new Hashtable(0); + private static final Map allBaseOverrideUpdatePotionEffectsInferiors = new Hashtable(0); + private static final Map allBaseAfterUpdatePotionEffectsSuperiors = new Hashtable(0); + private static final Map allBaseAfterUpdatePotionEffectsInferiors = new Hashtable(0); + + public static void updateRidden(IServerPlayerAPI target) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isUpdateRiddenModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenUpdateRidden(ServerPlayerBase 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 beforeUpdateRiddenHookTypes = new LinkedList(); + private final static List overrideUpdateRiddenHookTypes = new LinkedList(); + private final static List afterUpdateRiddenHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeUpdateRiddenHooks; + private ServerPlayerBase[] overrideUpdateRiddenHooks; + private ServerPlayerBase[] afterUpdateRiddenHooks; + + public boolean isUpdateRiddenModded; + + private static final Map allBaseBeforeUpdateRiddenSuperiors = new Hashtable(0); + private static final Map allBaseBeforeUpdateRiddenInferiors = new Hashtable(0); + private static final Map allBaseOverrideUpdateRiddenSuperiors = new Hashtable(0); + private static final Map allBaseOverrideUpdateRiddenInferiors = new Hashtable(0); + private static final Map allBaseAfterUpdateRiddenSuperiors = new Hashtable(0); + private static final Map allBaseAfterUpdateRiddenInferiors = new Hashtable(0); + + public static void wakeUpPlayer(IServerPlayerAPI target, boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isWakeUpPlayerModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenWakeUpPlayer(ServerPlayerBase 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 beforeWakeUpPlayerHookTypes = new LinkedList(); + private final static List overrideWakeUpPlayerHookTypes = new LinkedList(); + private final static List afterWakeUpPlayerHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeWakeUpPlayerHooks; + private ServerPlayerBase[] overrideWakeUpPlayerHooks; + private ServerPlayerBase[] afterWakeUpPlayerHooks; + + public boolean isWakeUpPlayerModded; + + private static final Map allBaseBeforeWakeUpPlayerSuperiors = new Hashtable(0); + private static final Map allBaseBeforeWakeUpPlayerInferiors = new Hashtable(0); + private static final Map allBaseOverrideWakeUpPlayerSuperiors = new Hashtable(0); + private static final Map allBaseOverrideWakeUpPlayerInferiors = new Hashtable(0); + private static final Map allBaseAfterWakeUpPlayerSuperiors = new Hashtable(0); + private static final Map allBaseAfterWakeUpPlayerInferiors = new Hashtable(0); + + public static void writeEntityToNBT(IServerPlayerAPI target, net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); + if(serverPlayerAPI != null && serverPlayerAPI.isWriteEntityToNBTModded) + serverPlayerAPI.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 ServerPlayerBase GetOverwrittenWriteEntityToNBT(ServerPlayerBase 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 beforeWriteEntityToNBTHookTypes = new LinkedList(); + private final static List overrideWriteEntityToNBTHookTypes = new LinkedList(); + private final static List afterWriteEntityToNBTHookTypes = new LinkedList(); + + private ServerPlayerBase[] beforeWriteEntityToNBTHooks; + private ServerPlayerBase[] overrideWriteEntityToNBTHooks; + private ServerPlayerBase[] afterWriteEntityToNBTHooks; + + public boolean isWriteEntityToNBTModded; + + private static final Map allBaseBeforeWriteEntityToNBTSuperiors = new Hashtable(0); + private static final Map allBaseBeforeWriteEntityToNBTInferiors = new Hashtable(0); + private static final Map allBaseOverrideWriteEntityToNBTSuperiors = new Hashtable(0); + private static final Map allBaseOverrideWriteEntityToNBTInferiors = new Hashtable(0); + private static final Map allBaseAfterWriteEntityToNBTSuperiors = new Hashtable(0); + private static final Map allBaseAfterWriteEntityToNBTInferiors = new Hashtable(0); + + + protected final IServerPlayerAPI player; + + private final static Set keys = new HashSet(); + private final static Map keysToVirtualIds = new HashMap(); + private final static Set> dynamicTypes = new HashSet>(); + + private final static Map, Map> virtualDynamicHookMethods = new HashMap, Map>(); + + private final static Map, Map> beforeDynamicHookMethods = new HashMap, Map>(); + private final static Map, Map> overrideDynamicHookMethods = new HashMap, Map>(); + private final static Map, Map> afterDynamicHookMethods = new HashMap, Map>(); + + private final static List beforeLocalConstructingHookTypes = new LinkedList(); + private final static List afterLocalConstructingHookTypes = new LinkedList(); + + private static final Map> beforeDynamicHookTypes = new Hashtable>(0); + private static final Map> overrideDynamicHookTypes = new Hashtable>(0); + private static final Map> afterDynamicHookTypes = new Hashtable>(0); + + private ServerPlayerBase[] beforeLocalConstructingHooks; + private ServerPlayerBase[] afterLocalConstructingHooks; + + private final Map baseObjectsToId = new Hashtable(); + private final Map allBaseObjects = new Hashtable(); + private final Set unmodifiableAllBaseIds = Collections.unmodifiableSet(allBaseObjects.keySet()); + + private static final Map> allBaseConstructors = new Hashtable>(); + private static final Set unmodifiableAllIds = Collections.unmodifiableSet(allBaseConstructors.keySet()); + + private static final Map allBaseBeforeLocalConstructingSuperiors = new Hashtable(0); + private static final Map allBaseBeforeLocalConstructingInferiors = new Hashtable(0); + private static final Map allBaseAfterLocalConstructingSuperiors = new Hashtable(0); + private static final Map allBaseAfterLocalConstructingInferiors = new Hashtable(0); + + private static final Map> allBaseBeforeDynamicSuperiors = new Hashtable>(0); + private static final Map> allBaseBeforeDynamicInferiors = new Hashtable>(0); + private static final Map> allBaseOverrideDynamicSuperiors = new Hashtable>(0); + private static final Map> allBaseOverrideDynamicInferiors = new Hashtable>(0); + private static final Map> allBaseAfterDynamicSuperiors = new Hashtable>(0); + private static final Map> allBaseAfterDynamicInferiors = new Hashtable>(0); + + private static boolean initialized = false; +} diff --git a/src/Java/api/player/server/ServerPlayerBase.java b/src/Java/api/player/server/ServerPlayerBase.java new file mode 100644 index 0000000000..cb54faddb0 --- /dev/null +++ b/src/Java/api/player/server/ServerPlayerBase.java @@ -0,0 +1,1207 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.server; + +public abstract class ServerPlayerBase +{ + public ServerPlayerBase(ServerPlayerAPI playerAPI) + { + this.internalServerPlayerAPI = playerAPI; + this.playerAPI = playerAPI.player; + this.player = playerAPI.player.getEntityPlayerMP(); + } + + public void beforeBaseAttach(boolean onTheFly) + { + } + + public void afterBaseAttach(boolean onTheFly) + { + } + + public void beforeLocalConstructing(net.minecraft.server.MinecraftServer paramMinecraftServer, net.minecraft.world.WorldServer paramWorldServer, com.mojang.authlib.GameProfile paramGameProfile, net.minecraft.server.management.ItemInWorldManager paramItemInWorldManager) + { + } + + public void afterLocalConstructing(net.minecraft.server.MinecraftServer paramMinecraftServer, net.minecraft.world.WorldServer paramWorldServer, com.mojang.authlib.GameProfile paramGameProfile, net.minecraft.server.management.ItemInWorldManager paramItemInWorldManager) + { + } + + public void beforeBaseDetach(boolean onTheFly) + { + } + + public void afterBaseDetach(boolean onTheFly) + { + } + + public Object dynamic(String key, Object[] parameters) + { + return internalServerPlayerAPI.dynamicOverwritten(key, parameters, this); + } + + public final int hashCode() + { + return super.hashCode(); + } + + public void beforeAddExhaustion(float paramFloat) + { + } + + public void addExhaustion(float paramFloat) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenAddExhaustion(this); + + if(overwritten == null) + playerAPI.localAddExhaustion(paramFloat); + else if(overwritten != this) + overwritten.addExhaustion(paramFloat); + + } + + public void afterAddExhaustion(float paramFloat) + { + } + + public void beforeAddExperience(int paramInt) + { + } + + public void addExperience(int paramInt) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenAddExperience(this); + + if(overwritten == null) + playerAPI.localAddExperience(paramInt); + else if(overwritten != this) + overwritten.addExperience(paramInt); + + } + + public void afterAddExperience(int paramInt) + { + } + + public void beforeAddExperienceLevel(int paramInt) + { + } + + public void addExperienceLevel(int paramInt) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenAddExperienceLevel(this); + + if(overwritten == null) + playerAPI.localAddExperienceLevel(paramInt); + else if(overwritten != this) + overwritten.addExperienceLevel(paramInt); + + } + + public void afterAddExperienceLevel(int paramInt) + { + } + + public void beforeAddMovementStat(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void addMovementStat(double paramDouble1, double paramDouble2, double paramDouble3) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenAddMovementStat(this); + + if(overwritten == null) + playerAPI.localAddMovementStat(paramDouble1, paramDouble2, paramDouble3); + else if(overwritten != this) + overwritten.addMovementStat(paramDouble1, paramDouble2, paramDouble3); + + } + + public void afterAddMovementStat(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void beforeAttackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + } + + public boolean attackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenAttackEntityFrom(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localAttackEntityFrom(paramDamageSource, paramFloat); + else if(overwritten != this) + _result = overwritten.attackEntityFrom(paramDamageSource, paramFloat); + else + _result = false; + + return _result; + } + + public void afterAttackEntityFrom(net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + } + + public void beforeAttackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity) + { + } + + public void attackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenAttackTargetEntityWithCurrentItem(this); + + if(overwritten == null) + playerAPI.localAttackTargetEntityWithCurrentItem(paramEntity); + else if(overwritten != this) + overwritten.attackTargetEntityWithCurrentItem(paramEntity); + + } + + public void afterAttackTargetEntityWithCurrentItem(net.minecraft.entity.Entity paramEntity) + { + } + + public void beforeCanBreatheUnderwater() + { + } + + public boolean canBreatheUnderwater() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenCanBreatheUnderwater(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localCanBreatheUnderwater(); + else if(overwritten != this) + _result = overwritten.canBreatheUnderwater(); + else + _result = false; + + return _result; + } + + public void afterCanBreatheUnderwater() + { + } + + public void beforeCanHarvestBlock(net.minecraft.block.Block paramBlock) + { + } + + public boolean canHarvestBlock(net.minecraft.block.Block paramBlock) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenCanHarvestBlock(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localCanHarvestBlock(paramBlock); + else if(overwritten != this) + _result = overwritten.canHarvestBlock(paramBlock); + else + _result = false; + + return _result; + } + + public void afterCanHarvestBlock(net.minecraft.block.Block paramBlock) + { + } + + public void beforeCanPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack) + { + } + + public boolean canPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenCanPlayerEdit(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localCanPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + else if(overwritten != this) + _result = overwritten.canPlayerEdit(paramInt1, paramInt2, paramInt3, paramInt4, paramItemStack); + else + _result = false; + + return _result; + } + + public void afterCanPlayerEdit(int paramInt1, int paramInt2, int paramInt3, int paramInt4, net.minecraft.item.ItemStack paramItemStack) + { + } + + public void beforeCanTriggerWalking() + { + } + + public boolean canTriggerWalking() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenCanTriggerWalking(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localCanTriggerWalking(); + else if(overwritten != this) + _result = overwritten.canTriggerWalking(); + else + _result = false; + + return _result; + } + + public void afterCanTriggerWalking() + { + } + + public void beforeClonePlayer(net.minecraft.entity.player.EntityPlayer paramEntityPlayer, boolean paramBoolean) + { + } + + public void clonePlayer(net.minecraft.entity.player.EntityPlayer paramEntityPlayer, boolean paramBoolean) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenClonePlayer(this); + + if(overwritten == null) + playerAPI.localClonePlayer(paramEntityPlayer, paramBoolean); + else if(overwritten != this) + overwritten.clonePlayer(paramEntityPlayer, paramBoolean); + + } + + public void afterClonePlayer(net.minecraft.entity.player.EntityPlayer paramEntityPlayer, boolean paramBoolean) + { + } + + public void beforeDamageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + } + + public void damageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenDamageEntity(this); + + if(overwritten == null) + playerAPI.localDamageEntity(paramDamageSource, paramFloat); + else if(overwritten != this) + overwritten.damageEntity(paramDamageSource, paramFloat); + + } + + public void afterDamageEntity(net.minecraft.util.DamageSource paramDamageSource, float paramFloat) + { + } + + public void beforeDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory) + { + } + + public void displayGUIChest(net.minecraft.inventory.IInventory paramIInventory) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenDisplayGUIChest(this); + + if(overwritten == null) + playerAPI.localDisplayGUIChest(paramIInventory); + else if(overwritten != this) + overwritten.displayGUIChest(paramIInventory); + + } + + public void afterDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory) + { + } + + public void beforeDisplayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser) + { + } + + public void displayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenDisplayGUIDispenser(this); + + if(overwritten == null) + playerAPI.localDisplayGUIDispenser(paramTileEntityDispenser); + else if(overwritten != this) + overwritten.displayGUIDispenser(paramTileEntityDispenser); + + } + + public void afterDisplayGUIDispenser(net.minecraft.tileentity.TileEntityDispenser paramTileEntityDispenser) + { + } + + public void beforeDisplayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace) + { + } + + public void displayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenDisplayGUIFurnace(this); + + if(overwritten == null) + playerAPI.localDisplayGUIFurnace(paramTileEntityFurnace); + else if(overwritten != this) + overwritten.displayGUIFurnace(paramTileEntityFurnace); + + } + + public void afterDisplayGUIFurnace(net.minecraft.tileentity.TileEntityFurnace paramTileEntityFurnace) + { + } + + public void beforeDisplayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3) + { + } + + public void displayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenDisplayGUIWorkbench(this); + + if(overwritten == null) + playerAPI.localDisplayGUIWorkbench(paramInt1, paramInt2, paramInt3); + else if(overwritten != this) + overwritten.displayGUIWorkbench(paramInt1, paramInt2, paramInt3); + + } + + public void afterDisplayGUIWorkbench(int paramInt1, int paramInt2, int paramInt3) + { + } + + public void beforeDropOneItem(boolean paramBoolean) + { + } + + public net.minecraft.entity.item.EntityItem dropOneItem(boolean paramBoolean) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenDropOneItem(this); + + net.minecraft.entity.item.EntityItem _result; + if(overwritten == null) + _result = playerAPI.localDropOneItem(paramBoolean); + else if(overwritten != this) + _result = overwritten.dropOneItem(paramBoolean); + else + _result = null; + + return _result; + } + + public void afterDropOneItem(boolean paramBoolean) + { + } + + public void beforeDropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) + { + } + + public net.minecraft.entity.item.EntityItem dropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenDropPlayerItem(this); + + net.minecraft.entity.item.EntityItem _result; + if(overwritten == null) + _result = playerAPI.localDropPlayerItem(paramItemStack, paramBoolean); + else if(overwritten != this) + _result = overwritten.dropPlayerItem(paramItemStack, paramBoolean); + else + _result = null; + + return _result; + } + + public void afterDropPlayerItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) + { + } + + public void beforeFall(float paramFloat) + { + } + + public void fall(float paramFloat) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenFall(this); + + if(overwritten == null) + playerAPI.localFall(paramFloat); + else if(overwritten != this) + overwritten.fall(paramFloat); + + } + + public void afterFall(float paramFloat) + { + } + + public void beforeGetAIMoveSpeed() + { + } + + public float getAIMoveSpeed() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenGetAIMoveSpeed(this); + + float _result; + if(overwritten == null) + _result = playerAPI.localGetAIMoveSpeed(); + else if(overwritten != this) + _result = overwritten.getAIMoveSpeed(); + else + _result = 0; + + return _result; + } + + public void afterGetAIMoveSpeed() + { + } + + public void beforeGetCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean) + { + } + + public float getCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenGetCurrentPlayerStrVsBlock(this); + + float _result; + if(overwritten == null) + _result = playerAPI.localGetCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + else if(overwritten != this) + _result = overwritten.getCurrentPlayerStrVsBlock(paramBlock, paramBoolean); + else + _result = 0; + + return _result; + } + + public void afterGetCurrentPlayerStrVsBlock(net.minecraft.block.Block paramBlock, boolean paramBoolean) + { + } + + public void beforeGetCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt) + { + } + + public float getCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenGetCurrentPlayerStrVsBlockForge(this); + + float _result; + if(overwritten == null) + _result = playerAPI.localGetCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + else if(overwritten != this) + _result = overwritten.getCurrentPlayerStrVsBlockForge(paramBlock, paramBoolean, paramInt); + else + _result = 0; + + return _result; + } + + public void afterGetCurrentPlayerStrVsBlockForge(net.minecraft.block.Block paramBlock, boolean paramBoolean, int paramInt) + { + } + + public void beforeGetDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public double getDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenGetDistanceSq(this); + + double _result; + if(overwritten == null) + _result = playerAPI.localGetDistanceSq(paramDouble1, paramDouble2, paramDouble3); + else if(overwritten != this) + _result = overwritten.getDistanceSq(paramDouble1, paramDouble2, paramDouble3); + else + _result = 0; + + return _result; + } + + public void afterGetDistanceSq(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void beforeGetBrightness(float paramFloat) + { + } + + public float getBrightness(float paramFloat) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenGetBrightness(this); + + float _result; + if(overwritten == null) + _result = playerAPI.localGetBrightness(paramFloat); + else if(overwritten != this) + _result = overwritten.getBrightness(paramFloat); + else + _result = 0; + + return _result; + } + + public void afterGetBrightness(float paramFloat) + { + } + + public void beforeGetEyeHeight() + { + } + + public float getEyeHeight() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenGetEyeHeight(this); + + float _result; + if(overwritten == null) + _result = playerAPI.localGetEyeHeight(); + else if(overwritten != this) + _result = overwritten.getEyeHeight(); + else + _result = 0; + + return _result; + } + + public void afterGetEyeHeight() + { + } + + public void beforeHeal(float paramFloat) + { + } + + public void heal(float paramFloat) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenHeal(this); + + if(overwritten == null) + playerAPI.localHeal(paramFloat); + else if(overwritten != this) + overwritten.heal(paramFloat); + + } + + public void afterHeal(float paramFloat) + { + } + + public void beforeIsEntityInsideOpaqueBlock() + { + } + + public boolean isEntityInsideOpaqueBlock() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenIsEntityInsideOpaqueBlock(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsEntityInsideOpaqueBlock(); + else if(overwritten != this) + _result = overwritten.isEntityInsideOpaqueBlock(); + else + _result = false; + + return _result; + } + + public void afterIsEntityInsideOpaqueBlock() + { + } + + public void beforeIsInWater() + { + } + + public boolean isInWater() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenIsInWater(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsInWater(); + else if(overwritten != this) + _result = overwritten.isInWater(); + else + _result = false; + + return _result; + } + + public void afterIsInWater() + { + } + + public void beforeIsInsideOfMaterial(net.minecraft.block.material.Material paramMaterial) + { + } + + public boolean isInsideOfMaterial(net.minecraft.block.material.Material paramMaterial) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenIsInsideOfMaterial(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsInsideOfMaterial(paramMaterial); + else if(overwritten != this) + _result = overwritten.isInsideOfMaterial(paramMaterial); + else + _result = false; + + return _result; + } + + public void afterIsInsideOfMaterial(net.minecraft.block.material.Material paramMaterial) + { + } + + public void beforeIsOnLadder() + { + } + + public boolean isOnLadder() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenIsOnLadder(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsOnLadder(); + else if(overwritten != this) + _result = overwritten.isOnLadder(); + else + _result = false; + + return _result; + } + + public void afterIsOnLadder() + { + } + + public void beforeIsPlayerSleeping() + { + } + + public boolean isPlayerSleeping() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenIsPlayerSleeping(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsPlayerSleeping(); + else if(overwritten != this) + _result = overwritten.isPlayerSleeping(); + else + _result = false; + + return _result; + } + + public void afterIsPlayerSleeping() + { + } + + public void beforeIsSneaking() + { + } + + public boolean isSneaking() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenIsSneaking(this); + + boolean _result; + if(overwritten == null) + _result = playerAPI.localIsSneaking(); + else if(overwritten != this) + _result = overwritten.isSneaking(); + else + _result = false; + + return _result; + } + + public void afterIsSneaking() + { + } + + public void beforeJump() + { + } + + public void jump() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenJump(this); + + if(overwritten == null) + playerAPI.localJump(); + else if(overwritten != this) + overwritten.jump(); + + } + + public void afterJump() + { + } + + public void beforeKnockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2) + { + } + + public void knockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenKnockBack(this); + + if(overwritten == null) + playerAPI.localKnockBack(paramEntity, paramFloat, paramDouble1, paramDouble2); + else if(overwritten != this) + overwritten.knockBack(paramEntity, paramFloat, paramDouble1, paramDouble2); + + } + + public void afterKnockBack(net.minecraft.entity.Entity paramEntity, float paramFloat, double paramDouble1, double paramDouble2) + { + } + + public void beforeMountEntity(net.minecraft.entity.Entity paramEntity) + { + } + + public void mountEntity(net.minecraft.entity.Entity paramEntity) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenMountEntity(this); + + if(overwritten == null) + playerAPI.localMountEntity(paramEntity); + else if(overwritten != this) + overwritten.mountEntity(paramEntity); + + } + + public void afterMountEntity(net.minecraft.entity.Entity paramEntity) + { + } + + public void beforeMoveEntity(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void moveEntity(double paramDouble1, double paramDouble2, double paramDouble3) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenMoveEntity(this); + + if(overwritten == null) + playerAPI.localMoveEntity(paramDouble1, paramDouble2, paramDouble3); + else if(overwritten != this) + overwritten.moveEntity(paramDouble1, paramDouble2, paramDouble3); + + } + + public void afterMoveEntity(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void beforeMoveEntityWithHeading(float paramFloat1, float paramFloat2) + { + } + + public void moveEntityWithHeading(float paramFloat1, float paramFloat2) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenMoveEntityWithHeading(this); + + if(overwritten == null) + playerAPI.localMoveEntityWithHeading(paramFloat1, paramFloat2); + else if(overwritten != this) + overwritten.moveEntityWithHeading(paramFloat1, paramFloat2); + + } + + public void afterMoveEntityWithHeading(float paramFloat1, float paramFloat2) + { + } + + public void beforeMoveFlying(float paramFloat1, float paramFloat2, float paramFloat3) + { + } + + public void moveFlying(float paramFloat1, float paramFloat2, float paramFloat3) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenMoveFlying(this); + + if(overwritten == null) + playerAPI.localMoveFlying(paramFloat1, paramFloat2, paramFloat3); + else if(overwritten != this) + overwritten.moveFlying(paramFloat1, paramFloat2, paramFloat3); + + } + + public void afterMoveFlying(float paramFloat1, float paramFloat2, float paramFloat3) + { + } + + public void beforeOnDeath(net.minecraft.util.DamageSource paramDamageSource) + { + } + + public void onDeath(net.minecraft.util.DamageSource paramDamageSource) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenOnDeath(this); + + if(overwritten == null) + playerAPI.localOnDeath(paramDamageSource); + else if(overwritten != this) + overwritten.onDeath(paramDamageSource); + + } + + public void afterOnDeath(net.minecraft.util.DamageSource paramDamageSource) + { + } + + public void beforeOnLivingUpdate() + { + } + + public void onLivingUpdate() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenOnLivingUpdate(this); + + if(overwritten == null) + playerAPI.localOnLivingUpdate(); + else if(overwritten != this) + overwritten.onLivingUpdate(); + + } + + public void afterOnLivingUpdate() + { + } + + public void beforeOnKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase) + { + } + + public void onKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenOnKillEntity(this); + + if(overwritten == null) + playerAPI.localOnKillEntity(paramEntityLivingBase); + else if(overwritten != this) + overwritten.onKillEntity(paramEntityLivingBase); + + } + + public void afterOnKillEntity(net.minecraft.entity.EntityLivingBase paramEntityLivingBase) + { + } + + public void beforeOnStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt) + { + } + + public void onStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenOnStruckByLightning(this); + + if(overwritten == null) + playerAPI.localOnStruckByLightning(paramEntityLightningBolt); + else if(overwritten != this) + overwritten.onStruckByLightning(paramEntityLightningBolt); + + } + + public void afterOnStruckByLightning(net.minecraft.entity.effect.EntityLightningBolt paramEntityLightningBolt) + { + } + + public void beforeOnUpdate() + { + } + + public void onUpdate() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenOnUpdate(this); + + if(overwritten == null) + playerAPI.localOnUpdate(); + else if(overwritten != this) + overwritten.onUpdate(); + + } + + public void afterOnUpdate() + { + } + + public void beforeOnUpdateEntity() + { + } + + public void onUpdateEntity() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenOnUpdateEntity(this); + + if(overwritten == null) + playerAPI.localOnUpdateEntity(); + else if(overwritten != this) + overwritten.onUpdateEntity(); + + } + + public void afterOnUpdateEntity() + { + } + + public void beforeReadEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + } + + public void readEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenReadEntityFromNBT(this); + + if(overwritten == null) + playerAPI.localReadEntityFromNBT(paramNBTTagCompound); + else if(overwritten != this) + overwritten.readEntityFromNBT(paramNBTTagCompound); + + } + + public void afterReadEntityFromNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + } + + public void beforeSetDead() + { + } + + public void setDead() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenSetDead(this); + + if(overwritten == null) + playerAPI.localSetDead(); + else if(overwritten != this) + overwritten.setDead(); + + } + + public void afterSetDead() + { + } + + public void beforeSetEntityActionState(float paramFloat1, float paramFloat2, boolean paramBoolean1, boolean paramBoolean2) + { + } + + public void setEntityActionState(float paramFloat1, float paramFloat2, boolean paramBoolean1, boolean paramBoolean2) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenSetEntityActionState(this); + + if(overwritten == null) + playerAPI.localSetEntityActionState(paramFloat1, paramFloat2, paramBoolean1, paramBoolean2); + else if(overwritten != this) + overwritten.setEntityActionState(paramFloat1, paramFloat2, paramBoolean1, paramBoolean2); + + } + + public void afterSetEntityActionState(float paramFloat1, float paramFloat2, boolean paramBoolean1, boolean paramBoolean2) + { + } + + public void beforeSetPosition(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void setPosition(double paramDouble1, double paramDouble2, double paramDouble3) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenSetPosition(this); + + if(overwritten == null) + playerAPI.localSetPosition(paramDouble1, paramDouble2, paramDouble3); + else if(overwritten != this) + overwritten.setPosition(paramDouble1, paramDouble2, paramDouble3); + + } + + public void afterSetPosition(double paramDouble1, double paramDouble2, double paramDouble3) + { + } + + public void beforeSetSneaking(boolean paramBoolean) + { + } + + public void setSneaking(boolean paramBoolean) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenSetSneaking(this); + + if(overwritten == null) + playerAPI.localSetSneaking(paramBoolean); + else if(overwritten != this) + overwritten.setSneaking(paramBoolean); + + } + + public void afterSetSneaking(boolean paramBoolean) + { + } + + public void beforeSetSprinting(boolean paramBoolean) + { + } + + public void setSprinting(boolean paramBoolean) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenSetSprinting(this); + + if(overwritten == null) + playerAPI.localSetSprinting(paramBoolean); + else if(overwritten != this) + overwritten.setSprinting(paramBoolean); + + } + + public void afterSetSprinting(boolean paramBoolean) + { + } + + public void beforeSwingItem() + { + } + + public void swingItem() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenSwingItem(this); + + if(overwritten == null) + playerAPI.localSwingItem(); + else if(overwritten != this) + overwritten.swingItem(); + + } + + public void afterSwingItem() + { + } + + public void beforeUpdateEntityActionState() + { + } + + public void updateEntityActionState() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenUpdateEntityActionState(this); + + if(overwritten == null) + playerAPI.localUpdateEntityActionState(); + else if(overwritten != this) + overwritten.updateEntityActionState(); + + } + + public void afterUpdateEntityActionState() + { + } + + public void beforeUpdatePotionEffects() + { + } + + public void updatePotionEffects() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenUpdatePotionEffects(this); + + if(overwritten == null) + playerAPI.localUpdatePotionEffects(); + else if(overwritten != this) + overwritten.updatePotionEffects(); + + } + + public void afterUpdatePotionEffects() + { + } + + public void beforeUpdateRidden() + { + } + + public void updateRidden() + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenUpdateRidden(this); + + if(overwritten == null) + playerAPI.localUpdateRidden(); + else if(overwritten != this) + overwritten.updateRidden(); + + } + + public void afterUpdateRidden() + { + } + + public void beforeWakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3) + { + } + + public void wakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenWakeUpPlayer(this); + + if(overwritten == null) + playerAPI.localWakeUpPlayer(paramBoolean1, paramBoolean2, paramBoolean3); + else if(overwritten != this) + overwritten.wakeUpPlayer(paramBoolean1, paramBoolean2, paramBoolean3); + + } + + public void afterWakeUpPlayer(boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3) + { + } + + public void beforeWriteEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + } + + public void writeEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenWriteEntityToNBT(this); + + if(overwritten == null) + playerAPI.localWriteEntityToNBT(paramNBTTagCompound); + else if(overwritten != this) + overwritten.writeEntityToNBT(paramNBTTagCompound); + + } + + public void afterWriteEntityToNBT(net.minecraft.nbt.NBTTagCompound paramNBTTagCompound) + { + } + + protected final net.minecraft.entity.player.EntityPlayerMP player; + protected final IServerPlayer playerAPI; + private final ServerPlayerAPI internalServerPlayerAPI; +} diff --git a/src/Java/api/player/server/ServerPlayerBaseSorter.java b/src/Java/api/player/server/ServerPlayerBaseSorter.java new file mode 100644 index 0000000000..551d760564 --- /dev/null +++ b/src/Java/api/player/server/ServerPlayerBaseSorter.java @@ -0,0 +1,259 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.server; + +import java.util.*; + +public final class ServerPlayerBaseSorter +{ + public ServerPlayerBaseSorter(List list, Map allBaseSuperiors, Map allBaseInferiors, String methodName) + { + this.list = list; + this.allBaseSuperiors = allBaseSuperiors; + this.allBaseInferiors = allBaseInferiors; + this.methodName = methodName; + } + + public void Sort() + { + if(list.size() <= 1) + return; + + if(explicitInferiors != null) + explicitInferiors.clear(); + + if(explicitSuperiors != null) + explicitSuperiors.clear(); + + if(directInferiorsMap != null) + directInferiorsMap.clear(); + + if(allInferiors != null) + allInferiors.clear(); + + for(int i = 0; i < list.size(); i++) + { + String baseId = list.get(i); + + String[] inferiorNames = allBaseInferiors.get(baseId); + boolean hasInferiors = inferiorNames != null && inferiorNames.length > 0; + + String[] superiorNames = allBaseSuperiors.get(baseId); + boolean hasSuperiors = superiorNames != null && superiorNames.length > 0; + + if((hasInferiors || hasSuperiors) && directInferiorsMap == null) + directInferiorsMap = new Hashtable>(); + + if(hasInferiors) + explicitInferiors = build(baseId, explicitInferiors, directInferiorsMap, null, inferiorNames); + + if(hasSuperiors) + explicitSuperiors = build(baseId, explicitSuperiors, null, directInferiorsMap, superiorNames); + } + if(directInferiorsMap != null) + { + for(int i = 0; i < list.size() - 1; i++) + for(int n = i + 1; n < list.size(); n++) + { + String left = list.get(i); + String right = list.get(n); + + Set leftInferiors = null, rightInferiors = null; + if(explicitInferiors != null) + { + leftInferiors = explicitInferiors.get(left); + rightInferiors = explicitInferiors.get(right); + } + + Set leftSuperiors = null, rightSuperiors = null; + if(explicitSuperiors != null) + { + leftSuperiors = explicitSuperiors.get(left); + rightSuperiors = explicitSuperiors.get(right); + } + + boolean leftWantsToBeInferiorToRight = leftSuperiors != null && leftSuperiors.contains(right); + boolean leftWantsToBeSuperiorToRight = leftInferiors != null && leftInferiors.contains(right); + + boolean rightWantsToBeInferiorToLeft = rightSuperiors != null && rightSuperiors.contains(left); + boolean rightWantsToBeSuperiorToLeft = rightInferiors != null && rightInferiors.contains(left); + + if(leftWantsToBeInferiorToRight && rightWantsToBeInferiorToLeft) + throw new UnsupportedOperationException("Can not sort ServerPlayerBase classes for method '" + methodName + "'. '" + left + "' wants to be inferior to '" + right + "' and '" + right + "' wants to be inferior to '" + left + "'"); + if(leftWantsToBeSuperiorToRight && rightWantsToBeSuperiorToLeft) + throw new UnsupportedOperationException("Can not sort ServerPlayerBase classes for method '" + methodName + "'. '" + left + "' wants to be superior to '" + right + "' and '" + right + "' wants to be superior to '" + left + "'"); + + if(leftWantsToBeInferiorToRight && leftWantsToBeSuperiorToRight) + throw new UnsupportedOperationException("Can not sort ServerPlayerBase classes for method '" + methodName + "'. '" + left + "' wants to be superior and inferior to '" + right + "'"); + if(rightWantsToBeInferiorToLeft && rightWantsToBeSuperiorToLeft) + throw new UnsupportedOperationException("Can not sort ServerPlayerBase classes for method '" + methodName + "'. '" + right + "' wants to be superior and inferior to '" + left + "'"); + } + + if(allInferiors == null) + allInferiors = new Hashtable>(); + + for(int i = 0; i < list.size(); i++) + build(list.get(i), null); + } + + if (withoutSuperiors == null) + withoutSuperiors = new LinkedList(); + + int offset = 0; + int size = list.size(); + + while(size > 1) + { + withoutSuperiors.clear(); + for(int i = offset; i < offset + size; i++) + withoutSuperiors.add(list.get(i)); + + if(allInferiors != null) + for(int i = offset; i < offset + size; i++) + { + Set inferiors = allInferiors.get(list.get(i)); + if (inferiors != null) + withoutSuperiors.removeAll(inferiors); + } + + boolean initial = true; + for(int i = offset; i < offset + size; i++) + { + String key = list.get(i); + if(withoutSuperiors.contains(key)) + { + if(initial) + { + Set inferiors = null; + if(allInferiors != null) + inferiors = allInferiors.get(key); + if(inferiors == null || inferiors.isEmpty()) + { + withoutSuperiors.remove(key); + size--; + offset++; + continue; + } + } + list.remove(i--); + size--; + } + initial = false; + } + list.addAll(offset + size, withoutSuperiors); + } + } + + private Set build(String type, String startType) + { + Set inferiors = allInferiors.get(type); + if(inferiors == null) + { + inferiors = build(type, null, startType != null ? startType : type); + if(inferiors == null) + inferiors = Empty; + allInferiors.put(type, inferiors); + } + return inferiors; + } + + private Set build(String type, Set inferiors, String startType) + { + Set directInferiors = directInferiorsMap.get(type); + if(directInferiors == null) + return inferiors; + + if(inferiors == null) + inferiors = new HashSet(); + + Iterator iter = directInferiors.iterator(); + while(iter.hasNext()) + { + String inferiorType = iter.next(); + if(inferiorType == startType) + throw new UnsupportedOperationException("Can not sort ServerPlayerBase classes for method '" + methodName + "'. Circular superiosity found including '" + startType + "'"); + if(list.contains(inferiorType)) + inferiors.add(inferiorType); + + Set inferiorSet; + try + { + inferiorSet = build(inferiorType, startType); + } + catch(UnsupportedOperationException uoe) + { + throw new UnsupportedOperationException("Can not sort ServerPlayerBase classes for method '" + methodName + "'. Circular superiosity found including '" + inferiorType + "'", uoe); + } + + if(inferiorSet != Empty) + inferiors.addAll(inferiorSet); + } + return inferiors; + } + + private static Map> build(String baseId, Map> map, Map> directMap, Map> otherDirectMap, String[] names) + { + if(map == null) + map = new Hashtable>(); + + Set types = new HashSet(); + for(int n = 0; n < names.length; n++) + { + if(names[n] != null) + types.add(names[n]); + } + + if(directMap != null) + getOrCreateSet(directMap, baseId).addAll(types); + + if(otherDirectMap != null) + { + Iterator iter = types.iterator(); + while(iter.hasNext()) + getOrCreateSet(otherDirectMap, iter.next()).add(baseId); + } + + map.put(baseId, types); + return map; + } + + private static Set getOrCreateSet(Map> map, String key) + { + Set value = map.get(key); + if(value != null) + return value; + + value = new HashSet(); + map.put(key, value); + return value; + } + + private Map> explicitInferiors; + private Map> explicitSuperiors; + private Map> directInferiorsMap; + private Map> allInferiors; + private List withoutSuperiors; + + private final List list; + private final Map allBaseSuperiors; + private final Map allBaseInferiors; + private final String methodName; + + private static final Set Empty = new HashSet(); +} diff --git a/src/Java/api/player/server/ServerPlayerBaseSorting.java b/src/Java/api/player/server/ServerPlayerBaseSorting.java new file mode 100644 index 0000000000..44ceec35df --- /dev/null +++ b/src/Java/api/player/server/ServerPlayerBaseSorting.java @@ -0,0 +1,3909 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.server; + +import java.util.*; + +public final class ServerPlayerBaseSorting +{ + private String[] beforeLocalConstructingSuperiors = null; + private String[] beforeLocalConstructingInferiors = null; + private String[] afterLocalConstructingSuperiors = null; + private String[] afterLocalConstructingInferiors = null; + + private Map dynamicBeforeSuperiors = null; + private Map dynamicBeforeInferiors = null; + private Map dynamicOverrideSuperiors = null; + private Map dynamicOverrideInferiors = null; + private Map dynamicAfterSuperiors = null; + private Map dynamicAfterInferiors = null; + + private String[] beforeAddExhaustionSuperiors = null; + private String[] beforeAddExhaustionInferiors = null; + private String[] overrideAddExhaustionSuperiors = null; + private String[] overrideAddExhaustionInferiors = null; + private String[] afterAddExhaustionSuperiors = null; + private String[] afterAddExhaustionInferiors = null; + + private String[] beforeAddExperienceSuperiors = null; + private String[] beforeAddExperienceInferiors = null; + private String[] overrideAddExperienceSuperiors = null; + private String[] overrideAddExperienceInferiors = null; + private String[] afterAddExperienceSuperiors = null; + private String[] afterAddExperienceInferiors = null; + + private String[] beforeAddExperienceLevelSuperiors = null; + private String[] beforeAddExperienceLevelInferiors = null; + private String[] overrideAddExperienceLevelSuperiors = null; + private String[] overrideAddExperienceLevelInferiors = null; + private String[] afterAddExperienceLevelSuperiors = null; + private String[] afterAddExperienceLevelInferiors = null; + + private String[] beforeAddMovementStatSuperiors = null; + private String[] beforeAddMovementStatInferiors = null; + private String[] overrideAddMovementStatSuperiors = null; + private String[] overrideAddMovementStatInferiors = null; + private String[] afterAddMovementStatSuperiors = null; + private String[] afterAddMovementStatInferiors = null; + + private String[] beforeAttackEntityFromSuperiors = null; + private String[] beforeAttackEntityFromInferiors = null; + private String[] overrideAttackEntityFromSuperiors = null; + private String[] overrideAttackEntityFromInferiors = null; + private String[] afterAttackEntityFromSuperiors = null; + private String[] afterAttackEntityFromInferiors = null; + + private String[] beforeAttackTargetEntityWithCurrentItemSuperiors = null; + private String[] beforeAttackTargetEntityWithCurrentItemInferiors = null; + private String[] overrideAttackTargetEntityWithCurrentItemSuperiors = null; + private String[] overrideAttackTargetEntityWithCurrentItemInferiors = null; + private String[] afterAttackTargetEntityWithCurrentItemSuperiors = null; + private String[] afterAttackTargetEntityWithCurrentItemInferiors = null; + + private String[] beforeCanBreatheUnderwaterSuperiors = null; + private String[] beforeCanBreatheUnderwaterInferiors = null; + private String[] overrideCanBreatheUnderwaterSuperiors = null; + private String[] overrideCanBreatheUnderwaterInferiors = null; + private String[] afterCanBreatheUnderwaterSuperiors = null; + private String[] afterCanBreatheUnderwaterInferiors = null; + + private String[] beforeCanHarvestBlockSuperiors = null; + private String[] beforeCanHarvestBlockInferiors = null; + private String[] overrideCanHarvestBlockSuperiors = null; + private String[] overrideCanHarvestBlockInferiors = null; + private String[] afterCanHarvestBlockSuperiors = null; + private String[] afterCanHarvestBlockInferiors = null; + + private String[] beforeCanPlayerEditSuperiors = null; + private String[] beforeCanPlayerEditInferiors = null; + private String[] overrideCanPlayerEditSuperiors = null; + private String[] overrideCanPlayerEditInferiors = null; + private String[] afterCanPlayerEditSuperiors = null; + private String[] afterCanPlayerEditInferiors = null; + + private String[] beforeCanTriggerWalkingSuperiors = null; + private String[] beforeCanTriggerWalkingInferiors = null; + private String[] overrideCanTriggerWalkingSuperiors = null; + private String[] overrideCanTriggerWalkingInferiors = null; + private String[] afterCanTriggerWalkingSuperiors = null; + private String[] afterCanTriggerWalkingInferiors = null; + + private String[] beforeClonePlayerSuperiors = null; + private String[] beforeClonePlayerInferiors = null; + private String[] overrideClonePlayerSuperiors = null; + private String[] overrideClonePlayerInferiors = null; + private String[] afterClonePlayerSuperiors = null; + private String[] afterClonePlayerInferiors = null; + + private String[] beforeDamageEntitySuperiors = null; + private String[] beforeDamageEntityInferiors = null; + private String[] overrideDamageEntitySuperiors = null; + private String[] overrideDamageEntityInferiors = null; + private String[] afterDamageEntitySuperiors = null; + private String[] afterDamageEntityInferiors = null; + + private String[] beforeDisplayGUIChestSuperiors = null; + private String[] beforeDisplayGUIChestInferiors = null; + private String[] overrideDisplayGUIChestSuperiors = null; + private String[] overrideDisplayGUIChestInferiors = null; + private String[] afterDisplayGUIChestSuperiors = null; + private String[] afterDisplayGUIChestInferiors = null; + + private String[] beforeDisplayGUIDispenserSuperiors = null; + private String[] beforeDisplayGUIDispenserInferiors = null; + private String[] overrideDisplayGUIDispenserSuperiors = null; + private String[] overrideDisplayGUIDispenserInferiors = null; + private String[] afterDisplayGUIDispenserSuperiors = null; + private String[] afterDisplayGUIDispenserInferiors = null; + + private String[] beforeDisplayGUIFurnaceSuperiors = null; + private String[] beforeDisplayGUIFurnaceInferiors = null; + private String[] overrideDisplayGUIFurnaceSuperiors = null; + private String[] overrideDisplayGUIFurnaceInferiors = null; + private String[] afterDisplayGUIFurnaceSuperiors = null; + private String[] afterDisplayGUIFurnaceInferiors = null; + + private String[] beforeDisplayGUIWorkbenchSuperiors = null; + private String[] beforeDisplayGUIWorkbenchInferiors = null; + private String[] overrideDisplayGUIWorkbenchSuperiors = null; + private String[] overrideDisplayGUIWorkbenchInferiors = null; + private String[] afterDisplayGUIWorkbenchSuperiors = null; + private String[] afterDisplayGUIWorkbenchInferiors = null; + + private String[] beforeDropOneItemSuperiors = null; + private String[] beforeDropOneItemInferiors = null; + private String[] overrideDropOneItemSuperiors = null; + private String[] overrideDropOneItemInferiors = null; + private String[] afterDropOneItemSuperiors = null; + private String[] afterDropOneItemInferiors = null; + + private String[] beforeDropPlayerItemSuperiors = null; + private String[] beforeDropPlayerItemInferiors = null; + private String[] overrideDropPlayerItemSuperiors = null; + private String[] overrideDropPlayerItemInferiors = null; + private String[] afterDropPlayerItemSuperiors = null; + private String[] afterDropPlayerItemInferiors = null; + + private String[] beforeFallSuperiors = null; + private String[] beforeFallInferiors = null; + private String[] overrideFallSuperiors = null; + private String[] overrideFallInferiors = null; + private String[] afterFallSuperiors = null; + private String[] afterFallInferiors = null; + + private String[] beforeGetAIMoveSpeedSuperiors = null; + private String[] beforeGetAIMoveSpeedInferiors = null; + private String[] overrideGetAIMoveSpeedSuperiors = null; + private String[] overrideGetAIMoveSpeedInferiors = null; + private String[] afterGetAIMoveSpeedSuperiors = null; + private String[] afterGetAIMoveSpeedInferiors = null; + + private String[] beforeGetCurrentPlayerStrVsBlockSuperiors = null; + private String[] beforeGetCurrentPlayerStrVsBlockInferiors = null; + private String[] overrideGetCurrentPlayerStrVsBlockSuperiors = null; + private String[] overrideGetCurrentPlayerStrVsBlockInferiors = null; + private String[] afterGetCurrentPlayerStrVsBlockSuperiors = null; + private String[] afterGetCurrentPlayerStrVsBlockInferiors = null; + + private String[] beforeGetCurrentPlayerStrVsBlockForgeSuperiors = null; + private String[] beforeGetCurrentPlayerStrVsBlockForgeInferiors = null; + private String[] overrideGetCurrentPlayerStrVsBlockForgeSuperiors = null; + private String[] overrideGetCurrentPlayerStrVsBlockForgeInferiors = null; + private String[] afterGetCurrentPlayerStrVsBlockForgeSuperiors = null; + private String[] afterGetCurrentPlayerStrVsBlockForgeInferiors = null; + + private String[] beforeGetDistanceSqSuperiors = null; + private String[] beforeGetDistanceSqInferiors = null; + private String[] overrideGetDistanceSqSuperiors = null; + private String[] overrideGetDistanceSqInferiors = null; + private String[] afterGetDistanceSqSuperiors = null; + private String[] afterGetDistanceSqInferiors = null; + + private String[] beforeGetBrightnessSuperiors = null; + private String[] beforeGetBrightnessInferiors = null; + private String[] overrideGetBrightnessSuperiors = null; + private String[] overrideGetBrightnessInferiors = null; + private String[] afterGetBrightnessSuperiors = null; + private String[] afterGetBrightnessInferiors = null; + + private String[] beforeGetEyeHeightSuperiors = null; + private String[] beforeGetEyeHeightInferiors = null; + private String[] overrideGetEyeHeightSuperiors = null; + private String[] overrideGetEyeHeightInferiors = null; + private String[] afterGetEyeHeightSuperiors = null; + private String[] afterGetEyeHeightInferiors = null; + + private String[] beforeHealSuperiors = null; + private String[] beforeHealInferiors = null; + private String[] overrideHealSuperiors = null; + private String[] overrideHealInferiors = null; + private String[] afterHealSuperiors = null; + private String[] afterHealInferiors = null; + + private String[] beforeIsEntityInsideOpaqueBlockSuperiors = null; + private String[] beforeIsEntityInsideOpaqueBlockInferiors = null; + private String[] overrideIsEntityInsideOpaqueBlockSuperiors = null; + private String[] overrideIsEntityInsideOpaqueBlockInferiors = null; + private String[] afterIsEntityInsideOpaqueBlockSuperiors = null; + private String[] afterIsEntityInsideOpaqueBlockInferiors = null; + + private String[] beforeIsInWaterSuperiors = null; + private String[] beforeIsInWaterInferiors = null; + private String[] overrideIsInWaterSuperiors = null; + private String[] overrideIsInWaterInferiors = null; + private String[] afterIsInWaterSuperiors = null; + private String[] afterIsInWaterInferiors = null; + + private String[] beforeIsInsideOfMaterialSuperiors = null; + private String[] beforeIsInsideOfMaterialInferiors = null; + private String[] overrideIsInsideOfMaterialSuperiors = null; + private String[] overrideIsInsideOfMaterialInferiors = null; + private String[] afterIsInsideOfMaterialSuperiors = null; + private String[] afterIsInsideOfMaterialInferiors = null; + + private String[] beforeIsOnLadderSuperiors = null; + private String[] beforeIsOnLadderInferiors = null; + private String[] overrideIsOnLadderSuperiors = null; + private String[] overrideIsOnLadderInferiors = null; + private String[] afterIsOnLadderSuperiors = null; + private String[] afterIsOnLadderInferiors = null; + + private String[] beforeIsPlayerSleepingSuperiors = null; + private String[] beforeIsPlayerSleepingInferiors = null; + private String[] overrideIsPlayerSleepingSuperiors = null; + private String[] overrideIsPlayerSleepingInferiors = null; + private String[] afterIsPlayerSleepingSuperiors = null; + private String[] afterIsPlayerSleepingInferiors = null; + + private String[] beforeIsSneakingSuperiors = null; + private String[] beforeIsSneakingInferiors = null; + private String[] overrideIsSneakingSuperiors = null; + private String[] overrideIsSneakingInferiors = null; + private String[] afterIsSneakingSuperiors = null; + private String[] afterIsSneakingInferiors = null; + + private String[] beforeJumpSuperiors = null; + private String[] beforeJumpInferiors = null; + private String[] overrideJumpSuperiors = null; + private String[] overrideJumpInferiors = null; + private String[] afterJumpSuperiors = null; + private String[] afterJumpInferiors = null; + + private String[] beforeKnockBackSuperiors = null; + private String[] beforeKnockBackInferiors = null; + private String[] overrideKnockBackSuperiors = null; + private String[] overrideKnockBackInferiors = null; + private String[] afterKnockBackSuperiors = null; + private String[] afterKnockBackInferiors = null; + + private String[] beforeMountEntitySuperiors = null; + private String[] beforeMountEntityInferiors = null; + private String[] overrideMountEntitySuperiors = null; + private String[] overrideMountEntityInferiors = null; + private String[] afterMountEntitySuperiors = null; + private String[] afterMountEntityInferiors = null; + + private String[] beforeMoveEntitySuperiors = null; + private String[] beforeMoveEntityInferiors = null; + private String[] overrideMoveEntitySuperiors = null; + private String[] overrideMoveEntityInferiors = null; + private String[] afterMoveEntitySuperiors = null; + private String[] afterMoveEntityInferiors = null; + + private String[] beforeMoveEntityWithHeadingSuperiors = null; + private String[] beforeMoveEntityWithHeadingInferiors = null; + private String[] overrideMoveEntityWithHeadingSuperiors = null; + private String[] overrideMoveEntityWithHeadingInferiors = null; + private String[] afterMoveEntityWithHeadingSuperiors = null; + private String[] afterMoveEntityWithHeadingInferiors = null; + + private String[] beforeMoveFlyingSuperiors = null; + private String[] beforeMoveFlyingInferiors = null; + private String[] overrideMoveFlyingSuperiors = null; + private String[] overrideMoveFlyingInferiors = null; + private String[] afterMoveFlyingSuperiors = null; + private String[] afterMoveFlyingInferiors = null; + + private String[] beforeOnDeathSuperiors = null; + private String[] beforeOnDeathInferiors = null; + private String[] overrideOnDeathSuperiors = null; + private String[] overrideOnDeathInferiors = null; + private String[] afterOnDeathSuperiors = null; + private String[] afterOnDeathInferiors = null; + + private String[] beforeOnLivingUpdateSuperiors = null; + private String[] beforeOnLivingUpdateInferiors = null; + private String[] overrideOnLivingUpdateSuperiors = null; + private String[] overrideOnLivingUpdateInferiors = null; + private String[] afterOnLivingUpdateSuperiors = null; + private String[] afterOnLivingUpdateInferiors = null; + + private String[] beforeOnKillEntitySuperiors = null; + private String[] beforeOnKillEntityInferiors = null; + private String[] overrideOnKillEntitySuperiors = null; + private String[] overrideOnKillEntityInferiors = null; + private String[] afterOnKillEntitySuperiors = null; + private String[] afterOnKillEntityInferiors = null; + + private String[] beforeOnStruckByLightningSuperiors = null; + private String[] beforeOnStruckByLightningInferiors = null; + private String[] overrideOnStruckByLightningSuperiors = null; + private String[] overrideOnStruckByLightningInferiors = null; + private String[] afterOnStruckByLightningSuperiors = null; + private String[] afterOnStruckByLightningInferiors = null; + + private String[] beforeOnUpdateSuperiors = null; + private String[] beforeOnUpdateInferiors = null; + private String[] overrideOnUpdateSuperiors = null; + private String[] overrideOnUpdateInferiors = null; + private String[] afterOnUpdateSuperiors = null; + private String[] afterOnUpdateInferiors = null; + + private String[] beforeOnUpdateEntitySuperiors = null; + private String[] beforeOnUpdateEntityInferiors = null; + private String[] overrideOnUpdateEntitySuperiors = null; + private String[] overrideOnUpdateEntityInferiors = null; + private String[] afterOnUpdateEntitySuperiors = null; + private String[] afterOnUpdateEntityInferiors = null; + + private String[] beforeReadEntityFromNBTSuperiors = null; + private String[] beforeReadEntityFromNBTInferiors = null; + private String[] overrideReadEntityFromNBTSuperiors = null; + private String[] overrideReadEntityFromNBTInferiors = null; + private String[] afterReadEntityFromNBTSuperiors = null; + private String[] afterReadEntityFromNBTInferiors = null; + + private String[] beforeSetDeadSuperiors = null; + private String[] beforeSetDeadInferiors = null; + private String[] overrideSetDeadSuperiors = null; + private String[] overrideSetDeadInferiors = null; + private String[] afterSetDeadSuperiors = null; + private String[] afterSetDeadInferiors = null; + + private String[] beforeSetEntityActionStateSuperiors = null; + private String[] beforeSetEntityActionStateInferiors = null; + private String[] overrideSetEntityActionStateSuperiors = null; + private String[] overrideSetEntityActionStateInferiors = null; + private String[] afterSetEntityActionStateSuperiors = null; + private String[] afterSetEntityActionStateInferiors = null; + + private String[] beforeSetPositionSuperiors = null; + private String[] beforeSetPositionInferiors = null; + private String[] overrideSetPositionSuperiors = null; + private String[] overrideSetPositionInferiors = null; + private String[] afterSetPositionSuperiors = null; + private String[] afterSetPositionInferiors = null; + + private String[] beforeSetSneakingSuperiors = null; + private String[] beforeSetSneakingInferiors = null; + private String[] overrideSetSneakingSuperiors = null; + private String[] overrideSetSneakingInferiors = null; + private String[] afterSetSneakingSuperiors = null; + private String[] afterSetSneakingInferiors = null; + + private String[] beforeSetSprintingSuperiors = null; + private String[] beforeSetSprintingInferiors = null; + private String[] overrideSetSprintingSuperiors = null; + private String[] overrideSetSprintingInferiors = null; + private String[] afterSetSprintingSuperiors = null; + private String[] afterSetSprintingInferiors = null; + + private String[] beforeSwingItemSuperiors = null; + private String[] beforeSwingItemInferiors = null; + private String[] overrideSwingItemSuperiors = null; + private String[] overrideSwingItemInferiors = null; + private String[] afterSwingItemSuperiors = null; + private String[] afterSwingItemInferiors = null; + + private String[] beforeUpdateEntityActionStateSuperiors = null; + private String[] beforeUpdateEntityActionStateInferiors = null; + private String[] overrideUpdateEntityActionStateSuperiors = null; + private String[] overrideUpdateEntityActionStateInferiors = null; + private String[] afterUpdateEntityActionStateSuperiors = null; + private String[] afterUpdateEntityActionStateInferiors = null; + + private String[] beforeUpdatePotionEffectsSuperiors = null; + private String[] beforeUpdatePotionEffectsInferiors = null; + private String[] overrideUpdatePotionEffectsSuperiors = null; + private String[] overrideUpdatePotionEffectsInferiors = null; + private String[] afterUpdatePotionEffectsSuperiors = null; + private String[] afterUpdatePotionEffectsInferiors = null; + + private String[] beforeUpdateRiddenSuperiors = null; + private String[] beforeUpdateRiddenInferiors = null; + private String[] overrideUpdateRiddenSuperiors = null; + private String[] overrideUpdateRiddenInferiors = null; + private String[] afterUpdateRiddenSuperiors = null; + private String[] afterUpdateRiddenInferiors = null; + + private String[] beforeWakeUpPlayerSuperiors = null; + private String[] beforeWakeUpPlayerInferiors = null; + private String[] overrideWakeUpPlayerSuperiors = null; + private String[] overrideWakeUpPlayerInferiors = null; + private String[] afterWakeUpPlayerSuperiors = null; + private String[] afterWakeUpPlayerInferiors = null; + + private String[] beforeWriteEntityToNBTSuperiors = null; + private String[] beforeWriteEntityToNBTInferiors = null; + private String[] overrideWriteEntityToNBTSuperiors = null; + private String[] overrideWriteEntityToNBTInferiors = null; + private String[] afterWriteEntityToNBTSuperiors = null; + private String[] afterWriteEntityToNBTInferiors = null; + + + public String[] getBeforeLocalConstructingSuperiors() + { + return beforeLocalConstructingSuperiors; + } + + public String[] getBeforeLocalConstructingInferiors() + { + return beforeLocalConstructingInferiors; + } + + public String[] getAfterLocalConstructingSuperiors() + { + return afterLocalConstructingSuperiors; + } + + public String[] getAfterLocalConstructingInferiors() + { + return afterLocalConstructingInferiors; + } + + public void setBeforeLocalConstructingSuperiors(String[] value) + { + beforeLocalConstructingSuperiors = value; + } + + public void setBeforeLocalConstructingInferiors(String[] value) + { + beforeLocalConstructingInferiors = value; + } + + public void setAfterLocalConstructingSuperiors(String[] value) + { + afterLocalConstructingSuperiors = value; + } + + public void setAfterLocalConstructingInferiors(String[] value) + { + afterLocalConstructingInferiors = value; + } + + public Map getDynamicBeforeSuperiors() + { + return dynamicBeforeSuperiors; + } + + public Map getDynamicBeforeInferiors() + { + return dynamicBeforeInferiors; + } + + public Map getDynamicOverrideSuperiors() + { + return dynamicOverrideSuperiors; + } + + public Map getDynamicOverrideInferiors() + { + return dynamicOverrideInferiors; + } + + public Map getDynamicAfterSuperiors() + { + return dynamicAfterSuperiors; + } + + public Map getDynamicAfterInferiors() + { + return dynamicAfterInferiors; + } + + public void setDynamicBeforeSuperiors(String name, String[] superiors) + { + dynamicBeforeSuperiors = setDynamic(name, superiors, dynamicBeforeSuperiors); + } + + public void setDynamicBeforeInferiors(String name, String[] inferiors) + { + dynamicBeforeInferiors = setDynamic(name, inferiors, dynamicBeforeInferiors); + } + + public void setDynamicOverrideSuperiors(String name, String[] superiors) + { + dynamicOverrideSuperiors = setDynamic(name, superiors, dynamicOverrideSuperiors); + } + + public void setDynamicOverrideInferiors(String name, String[] inferiors) + { + dynamicOverrideInferiors = setDynamic(name, inferiors, dynamicOverrideInferiors); + } + + public void setDynamicAfterSuperiors(String name, String[] superiors) + { + dynamicAfterSuperiors = setDynamic(name, superiors, dynamicAfterSuperiors); + } + + public void setDynamicAfterInferiors(String name, String[] inferiors) + { + dynamicAfterInferiors = setDynamic(name, inferiors, dynamicAfterInferiors); + } + + private Map setDynamic(String name, String[] names, Map map) + { + if(name == null) + throw new IllegalArgumentException("Parameter 'name' may not be null"); + + if(names == null) + { + if(map != null) + map.remove(name); + return map; + } + + if(map == null) + map = new HashMap(); + map.put(name, names); + + return map; + } + + public String[] getBeforeAddExhaustionSuperiors() + { + return beforeAddExhaustionSuperiors; + } + + public String[] getBeforeAddExhaustionInferiors() + { + return beforeAddExhaustionInferiors; + } + + public String[] getOverrideAddExhaustionSuperiors() + { + return overrideAddExhaustionSuperiors; + } + + public String[] getOverrideAddExhaustionInferiors() + { + return overrideAddExhaustionInferiors; + } + + public String[] getAfterAddExhaustionSuperiors() + { + return afterAddExhaustionSuperiors; + } + + public String[] getAfterAddExhaustionInferiors() + { + return afterAddExhaustionInferiors; + } + + public void setBeforeAddExhaustionSuperiors(String[] value) + { + beforeAddExhaustionSuperiors = value; + } + + public void setBeforeAddExhaustionInferiors(String[] value) + { + beforeAddExhaustionInferiors = value; + } + + public void setOverrideAddExhaustionSuperiors(String[] value) + { + overrideAddExhaustionSuperiors = value; + } + + public void setOverrideAddExhaustionInferiors(String[] value) + { + overrideAddExhaustionInferiors = value; + } + + public void setAfterAddExhaustionSuperiors(String[] value) + { + afterAddExhaustionSuperiors = value; + } + + public void setAfterAddExhaustionInferiors(String[] value) + { + afterAddExhaustionInferiors = value; + } + + public String[] getBeforeAddExperienceSuperiors() + { + return beforeAddExperienceSuperiors; + } + + public String[] getBeforeAddExperienceInferiors() + { + return beforeAddExperienceInferiors; + } + + public String[] getOverrideAddExperienceSuperiors() + { + return overrideAddExperienceSuperiors; + } + + public String[] getOverrideAddExperienceInferiors() + { + return overrideAddExperienceInferiors; + } + + public String[] getAfterAddExperienceSuperiors() + { + return afterAddExperienceSuperiors; + } + + public String[] getAfterAddExperienceInferiors() + { + return afterAddExperienceInferiors; + } + + public void setBeforeAddExperienceSuperiors(String[] value) + { + beforeAddExperienceSuperiors = value; + } + + public void setBeforeAddExperienceInferiors(String[] value) + { + beforeAddExperienceInferiors = value; + } + + public void setOverrideAddExperienceSuperiors(String[] value) + { + overrideAddExperienceSuperiors = value; + } + + public void setOverrideAddExperienceInferiors(String[] value) + { + overrideAddExperienceInferiors = value; + } + + public void setAfterAddExperienceSuperiors(String[] value) + { + afterAddExperienceSuperiors = value; + } + + public void setAfterAddExperienceInferiors(String[] value) + { + afterAddExperienceInferiors = value; + } + + public String[] getBeforeAddExperienceLevelSuperiors() + { + return beforeAddExperienceLevelSuperiors; + } + + public String[] getBeforeAddExperienceLevelInferiors() + { + return beforeAddExperienceLevelInferiors; + } + + public String[] getOverrideAddExperienceLevelSuperiors() + { + return overrideAddExperienceLevelSuperiors; + } + + public String[] getOverrideAddExperienceLevelInferiors() + { + return overrideAddExperienceLevelInferiors; + } + + public String[] getAfterAddExperienceLevelSuperiors() + { + return afterAddExperienceLevelSuperiors; + } + + public String[] getAfterAddExperienceLevelInferiors() + { + return afterAddExperienceLevelInferiors; + } + + public void setBeforeAddExperienceLevelSuperiors(String[] value) + { + beforeAddExperienceLevelSuperiors = value; + } + + public void setBeforeAddExperienceLevelInferiors(String[] value) + { + beforeAddExperienceLevelInferiors = value; + } + + public void setOverrideAddExperienceLevelSuperiors(String[] value) + { + overrideAddExperienceLevelSuperiors = value; + } + + public void setOverrideAddExperienceLevelInferiors(String[] value) + { + overrideAddExperienceLevelInferiors = value; + } + + public void setAfterAddExperienceLevelSuperiors(String[] value) + { + afterAddExperienceLevelSuperiors = value; + } + + public void setAfterAddExperienceLevelInferiors(String[] value) + { + afterAddExperienceLevelInferiors = value; + } + + public String[] getBeforeAddMovementStatSuperiors() + { + return beforeAddMovementStatSuperiors; + } + + public String[] getBeforeAddMovementStatInferiors() + { + return beforeAddMovementStatInferiors; + } + + public String[] getOverrideAddMovementStatSuperiors() + { + return overrideAddMovementStatSuperiors; + } + + public String[] getOverrideAddMovementStatInferiors() + { + return overrideAddMovementStatInferiors; + } + + public String[] getAfterAddMovementStatSuperiors() + { + return afterAddMovementStatSuperiors; + } + + public String[] getAfterAddMovementStatInferiors() + { + return afterAddMovementStatInferiors; + } + + public void setBeforeAddMovementStatSuperiors(String[] value) + { + beforeAddMovementStatSuperiors = value; + } + + public void setBeforeAddMovementStatInferiors(String[] value) + { + beforeAddMovementStatInferiors = value; + } + + public void setOverrideAddMovementStatSuperiors(String[] value) + { + overrideAddMovementStatSuperiors = value; + } + + public void setOverrideAddMovementStatInferiors(String[] value) + { + overrideAddMovementStatInferiors = value; + } + + public void setAfterAddMovementStatSuperiors(String[] value) + { + afterAddMovementStatSuperiors = value; + } + + public void setAfterAddMovementStatInferiors(String[] value) + { + afterAddMovementStatInferiors = value; + } + + public String[] getBeforeAttackEntityFromSuperiors() + { + return beforeAttackEntityFromSuperiors; + } + + public String[] getBeforeAttackEntityFromInferiors() + { + return beforeAttackEntityFromInferiors; + } + + public String[] getOverrideAttackEntityFromSuperiors() + { + return overrideAttackEntityFromSuperiors; + } + + public String[] getOverrideAttackEntityFromInferiors() + { + return overrideAttackEntityFromInferiors; + } + + public String[] getAfterAttackEntityFromSuperiors() + { + return afterAttackEntityFromSuperiors; + } + + public String[] getAfterAttackEntityFromInferiors() + { + return afterAttackEntityFromInferiors; + } + + public void setBeforeAttackEntityFromSuperiors(String[] value) + { + beforeAttackEntityFromSuperiors = value; + } + + public void setBeforeAttackEntityFromInferiors(String[] value) + { + beforeAttackEntityFromInferiors = value; + } + + public void setOverrideAttackEntityFromSuperiors(String[] value) + { + overrideAttackEntityFromSuperiors = value; + } + + public void setOverrideAttackEntityFromInferiors(String[] value) + { + overrideAttackEntityFromInferiors = value; + } + + public void setAfterAttackEntityFromSuperiors(String[] value) + { + afterAttackEntityFromSuperiors = value; + } + + public void setAfterAttackEntityFromInferiors(String[] value) + { + afterAttackEntityFromInferiors = value; + } + + public String[] getBeforeAttackTargetEntityWithCurrentItemSuperiors() + { + return beforeAttackTargetEntityWithCurrentItemSuperiors; + } + + public String[] getBeforeAttackTargetEntityWithCurrentItemInferiors() + { + return beforeAttackTargetEntityWithCurrentItemInferiors; + } + + public String[] getOverrideAttackTargetEntityWithCurrentItemSuperiors() + { + return overrideAttackTargetEntityWithCurrentItemSuperiors; + } + + public String[] getOverrideAttackTargetEntityWithCurrentItemInferiors() + { + return overrideAttackTargetEntityWithCurrentItemInferiors; + } + + public String[] getAfterAttackTargetEntityWithCurrentItemSuperiors() + { + return afterAttackTargetEntityWithCurrentItemSuperiors; + } + + public String[] getAfterAttackTargetEntityWithCurrentItemInferiors() + { + return afterAttackTargetEntityWithCurrentItemInferiors; + } + + public void setBeforeAttackTargetEntityWithCurrentItemSuperiors(String[] value) + { + beforeAttackTargetEntityWithCurrentItemSuperiors = value; + } + + public void setBeforeAttackTargetEntityWithCurrentItemInferiors(String[] value) + { + beforeAttackTargetEntityWithCurrentItemInferiors = value; + } + + public void setOverrideAttackTargetEntityWithCurrentItemSuperiors(String[] value) + { + overrideAttackTargetEntityWithCurrentItemSuperiors = value; + } + + public void setOverrideAttackTargetEntityWithCurrentItemInferiors(String[] value) + { + overrideAttackTargetEntityWithCurrentItemInferiors = value; + } + + public void setAfterAttackTargetEntityWithCurrentItemSuperiors(String[] value) + { + afterAttackTargetEntityWithCurrentItemSuperiors = value; + } + + public void setAfterAttackTargetEntityWithCurrentItemInferiors(String[] value) + { + afterAttackTargetEntityWithCurrentItemInferiors = value; + } + + public String[] getBeforeCanBreatheUnderwaterSuperiors() + { + return beforeCanBreatheUnderwaterSuperiors; + } + + public String[] getBeforeCanBreatheUnderwaterInferiors() + { + return beforeCanBreatheUnderwaterInferiors; + } + + public String[] getOverrideCanBreatheUnderwaterSuperiors() + { + return overrideCanBreatheUnderwaterSuperiors; + } + + public String[] getOverrideCanBreatheUnderwaterInferiors() + { + return overrideCanBreatheUnderwaterInferiors; + } + + public String[] getAfterCanBreatheUnderwaterSuperiors() + { + return afterCanBreatheUnderwaterSuperiors; + } + + public String[] getAfterCanBreatheUnderwaterInferiors() + { + return afterCanBreatheUnderwaterInferiors; + } + + public void setBeforeCanBreatheUnderwaterSuperiors(String[] value) + { + beforeCanBreatheUnderwaterSuperiors = value; + } + + public void setBeforeCanBreatheUnderwaterInferiors(String[] value) + { + beforeCanBreatheUnderwaterInferiors = value; + } + + public void setOverrideCanBreatheUnderwaterSuperiors(String[] value) + { + overrideCanBreatheUnderwaterSuperiors = value; + } + + public void setOverrideCanBreatheUnderwaterInferiors(String[] value) + { + overrideCanBreatheUnderwaterInferiors = value; + } + + public void setAfterCanBreatheUnderwaterSuperiors(String[] value) + { + afterCanBreatheUnderwaterSuperiors = value; + } + + public void setAfterCanBreatheUnderwaterInferiors(String[] value) + { + afterCanBreatheUnderwaterInferiors = value; + } + + public String[] getBeforeCanHarvestBlockSuperiors() + { + return beforeCanHarvestBlockSuperiors; + } + + public String[] getBeforeCanHarvestBlockInferiors() + { + return beforeCanHarvestBlockInferiors; + } + + public String[] getOverrideCanHarvestBlockSuperiors() + { + return overrideCanHarvestBlockSuperiors; + } + + public String[] getOverrideCanHarvestBlockInferiors() + { + return overrideCanHarvestBlockInferiors; + } + + public String[] getAfterCanHarvestBlockSuperiors() + { + return afterCanHarvestBlockSuperiors; + } + + public String[] getAfterCanHarvestBlockInferiors() + { + return afterCanHarvestBlockInferiors; + } + + public void setBeforeCanHarvestBlockSuperiors(String[] value) + { + beforeCanHarvestBlockSuperiors = value; + } + + public void setBeforeCanHarvestBlockInferiors(String[] value) + { + beforeCanHarvestBlockInferiors = value; + } + + public void setOverrideCanHarvestBlockSuperiors(String[] value) + { + overrideCanHarvestBlockSuperiors = value; + } + + public void setOverrideCanHarvestBlockInferiors(String[] value) + { + overrideCanHarvestBlockInferiors = value; + } + + public void setAfterCanHarvestBlockSuperiors(String[] value) + { + afterCanHarvestBlockSuperiors = value; + } + + public void setAfterCanHarvestBlockInferiors(String[] value) + { + afterCanHarvestBlockInferiors = value; + } + + public String[] getBeforeCanPlayerEditSuperiors() + { + return beforeCanPlayerEditSuperiors; + } + + public String[] getBeforeCanPlayerEditInferiors() + { + return beforeCanPlayerEditInferiors; + } + + public String[] getOverrideCanPlayerEditSuperiors() + { + return overrideCanPlayerEditSuperiors; + } + + public String[] getOverrideCanPlayerEditInferiors() + { + return overrideCanPlayerEditInferiors; + } + + public String[] getAfterCanPlayerEditSuperiors() + { + return afterCanPlayerEditSuperiors; + } + + public String[] getAfterCanPlayerEditInferiors() + { + return afterCanPlayerEditInferiors; + } + + public void setBeforeCanPlayerEditSuperiors(String[] value) + { + beforeCanPlayerEditSuperiors = value; + } + + public void setBeforeCanPlayerEditInferiors(String[] value) + { + beforeCanPlayerEditInferiors = value; + } + + public void setOverrideCanPlayerEditSuperiors(String[] value) + { + overrideCanPlayerEditSuperiors = value; + } + + public void setOverrideCanPlayerEditInferiors(String[] value) + { + overrideCanPlayerEditInferiors = value; + } + + public void setAfterCanPlayerEditSuperiors(String[] value) + { + afterCanPlayerEditSuperiors = value; + } + + public void setAfterCanPlayerEditInferiors(String[] value) + { + afterCanPlayerEditInferiors = value; + } + + public String[] getBeforeCanTriggerWalkingSuperiors() + { + return beforeCanTriggerWalkingSuperiors; + } + + public String[] getBeforeCanTriggerWalkingInferiors() + { + return beforeCanTriggerWalkingInferiors; + } + + public String[] getOverrideCanTriggerWalkingSuperiors() + { + return overrideCanTriggerWalkingSuperiors; + } + + public String[] getOverrideCanTriggerWalkingInferiors() + { + return overrideCanTriggerWalkingInferiors; + } + + public String[] getAfterCanTriggerWalkingSuperiors() + { + return afterCanTriggerWalkingSuperiors; + } + + public String[] getAfterCanTriggerWalkingInferiors() + { + return afterCanTriggerWalkingInferiors; + } + + public void setBeforeCanTriggerWalkingSuperiors(String[] value) + { + beforeCanTriggerWalkingSuperiors = value; + } + + public void setBeforeCanTriggerWalkingInferiors(String[] value) + { + beforeCanTriggerWalkingInferiors = value; + } + + public void setOverrideCanTriggerWalkingSuperiors(String[] value) + { + overrideCanTriggerWalkingSuperiors = value; + } + + public void setOverrideCanTriggerWalkingInferiors(String[] value) + { + overrideCanTriggerWalkingInferiors = value; + } + + public void setAfterCanTriggerWalkingSuperiors(String[] value) + { + afterCanTriggerWalkingSuperiors = value; + } + + public void setAfterCanTriggerWalkingInferiors(String[] value) + { + afterCanTriggerWalkingInferiors = value; + } + + public String[] getBeforeClonePlayerSuperiors() + { + return beforeClonePlayerSuperiors; + } + + public String[] getBeforeClonePlayerInferiors() + { + return beforeClonePlayerInferiors; + } + + public String[] getOverrideClonePlayerSuperiors() + { + return overrideClonePlayerSuperiors; + } + + public String[] getOverrideClonePlayerInferiors() + { + return overrideClonePlayerInferiors; + } + + public String[] getAfterClonePlayerSuperiors() + { + return afterClonePlayerSuperiors; + } + + public String[] getAfterClonePlayerInferiors() + { + return afterClonePlayerInferiors; + } + + public void setBeforeClonePlayerSuperiors(String[] value) + { + beforeClonePlayerSuperiors = value; + } + + public void setBeforeClonePlayerInferiors(String[] value) + { + beforeClonePlayerInferiors = value; + } + + public void setOverrideClonePlayerSuperiors(String[] value) + { + overrideClonePlayerSuperiors = value; + } + + public void setOverrideClonePlayerInferiors(String[] value) + { + overrideClonePlayerInferiors = value; + } + + public void setAfterClonePlayerSuperiors(String[] value) + { + afterClonePlayerSuperiors = value; + } + + public void setAfterClonePlayerInferiors(String[] value) + { + afterClonePlayerInferiors = value; + } + + public String[] getBeforeDamageEntitySuperiors() + { + return beforeDamageEntitySuperiors; + } + + public String[] getBeforeDamageEntityInferiors() + { + return beforeDamageEntityInferiors; + } + + public String[] getOverrideDamageEntitySuperiors() + { + return overrideDamageEntitySuperiors; + } + + public String[] getOverrideDamageEntityInferiors() + { + return overrideDamageEntityInferiors; + } + + public String[] getAfterDamageEntitySuperiors() + { + return afterDamageEntitySuperiors; + } + + public String[] getAfterDamageEntityInferiors() + { + return afterDamageEntityInferiors; + } + + public void setBeforeDamageEntitySuperiors(String[] value) + { + beforeDamageEntitySuperiors = value; + } + + public void setBeforeDamageEntityInferiors(String[] value) + { + beforeDamageEntityInferiors = value; + } + + public void setOverrideDamageEntitySuperiors(String[] value) + { + overrideDamageEntitySuperiors = value; + } + + public void setOverrideDamageEntityInferiors(String[] value) + { + overrideDamageEntityInferiors = value; + } + + public void setAfterDamageEntitySuperiors(String[] value) + { + afterDamageEntitySuperiors = value; + } + + public void setAfterDamageEntityInferiors(String[] value) + { + afterDamageEntityInferiors = value; + } + + public String[] getBeforeDisplayGUIChestSuperiors() + { + return beforeDisplayGUIChestSuperiors; + } + + public String[] getBeforeDisplayGUIChestInferiors() + { + return beforeDisplayGUIChestInferiors; + } + + public String[] getOverrideDisplayGUIChestSuperiors() + { + return overrideDisplayGUIChestSuperiors; + } + + public String[] getOverrideDisplayGUIChestInferiors() + { + return overrideDisplayGUIChestInferiors; + } + + public String[] getAfterDisplayGUIChestSuperiors() + { + return afterDisplayGUIChestSuperiors; + } + + public String[] getAfterDisplayGUIChestInferiors() + { + return afterDisplayGUIChestInferiors; + } + + public void setBeforeDisplayGUIChestSuperiors(String[] value) + { + beforeDisplayGUIChestSuperiors = value; + } + + public void setBeforeDisplayGUIChestInferiors(String[] value) + { + beforeDisplayGUIChestInferiors = value; + } + + public void setOverrideDisplayGUIChestSuperiors(String[] value) + { + overrideDisplayGUIChestSuperiors = value; + } + + public void setOverrideDisplayGUIChestInferiors(String[] value) + { + overrideDisplayGUIChestInferiors = value; + } + + public void setAfterDisplayGUIChestSuperiors(String[] value) + { + afterDisplayGUIChestSuperiors = value; + } + + public void setAfterDisplayGUIChestInferiors(String[] value) + { + afterDisplayGUIChestInferiors = value; + } + + public String[] getBeforeDisplayGUIDispenserSuperiors() + { + return beforeDisplayGUIDispenserSuperiors; + } + + public String[] getBeforeDisplayGUIDispenserInferiors() + { + return beforeDisplayGUIDispenserInferiors; + } + + public String[] getOverrideDisplayGUIDispenserSuperiors() + { + return overrideDisplayGUIDispenserSuperiors; + } + + public String[] getOverrideDisplayGUIDispenserInferiors() + { + return overrideDisplayGUIDispenserInferiors; + } + + public String[] getAfterDisplayGUIDispenserSuperiors() + { + return afterDisplayGUIDispenserSuperiors; + } + + public String[] getAfterDisplayGUIDispenserInferiors() + { + return afterDisplayGUIDispenserInferiors; + } + + public void setBeforeDisplayGUIDispenserSuperiors(String[] value) + { + beforeDisplayGUIDispenserSuperiors = value; + } + + public void setBeforeDisplayGUIDispenserInferiors(String[] value) + { + beforeDisplayGUIDispenserInferiors = value; + } + + public void setOverrideDisplayGUIDispenserSuperiors(String[] value) + { + overrideDisplayGUIDispenserSuperiors = value; + } + + public void setOverrideDisplayGUIDispenserInferiors(String[] value) + { + overrideDisplayGUIDispenserInferiors = value; + } + + public void setAfterDisplayGUIDispenserSuperiors(String[] value) + { + afterDisplayGUIDispenserSuperiors = value; + } + + public void setAfterDisplayGUIDispenserInferiors(String[] value) + { + afterDisplayGUIDispenserInferiors = value; + } + + public String[] getBeforeDisplayGUIFurnaceSuperiors() + { + return beforeDisplayGUIFurnaceSuperiors; + } + + public String[] getBeforeDisplayGUIFurnaceInferiors() + { + return beforeDisplayGUIFurnaceInferiors; + } + + public String[] getOverrideDisplayGUIFurnaceSuperiors() + { + return overrideDisplayGUIFurnaceSuperiors; + } + + public String[] getOverrideDisplayGUIFurnaceInferiors() + { + return overrideDisplayGUIFurnaceInferiors; + } + + public String[] getAfterDisplayGUIFurnaceSuperiors() + { + return afterDisplayGUIFurnaceSuperiors; + } + + public String[] getAfterDisplayGUIFurnaceInferiors() + { + return afterDisplayGUIFurnaceInferiors; + } + + public void setBeforeDisplayGUIFurnaceSuperiors(String[] value) + { + beforeDisplayGUIFurnaceSuperiors = value; + } + + public void setBeforeDisplayGUIFurnaceInferiors(String[] value) + { + beforeDisplayGUIFurnaceInferiors = value; + } + + public void setOverrideDisplayGUIFurnaceSuperiors(String[] value) + { + overrideDisplayGUIFurnaceSuperiors = value; + } + + public void setOverrideDisplayGUIFurnaceInferiors(String[] value) + { + overrideDisplayGUIFurnaceInferiors = value; + } + + public void setAfterDisplayGUIFurnaceSuperiors(String[] value) + { + afterDisplayGUIFurnaceSuperiors = value; + } + + public void setAfterDisplayGUIFurnaceInferiors(String[] value) + { + afterDisplayGUIFurnaceInferiors = value; + } + + public String[] getBeforeDisplayGUIWorkbenchSuperiors() + { + return beforeDisplayGUIWorkbenchSuperiors; + } + + public String[] getBeforeDisplayGUIWorkbenchInferiors() + { + return beforeDisplayGUIWorkbenchInferiors; + } + + public String[] getOverrideDisplayGUIWorkbenchSuperiors() + { + return overrideDisplayGUIWorkbenchSuperiors; + } + + public String[] getOverrideDisplayGUIWorkbenchInferiors() + { + return overrideDisplayGUIWorkbenchInferiors; + } + + public String[] getAfterDisplayGUIWorkbenchSuperiors() + { + return afterDisplayGUIWorkbenchSuperiors; + } + + public String[] getAfterDisplayGUIWorkbenchInferiors() + { + return afterDisplayGUIWorkbenchInferiors; + } + + public void setBeforeDisplayGUIWorkbenchSuperiors(String[] value) + { + beforeDisplayGUIWorkbenchSuperiors = value; + } + + public void setBeforeDisplayGUIWorkbenchInferiors(String[] value) + { + beforeDisplayGUIWorkbenchInferiors = value; + } + + public void setOverrideDisplayGUIWorkbenchSuperiors(String[] value) + { + overrideDisplayGUIWorkbenchSuperiors = value; + } + + public void setOverrideDisplayGUIWorkbenchInferiors(String[] value) + { + overrideDisplayGUIWorkbenchInferiors = value; + } + + public void setAfterDisplayGUIWorkbenchSuperiors(String[] value) + { + afterDisplayGUIWorkbenchSuperiors = value; + } + + public void setAfterDisplayGUIWorkbenchInferiors(String[] value) + { + afterDisplayGUIWorkbenchInferiors = value; + } + + public String[] getBeforeDropOneItemSuperiors() + { + return beforeDropOneItemSuperiors; + } + + public String[] getBeforeDropOneItemInferiors() + { + return beforeDropOneItemInferiors; + } + + public String[] getOverrideDropOneItemSuperiors() + { + return overrideDropOneItemSuperiors; + } + + public String[] getOverrideDropOneItemInferiors() + { + return overrideDropOneItemInferiors; + } + + public String[] getAfterDropOneItemSuperiors() + { + return afterDropOneItemSuperiors; + } + + public String[] getAfterDropOneItemInferiors() + { + return afterDropOneItemInferiors; + } + + public void setBeforeDropOneItemSuperiors(String[] value) + { + beforeDropOneItemSuperiors = value; + } + + public void setBeforeDropOneItemInferiors(String[] value) + { + beforeDropOneItemInferiors = value; + } + + public void setOverrideDropOneItemSuperiors(String[] value) + { + overrideDropOneItemSuperiors = value; + } + + public void setOverrideDropOneItemInferiors(String[] value) + { + overrideDropOneItemInferiors = value; + } + + public void setAfterDropOneItemSuperiors(String[] value) + { + afterDropOneItemSuperiors = value; + } + + public void setAfterDropOneItemInferiors(String[] value) + { + afterDropOneItemInferiors = value; + } + + public String[] getBeforeDropPlayerItemSuperiors() + { + return beforeDropPlayerItemSuperiors; + } + + public String[] getBeforeDropPlayerItemInferiors() + { + return beforeDropPlayerItemInferiors; + } + + public String[] getOverrideDropPlayerItemSuperiors() + { + return overrideDropPlayerItemSuperiors; + } + + public String[] getOverrideDropPlayerItemInferiors() + { + return overrideDropPlayerItemInferiors; + } + + public String[] getAfterDropPlayerItemSuperiors() + { + return afterDropPlayerItemSuperiors; + } + + public String[] getAfterDropPlayerItemInferiors() + { + return afterDropPlayerItemInferiors; + } + + public void setBeforeDropPlayerItemSuperiors(String[] value) + { + beforeDropPlayerItemSuperiors = value; + } + + public void setBeforeDropPlayerItemInferiors(String[] value) + { + beforeDropPlayerItemInferiors = value; + } + + public void setOverrideDropPlayerItemSuperiors(String[] value) + { + overrideDropPlayerItemSuperiors = value; + } + + public void setOverrideDropPlayerItemInferiors(String[] value) + { + overrideDropPlayerItemInferiors = value; + } + + public void setAfterDropPlayerItemSuperiors(String[] value) + { + afterDropPlayerItemSuperiors = value; + } + + public void setAfterDropPlayerItemInferiors(String[] value) + { + afterDropPlayerItemInferiors = value; + } + + public String[] getBeforeFallSuperiors() + { + return beforeFallSuperiors; + } + + public String[] getBeforeFallInferiors() + { + return beforeFallInferiors; + } + + public String[] getOverrideFallSuperiors() + { + return overrideFallSuperiors; + } + + public String[] getOverrideFallInferiors() + { + return overrideFallInferiors; + } + + public String[] getAfterFallSuperiors() + { + return afterFallSuperiors; + } + + public String[] getAfterFallInferiors() + { + return afterFallInferiors; + } + + public void setBeforeFallSuperiors(String[] value) + { + beforeFallSuperiors = value; + } + + public void setBeforeFallInferiors(String[] value) + { + beforeFallInferiors = value; + } + + public void setOverrideFallSuperiors(String[] value) + { + overrideFallSuperiors = value; + } + + public void setOverrideFallInferiors(String[] value) + { + overrideFallInferiors = value; + } + + public void setAfterFallSuperiors(String[] value) + { + afterFallSuperiors = value; + } + + public void setAfterFallInferiors(String[] value) + { + afterFallInferiors = value; + } + + public String[] getBeforeGetAIMoveSpeedSuperiors() + { + return beforeGetAIMoveSpeedSuperiors; + } + + public String[] getBeforeGetAIMoveSpeedInferiors() + { + return beforeGetAIMoveSpeedInferiors; + } + + public String[] getOverrideGetAIMoveSpeedSuperiors() + { + return overrideGetAIMoveSpeedSuperiors; + } + + public String[] getOverrideGetAIMoveSpeedInferiors() + { + return overrideGetAIMoveSpeedInferiors; + } + + public String[] getAfterGetAIMoveSpeedSuperiors() + { + return afterGetAIMoveSpeedSuperiors; + } + + public String[] getAfterGetAIMoveSpeedInferiors() + { + return afterGetAIMoveSpeedInferiors; + } + + public void setBeforeGetAIMoveSpeedSuperiors(String[] value) + { + beforeGetAIMoveSpeedSuperiors = value; + } + + public void setBeforeGetAIMoveSpeedInferiors(String[] value) + { + beforeGetAIMoveSpeedInferiors = value; + } + + public void setOverrideGetAIMoveSpeedSuperiors(String[] value) + { + overrideGetAIMoveSpeedSuperiors = value; + } + + public void setOverrideGetAIMoveSpeedInferiors(String[] value) + { + overrideGetAIMoveSpeedInferiors = value; + } + + public void setAfterGetAIMoveSpeedSuperiors(String[] value) + { + afterGetAIMoveSpeedSuperiors = value; + } + + public void setAfterGetAIMoveSpeedInferiors(String[] value) + { + afterGetAIMoveSpeedInferiors = value; + } + + public String[] getBeforeGetCurrentPlayerStrVsBlockSuperiors() + { + return beforeGetCurrentPlayerStrVsBlockSuperiors; + } + + public String[] getBeforeGetCurrentPlayerStrVsBlockInferiors() + { + return beforeGetCurrentPlayerStrVsBlockInferiors; + } + + public String[] getOverrideGetCurrentPlayerStrVsBlockSuperiors() + { + return overrideGetCurrentPlayerStrVsBlockSuperiors; + } + + public String[] getOverrideGetCurrentPlayerStrVsBlockInferiors() + { + return overrideGetCurrentPlayerStrVsBlockInferiors; + } + + public String[] getAfterGetCurrentPlayerStrVsBlockSuperiors() + { + return afterGetCurrentPlayerStrVsBlockSuperiors; + } + + public String[] getAfterGetCurrentPlayerStrVsBlockInferiors() + { + return afterGetCurrentPlayerStrVsBlockInferiors; + } + + public void setBeforeGetCurrentPlayerStrVsBlockSuperiors(String[] value) + { + beforeGetCurrentPlayerStrVsBlockSuperiors = value; + } + + public void setBeforeGetCurrentPlayerStrVsBlockInferiors(String[] value) + { + beforeGetCurrentPlayerStrVsBlockInferiors = value; + } + + public void setOverrideGetCurrentPlayerStrVsBlockSuperiors(String[] value) + { + overrideGetCurrentPlayerStrVsBlockSuperiors = value; + } + + public void setOverrideGetCurrentPlayerStrVsBlockInferiors(String[] value) + { + overrideGetCurrentPlayerStrVsBlockInferiors = value; + } + + public void setAfterGetCurrentPlayerStrVsBlockSuperiors(String[] value) + { + afterGetCurrentPlayerStrVsBlockSuperiors = value; + } + + public void setAfterGetCurrentPlayerStrVsBlockInferiors(String[] value) + { + afterGetCurrentPlayerStrVsBlockInferiors = value; + } + + public String[] getBeforeGetCurrentPlayerStrVsBlockForgeSuperiors() + { + return beforeGetCurrentPlayerStrVsBlockForgeSuperiors; + } + + public String[] getBeforeGetCurrentPlayerStrVsBlockForgeInferiors() + { + return beforeGetCurrentPlayerStrVsBlockForgeInferiors; + } + + public String[] getOverrideGetCurrentPlayerStrVsBlockForgeSuperiors() + { + return overrideGetCurrentPlayerStrVsBlockForgeSuperiors; + } + + public String[] getOverrideGetCurrentPlayerStrVsBlockForgeInferiors() + { + return overrideGetCurrentPlayerStrVsBlockForgeInferiors; + } + + public String[] getAfterGetCurrentPlayerStrVsBlockForgeSuperiors() + { + return afterGetCurrentPlayerStrVsBlockForgeSuperiors; + } + + public String[] getAfterGetCurrentPlayerStrVsBlockForgeInferiors() + { + return afterGetCurrentPlayerStrVsBlockForgeInferiors; + } + + public void setBeforeGetCurrentPlayerStrVsBlockForgeSuperiors(String[] value) + { + beforeGetCurrentPlayerStrVsBlockForgeSuperiors = value; + } + + public void setBeforeGetCurrentPlayerStrVsBlockForgeInferiors(String[] value) + { + beforeGetCurrentPlayerStrVsBlockForgeInferiors = value; + } + + public void setOverrideGetCurrentPlayerStrVsBlockForgeSuperiors(String[] value) + { + overrideGetCurrentPlayerStrVsBlockForgeSuperiors = value; + } + + public void setOverrideGetCurrentPlayerStrVsBlockForgeInferiors(String[] value) + { + overrideGetCurrentPlayerStrVsBlockForgeInferiors = value; + } + + public void setAfterGetCurrentPlayerStrVsBlockForgeSuperiors(String[] value) + { + afterGetCurrentPlayerStrVsBlockForgeSuperiors = value; + } + + public void setAfterGetCurrentPlayerStrVsBlockForgeInferiors(String[] value) + { + afterGetCurrentPlayerStrVsBlockForgeInferiors = value; + } + + public String[] getBeforeGetDistanceSqSuperiors() + { + return beforeGetDistanceSqSuperiors; + } + + public String[] getBeforeGetDistanceSqInferiors() + { + return beforeGetDistanceSqInferiors; + } + + public String[] getOverrideGetDistanceSqSuperiors() + { + return overrideGetDistanceSqSuperiors; + } + + public String[] getOverrideGetDistanceSqInferiors() + { + return overrideGetDistanceSqInferiors; + } + + public String[] getAfterGetDistanceSqSuperiors() + { + return afterGetDistanceSqSuperiors; + } + + public String[] getAfterGetDistanceSqInferiors() + { + return afterGetDistanceSqInferiors; + } + + public void setBeforeGetDistanceSqSuperiors(String[] value) + { + beforeGetDistanceSqSuperiors = value; + } + + public void setBeforeGetDistanceSqInferiors(String[] value) + { + beforeGetDistanceSqInferiors = value; + } + + public void setOverrideGetDistanceSqSuperiors(String[] value) + { + overrideGetDistanceSqSuperiors = value; + } + + public void setOverrideGetDistanceSqInferiors(String[] value) + { + overrideGetDistanceSqInferiors = value; + } + + public void setAfterGetDistanceSqSuperiors(String[] value) + { + afterGetDistanceSqSuperiors = value; + } + + public void setAfterGetDistanceSqInferiors(String[] value) + { + afterGetDistanceSqInferiors = value; + } + + public String[] getBeforeGetBrightnessSuperiors() + { + return beforeGetBrightnessSuperiors; + } + + public String[] getBeforeGetBrightnessInferiors() + { + return beforeGetBrightnessInferiors; + } + + public String[] getOverrideGetBrightnessSuperiors() + { + return overrideGetBrightnessSuperiors; + } + + public String[] getOverrideGetBrightnessInferiors() + { + return overrideGetBrightnessInferiors; + } + + public String[] getAfterGetBrightnessSuperiors() + { + return afterGetBrightnessSuperiors; + } + + public String[] getAfterGetBrightnessInferiors() + { + return afterGetBrightnessInferiors; + } + + public void setBeforeGetBrightnessSuperiors(String[] value) + { + beforeGetBrightnessSuperiors = value; + } + + public void setBeforeGetBrightnessInferiors(String[] value) + { + beforeGetBrightnessInferiors = value; + } + + public void setOverrideGetBrightnessSuperiors(String[] value) + { + overrideGetBrightnessSuperiors = value; + } + + public void setOverrideGetBrightnessInferiors(String[] value) + { + overrideGetBrightnessInferiors = value; + } + + public void setAfterGetBrightnessSuperiors(String[] value) + { + afterGetBrightnessSuperiors = value; + } + + public void setAfterGetBrightnessInferiors(String[] value) + { + afterGetBrightnessInferiors = value; + } + + public String[] getBeforeGetEyeHeightSuperiors() + { + return beforeGetEyeHeightSuperiors; + } + + public String[] getBeforeGetEyeHeightInferiors() + { + return beforeGetEyeHeightInferiors; + } + + public String[] getOverrideGetEyeHeightSuperiors() + { + return overrideGetEyeHeightSuperiors; + } + + public String[] getOverrideGetEyeHeightInferiors() + { + return overrideGetEyeHeightInferiors; + } + + public String[] getAfterGetEyeHeightSuperiors() + { + return afterGetEyeHeightSuperiors; + } + + public String[] getAfterGetEyeHeightInferiors() + { + return afterGetEyeHeightInferiors; + } + + public void setBeforeGetEyeHeightSuperiors(String[] value) + { + beforeGetEyeHeightSuperiors = value; + } + + public void setBeforeGetEyeHeightInferiors(String[] value) + { + beforeGetEyeHeightInferiors = value; + } + + public void setOverrideGetEyeHeightSuperiors(String[] value) + { + overrideGetEyeHeightSuperiors = value; + } + + public void setOverrideGetEyeHeightInferiors(String[] value) + { + overrideGetEyeHeightInferiors = value; + } + + public void setAfterGetEyeHeightSuperiors(String[] value) + { + afterGetEyeHeightSuperiors = value; + } + + public void setAfterGetEyeHeightInferiors(String[] value) + { + afterGetEyeHeightInferiors = value; + } + + public String[] getBeforeHealSuperiors() + { + return beforeHealSuperiors; + } + + public String[] getBeforeHealInferiors() + { + return beforeHealInferiors; + } + + public String[] getOverrideHealSuperiors() + { + return overrideHealSuperiors; + } + + public String[] getOverrideHealInferiors() + { + return overrideHealInferiors; + } + + public String[] getAfterHealSuperiors() + { + return afterHealSuperiors; + } + + public String[] getAfterHealInferiors() + { + return afterHealInferiors; + } + + public void setBeforeHealSuperiors(String[] value) + { + beforeHealSuperiors = value; + } + + public void setBeforeHealInferiors(String[] value) + { + beforeHealInferiors = value; + } + + public void setOverrideHealSuperiors(String[] value) + { + overrideHealSuperiors = value; + } + + public void setOverrideHealInferiors(String[] value) + { + overrideHealInferiors = value; + } + + public void setAfterHealSuperiors(String[] value) + { + afterHealSuperiors = value; + } + + public void setAfterHealInferiors(String[] value) + { + afterHealInferiors = value; + } + + public String[] getBeforeIsEntityInsideOpaqueBlockSuperiors() + { + return beforeIsEntityInsideOpaqueBlockSuperiors; + } + + public String[] getBeforeIsEntityInsideOpaqueBlockInferiors() + { + return beforeIsEntityInsideOpaqueBlockInferiors; + } + + public String[] getOverrideIsEntityInsideOpaqueBlockSuperiors() + { + return overrideIsEntityInsideOpaqueBlockSuperiors; + } + + public String[] getOverrideIsEntityInsideOpaqueBlockInferiors() + { + return overrideIsEntityInsideOpaqueBlockInferiors; + } + + public String[] getAfterIsEntityInsideOpaqueBlockSuperiors() + { + return afterIsEntityInsideOpaqueBlockSuperiors; + } + + public String[] getAfterIsEntityInsideOpaqueBlockInferiors() + { + return afterIsEntityInsideOpaqueBlockInferiors; + } + + public void setBeforeIsEntityInsideOpaqueBlockSuperiors(String[] value) + { + beforeIsEntityInsideOpaqueBlockSuperiors = value; + } + + public void setBeforeIsEntityInsideOpaqueBlockInferiors(String[] value) + { + beforeIsEntityInsideOpaqueBlockInferiors = value; + } + + public void setOverrideIsEntityInsideOpaqueBlockSuperiors(String[] value) + { + overrideIsEntityInsideOpaqueBlockSuperiors = value; + } + + public void setOverrideIsEntityInsideOpaqueBlockInferiors(String[] value) + { + overrideIsEntityInsideOpaqueBlockInferiors = value; + } + + public void setAfterIsEntityInsideOpaqueBlockSuperiors(String[] value) + { + afterIsEntityInsideOpaqueBlockSuperiors = value; + } + + public void setAfterIsEntityInsideOpaqueBlockInferiors(String[] value) + { + afterIsEntityInsideOpaqueBlockInferiors = value; + } + + public String[] getBeforeIsInWaterSuperiors() + { + return beforeIsInWaterSuperiors; + } + + public String[] getBeforeIsInWaterInferiors() + { + return beforeIsInWaterInferiors; + } + + public String[] getOverrideIsInWaterSuperiors() + { + return overrideIsInWaterSuperiors; + } + + public String[] getOverrideIsInWaterInferiors() + { + return overrideIsInWaterInferiors; + } + + public String[] getAfterIsInWaterSuperiors() + { + return afterIsInWaterSuperiors; + } + + public String[] getAfterIsInWaterInferiors() + { + return afterIsInWaterInferiors; + } + + public void setBeforeIsInWaterSuperiors(String[] value) + { + beforeIsInWaterSuperiors = value; + } + + public void setBeforeIsInWaterInferiors(String[] value) + { + beforeIsInWaterInferiors = value; + } + + public void setOverrideIsInWaterSuperiors(String[] value) + { + overrideIsInWaterSuperiors = value; + } + + public void setOverrideIsInWaterInferiors(String[] value) + { + overrideIsInWaterInferiors = value; + } + + public void setAfterIsInWaterSuperiors(String[] value) + { + afterIsInWaterSuperiors = value; + } + + public void setAfterIsInWaterInferiors(String[] value) + { + afterIsInWaterInferiors = value; + } + + public String[] getBeforeIsInsideOfMaterialSuperiors() + { + return beforeIsInsideOfMaterialSuperiors; + } + + public String[] getBeforeIsInsideOfMaterialInferiors() + { + return beforeIsInsideOfMaterialInferiors; + } + + public String[] getOverrideIsInsideOfMaterialSuperiors() + { + return overrideIsInsideOfMaterialSuperiors; + } + + public String[] getOverrideIsInsideOfMaterialInferiors() + { + return overrideIsInsideOfMaterialInferiors; + } + + public String[] getAfterIsInsideOfMaterialSuperiors() + { + return afterIsInsideOfMaterialSuperiors; + } + + public String[] getAfterIsInsideOfMaterialInferiors() + { + return afterIsInsideOfMaterialInferiors; + } + + public void setBeforeIsInsideOfMaterialSuperiors(String[] value) + { + beforeIsInsideOfMaterialSuperiors = value; + } + + public void setBeforeIsInsideOfMaterialInferiors(String[] value) + { + beforeIsInsideOfMaterialInferiors = value; + } + + public void setOverrideIsInsideOfMaterialSuperiors(String[] value) + { + overrideIsInsideOfMaterialSuperiors = value; + } + + public void setOverrideIsInsideOfMaterialInferiors(String[] value) + { + overrideIsInsideOfMaterialInferiors = value; + } + + public void setAfterIsInsideOfMaterialSuperiors(String[] value) + { + afterIsInsideOfMaterialSuperiors = value; + } + + public void setAfterIsInsideOfMaterialInferiors(String[] value) + { + afterIsInsideOfMaterialInferiors = value; + } + + public String[] getBeforeIsOnLadderSuperiors() + { + return beforeIsOnLadderSuperiors; + } + + public String[] getBeforeIsOnLadderInferiors() + { + return beforeIsOnLadderInferiors; + } + + public String[] getOverrideIsOnLadderSuperiors() + { + return overrideIsOnLadderSuperiors; + } + + public String[] getOverrideIsOnLadderInferiors() + { + return overrideIsOnLadderInferiors; + } + + public String[] getAfterIsOnLadderSuperiors() + { + return afterIsOnLadderSuperiors; + } + + public String[] getAfterIsOnLadderInferiors() + { + return afterIsOnLadderInferiors; + } + + public void setBeforeIsOnLadderSuperiors(String[] value) + { + beforeIsOnLadderSuperiors = value; + } + + public void setBeforeIsOnLadderInferiors(String[] value) + { + beforeIsOnLadderInferiors = value; + } + + public void setOverrideIsOnLadderSuperiors(String[] value) + { + overrideIsOnLadderSuperiors = value; + } + + public void setOverrideIsOnLadderInferiors(String[] value) + { + overrideIsOnLadderInferiors = value; + } + + public void setAfterIsOnLadderSuperiors(String[] value) + { + afterIsOnLadderSuperiors = value; + } + + public void setAfterIsOnLadderInferiors(String[] value) + { + afterIsOnLadderInferiors = value; + } + + public String[] getBeforeIsPlayerSleepingSuperiors() + { + return beforeIsPlayerSleepingSuperiors; + } + + public String[] getBeforeIsPlayerSleepingInferiors() + { + return beforeIsPlayerSleepingInferiors; + } + + public String[] getOverrideIsPlayerSleepingSuperiors() + { + return overrideIsPlayerSleepingSuperiors; + } + + public String[] getOverrideIsPlayerSleepingInferiors() + { + return overrideIsPlayerSleepingInferiors; + } + + public String[] getAfterIsPlayerSleepingSuperiors() + { + return afterIsPlayerSleepingSuperiors; + } + + public String[] getAfterIsPlayerSleepingInferiors() + { + return afterIsPlayerSleepingInferiors; + } + + public void setBeforeIsPlayerSleepingSuperiors(String[] value) + { + beforeIsPlayerSleepingSuperiors = value; + } + + public void setBeforeIsPlayerSleepingInferiors(String[] value) + { + beforeIsPlayerSleepingInferiors = value; + } + + public void setOverrideIsPlayerSleepingSuperiors(String[] value) + { + overrideIsPlayerSleepingSuperiors = value; + } + + public void setOverrideIsPlayerSleepingInferiors(String[] value) + { + overrideIsPlayerSleepingInferiors = value; + } + + public void setAfterIsPlayerSleepingSuperiors(String[] value) + { + afterIsPlayerSleepingSuperiors = value; + } + + public void setAfterIsPlayerSleepingInferiors(String[] value) + { + afterIsPlayerSleepingInferiors = value; + } + + public String[] getBeforeIsSneakingSuperiors() + { + return beforeIsSneakingSuperiors; + } + + public String[] getBeforeIsSneakingInferiors() + { + return beforeIsSneakingInferiors; + } + + public String[] getOverrideIsSneakingSuperiors() + { + return overrideIsSneakingSuperiors; + } + + public String[] getOverrideIsSneakingInferiors() + { + return overrideIsSneakingInferiors; + } + + public String[] getAfterIsSneakingSuperiors() + { + return afterIsSneakingSuperiors; + } + + public String[] getAfterIsSneakingInferiors() + { + return afterIsSneakingInferiors; + } + + public void setBeforeIsSneakingSuperiors(String[] value) + { + beforeIsSneakingSuperiors = value; + } + + public void setBeforeIsSneakingInferiors(String[] value) + { + beforeIsSneakingInferiors = value; + } + + public void setOverrideIsSneakingSuperiors(String[] value) + { + overrideIsSneakingSuperiors = value; + } + + public void setOverrideIsSneakingInferiors(String[] value) + { + overrideIsSneakingInferiors = value; + } + + public void setAfterIsSneakingSuperiors(String[] value) + { + afterIsSneakingSuperiors = value; + } + + public void setAfterIsSneakingInferiors(String[] value) + { + afterIsSneakingInferiors = value; + } + + public String[] getBeforeJumpSuperiors() + { + return beforeJumpSuperiors; + } + + public String[] getBeforeJumpInferiors() + { + return beforeJumpInferiors; + } + + public String[] getOverrideJumpSuperiors() + { + return overrideJumpSuperiors; + } + + public String[] getOverrideJumpInferiors() + { + return overrideJumpInferiors; + } + + public String[] getAfterJumpSuperiors() + { + return afterJumpSuperiors; + } + + public String[] getAfterJumpInferiors() + { + return afterJumpInferiors; + } + + public void setBeforeJumpSuperiors(String[] value) + { + beforeJumpSuperiors = value; + } + + public void setBeforeJumpInferiors(String[] value) + { + beforeJumpInferiors = value; + } + + public void setOverrideJumpSuperiors(String[] value) + { + overrideJumpSuperiors = value; + } + + public void setOverrideJumpInferiors(String[] value) + { + overrideJumpInferiors = value; + } + + public void setAfterJumpSuperiors(String[] value) + { + afterJumpSuperiors = value; + } + + public void setAfterJumpInferiors(String[] value) + { + afterJumpInferiors = value; + } + + public String[] getBeforeKnockBackSuperiors() + { + return beforeKnockBackSuperiors; + } + + public String[] getBeforeKnockBackInferiors() + { + return beforeKnockBackInferiors; + } + + public String[] getOverrideKnockBackSuperiors() + { + return overrideKnockBackSuperiors; + } + + public String[] getOverrideKnockBackInferiors() + { + return overrideKnockBackInferiors; + } + + public String[] getAfterKnockBackSuperiors() + { + return afterKnockBackSuperiors; + } + + public String[] getAfterKnockBackInferiors() + { + return afterKnockBackInferiors; + } + + public void setBeforeKnockBackSuperiors(String[] value) + { + beforeKnockBackSuperiors = value; + } + + public void setBeforeKnockBackInferiors(String[] value) + { + beforeKnockBackInferiors = value; + } + + public void setOverrideKnockBackSuperiors(String[] value) + { + overrideKnockBackSuperiors = value; + } + + public void setOverrideKnockBackInferiors(String[] value) + { + overrideKnockBackInferiors = value; + } + + public void setAfterKnockBackSuperiors(String[] value) + { + afterKnockBackSuperiors = value; + } + + public void setAfterKnockBackInferiors(String[] value) + { + afterKnockBackInferiors = value; + } + + public String[] getBeforeMountEntitySuperiors() + { + return beforeMountEntitySuperiors; + } + + public String[] getBeforeMountEntityInferiors() + { + return beforeMountEntityInferiors; + } + + public String[] getOverrideMountEntitySuperiors() + { + return overrideMountEntitySuperiors; + } + + public String[] getOverrideMountEntityInferiors() + { + return overrideMountEntityInferiors; + } + + public String[] getAfterMountEntitySuperiors() + { + return afterMountEntitySuperiors; + } + + public String[] getAfterMountEntityInferiors() + { + return afterMountEntityInferiors; + } + + public void setBeforeMountEntitySuperiors(String[] value) + { + beforeMountEntitySuperiors = value; + } + + public void setBeforeMountEntityInferiors(String[] value) + { + beforeMountEntityInferiors = value; + } + + public void setOverrideMountEntitySuperiors(String[] value) + { + overrideMountEntitySuperiors = value; + } + + public void setOverrideMountEntityInferiors(String[] value) + { + overrideMountEntityInferiors = value; + } + + public void setAfterMountEntitySuperiors(String[] value) + { + afterMountEntitySuperiors = value; + } + + public void setAfterMountEntityInferiors(String[] value) + { + afterMountEntityInferiors = value; + } + + public String[] getBeforeMoveEntitySuperiors() + { + return beforeMoveEntitySuperiors; + } + + public String[] getBeforeMoveEntityInferiors() + { + return beforeMoveEntityInferiors; + } + + public String[] getOverrideMoveEntitySuperiors() + { + return overrideMoveEntitySuperiors; + } + + public String[] getOverrideMoveEntityInferiors() + { + return overrideMoveEntityInferiors; + } + + public String[] getAfterMoveEntitySuperiors() + { + return afterMoveEntitySuperiors; + } + + public String[] getAfterMoveEntityInferiors() + { + return afterMoveEntityInferiors; + } + + public void setBeforeMoveEntitySuperiors(String[] value) + { + beforeMoveEntitySuperiors = value; + } + + public void setBeforeMoveEntityInferiors(String[] value) + { + beforeMoveEntityInferiors = value; + } + + public void setOverrideMoveEntitySuperiors(String[] value) + { + overrideMoveEntitySuperiors = value; + } + + public void setOverrideMoveEntityInferiors(String[] value) + { + overrideMoveEntityInferiors = value; + } + + public void setAfterMoveEntitySuperiors(String[] value) + { + afterMoveEntitySuperiors = value; + } + + public void setAfterMoveEntityInferiors(String[] value) + { + afterMoveEntityInferiors = value; + } + + public String[] getBeforeMoveEntityWithHeadingSuperiors() + { + return beforeMoveEntityWithHeadingSuperiors; + } + + public String[] getBeforeMoveEntityWithHeadingInferiors() + { + return beforeMoveEntityWithHeadingInferiors; + } + + public String[] getOverrideMoveEntityWithHeadingSuperiors() + { + return overrideMoveEntityWithHeadingSuperiors; + } + + public String[] getOverrideMoveEntityWithHeadingInferiors() + { + return overrideMoveEntityWithHeadingInferiors; + } + + public String[] getAfterMoveEntityWithHeadingSuperiors() + { + return afterMoveEntityWithHeadingSuperiors; + } + + public String[] getAfterMoveEntityWithHeadingInferiors() + { + return afterMoveEntityWithHeadingInferiors; + } + + public void setBeforeMoveEntityWithHeadingSuperiors(String[] value) + { + beforeMoveEntityWithHeadingSuperiors = value; + } + + public void setBeforeMoveEntityWithHeadingInferiors(String[] value) + { + beforeMoveEntityWithHeadingInferiors = value; + } + + public void setOverrideMoveEntityWithHeadingSuperiors(String[] value) + { + overrideMoveEntityWithHeadingSuperiors = value; + } + + public void setOverrideMoveEntityWithHeadingInferiors(String[] value) + { + overrideMoveEntityWithHeadingInferiors = value; + } + + public void setAfterMoveEntityWithHeadingSuperiors(String[] value) + { + afterMoveEntityWithHeadingSuperiors = value; + } + + public void setAfterMoveEntityWithHeadingInferiors(String[] value) + { + afterMoveEntityWithHeadingInferiors = value; + } + + public String[] getBeforeMoveFlyingSuperiors() + { + return beforeMoveFlyingSuperiors; + } + + public String[] getBeforeMoveFlyingInferiors() + { + return beforeMoveFlyingInferiors; + } + + public String[] getOverrideMoveFlyingSuperiors() + { + return overrideMoveFlyingSuperiors; + } + + public String[] getOverrideMoveFlyingInferiors() + { + return overrideMoveFlyingInferiors; + } + + public String[] getAfterMoveFlyingSuperiors() + { + return afterMoveFlyingSuperiors; + } + + public String[] getAfterMoveFlyingInferiors() + { + return afterMoveFlyingInferiors; + } + + public void setBeforeMoveFlyingSuperiors(String[] value) + { + beforeMoveFlyingSuperiors = value; + } + + public void setBeforeMoveFlyingInferiors(String[] value) + { + beforeMoveFlyingInferiors = value; + } + + public void setOverrideMoveFlyingSuperiors(String[] value) + { + overrideMoveFlyingSuperiors = value; + } + + public void setOverrideMoveFlyingInferiors(String[] value) + { + overrideMoveFlyingInferiors = value; + } + + public void setAfterMoveFlyingSuperiors(String[] value) + { + afterMoveFlyingSuperiors = value; + } + + public void setAfterMoveFlyingInferiors(String[] value) + { + afterMoveFlyingInferiors = value; + } + + public String[] getBeforeOnDeathSuperiors() + { + return beforeOnDeathSuperiors; + } + + public String[] getBeforeOnDeathInferiors() + { + return beforeOnDeathInferiors; + } + + public String[] getOverrideOnDeathSuperiors() + { + return overrideOnDeathSuperiors; + } + + public String[] getOverrideOnDeathInferiors() + { + return overrideOnDeathInferiors; + } + + public String[] getAfterOnDeathSuperiors() + { + return afterOnDeathSuperiors; + } + + public String[] getAfterOnDeathInferiors() + { + return afterOnDeathInferiors; + } + + public void setBeforeOnDeathSuperiors(String[] value) + { + beforeOnDeathSuperiors = value; + } + + public void setBeforeOnDeathInferiors(String[] value) + { + beforeOnDeathInferiors = value; + } + + public void setOverrideOnDeathSuperiors(String[] value) + { + overrideOnDeathSuperiors = value; + } + + public void setOverrideOnDeathInferiors(String[] value) + { + overrideOnDeathInferiors = value; + } + + public void setAfterOnDeathSuperiors(String[] value) + { + afterOnDeathSuperiors = value; + } + + public void setAfterOnDeathInferiors(String[] value) + { + afterOnDeathInferiors = value; + } + + public String[] getBeforeOnLivingUpdateSuperiors() + { + return beforeOnLivingUpdateSuperiors; + } + + public String[] getBeforeOnLivingUpdateInferiors() + { + return beforeOnLivingUpdateInferiors; + } + + public String[] getOverrideOnLivingUpdateSuperiors() + { + return overrideOnLivingUpdateSuperiors; + } + + public String[] getOverrideOnLivingUpdateInferiors() + { + return overrideOnLivingUpdateInferiors; + } + + public String[] getAfterOnLivingUpdateSuperiors() + { + return afterOnLivingUpdateSuperiors; + } + + public String[] getAfterOnLivingUpdateInferiors() + { + return afterOnLivingUpdateInferiors; + } + + public void setBeforeOnLivingUpdateSuperiors(String[] value) + { + beforeOnLivingUpdateSuperiors = value; + } + + public void setBeforeOnLivingUpdateInferiors(String[] value) + { + beforeOnLivingUpdateInferiors = value; + } + + public void setOverrideOnLivingUpdateSuperiors(String[] value) + { + overrideOnLivingUpdateSuperiors = value; + } + + public void setOverrideOnLivingUpdateInferiors(String[] value) + { + overrideOnLivingUpdateInferiors = value; + } + + public void setAfterOnLivingUpdateSuperiors(String[] value) + { + afterOnLivingUpdateSuperiors = value; + } + + public void setAfterOnLivingUpdateInferiors(String[] value) + { + afterOnLivingUpdateInferiors = value; + } + + public String[] getBeforeOnKillEntitySuperiors() + { + return beforeOnKillEntitySuperiors; + } + + public String[] getBeforeOnKillEntityInferiors() + { + return beforeOnKillEntityInferiors; + } + + public String[] getOverrideOnKillEntitySuperiors() + { + return overrideOnKillEntitySuperiors; + } + + public String[] getOverrideOnKillEntityInferiors() + { + return overrideOnKillEntityInferiors; + } + + public String[] getAfterOnKillEntitySuperiors() + { + return afterOnKillEntitySuperiors; + } + + public String[] getAfterOnKillEntityInferiors() + { + return afterOnKillEntityInferiors; + } + + public void setBeforeOnKillEntitySuperiors(String[] value) + { + beforeOnKillEntitySuperiors = value; + } + + public void setBeforeOnKillEntityInferiors(String[] value) + { + beforeOnKillEntityInferiors = value; + } + + public void setOverrideOnKillEntitySuperiors(String[] value) + { + overrideOnKillEntitySuperiors = value; + } + + public void setOverrideOnKillEntityInferiors(String[] value) + { + overrideOnKillEntityInferiors = value; + } + + public void setAfterOnKillEntitySuperiors(String[] value) + { + afterOnKillEntitySuperiors = value; + } + + public void setAfterOnKillEntityInferiors(String[] value) + { + afterOnKillEntityInferiors = value; + } + + public String[] getBeforeOnStruckByLightningSuperiors() + { + return beforeOnStruckByLightningSuperiors; + } + + public String[] getBeforeOnStruckByLightningInferiors() + { + return beforeOnStruckByLightningInferiors; + } + + public String[] getOverrideOnStruckByLightningSuperiors() + { + return overrideOnStruckByLightningSuperiors; + } + + public String[] getOverrideOnStruckByLightningInferiors() + { + return overrideOnStruckByLightningInferiors; + } + + public String[] getAfterOnStruckByLightningSuperiors() + { + return afterOnStruckByLightningSuperiors; + } + + public String[] getAfterOnStruckByLightningInferiors() + { + return afterOnStruckByLightningInferiors; + } + + public void setBeforeOnStruckByLightningSuperiors(String[] value) + { + beforeOnStruckByLightningSuperiors = value; + } + + public void setBeforeOnStruckByLightningInferiors(String[] value) + { + beforeOnStruckByLightningInferiors = value; + } + + public void setOverrideOnStruckByLightningSuperiors(String[] value) + { + overrideOnStruckByLightningSuperiors = value; + } + + public void setOverrideOnStruckByLightningInferiors(String[] value) + { + overrideOnStruckByLightningInferiors = value; + } + + public void setAfterOnStruckByLightningSuperiors(String[] value) + { + afterOnStruckByLightningSuperiors = value; + } + + public void setAfterOnStruckByLightningInferiors(String[] value) + { + afterOnStruckByLightningInferiors = value; + } + + public String[] getBeforeOnUpdateSuperiors() + { + return beforeOnUpdateSuperiors; + } + + public String[] getBeforeOnUpdateInferiors() + { + return beforeOnUpdateInferiors; + } + + public String[] getOverrideOnUpdateSuperiors() + { + return overrideOnUpdateSuperiors; + } + + public String[] getOverrideOnUpdateInferiors() + { + return overrideOnUpdateInferiors; + } + + public String[] getAfterOnUpdateSuperiors() + { + return afterOnUpdateSuperiors; + } + + public String[] getAfterOnUpdateInferiors() + { + return afterOnUpdateInferiors; + } + + public void setBeforeOnUpdateSuperiors(String[] value) + { + beforeOnUpdateSuperiors = value; + } + + public void setBeforeOnUpdateInferiors(String[] value) + { + beforeOnUpdateInferiors = value; + } + + public void setOverrideOnUpdateSuperiors(String[] value) + { + overrideOnUpdateSuperiors = value; + } + + public void setOverrideOnUpdateInferiors(String[] value) + { + overrideOnUpdateInferiors = value; + } + + public void setAfterOnUpdateSuperiors(String[] value) + { + afterOnUpdateSuperiors = value; + } + + public void setAfterOnUpdateInferiors(String[] value) + { + afterOnUpdateInferiors = value; + } + + public String[] getBeforeOnUpdateEntitySuperiors() + { + return beforeOnUpdateEntitySuperiors; + } + + public String[] getBeforeOnUpdateEntityInferiors() + { + return beforeOnUpdateEntityInferiors; + } + + public String[] getOverrideOnUpdateEntitySuperiors() + { + return overrideOnUpdateEntitySuperiors; + } + + public String[] getOverrideOnUpdateEntityInferiors() + { + return overrideOnUpdateEntityInferiors; + } + + public String[] getAfterOnUpdateEntitySuperiors() + { + return afterOnUpdateEntitySuperiors; + } + + public String[] getAfterOnUpdateEntityInferiors() + { + return afterOnUpdateEntityInferiors; + } + + public void setBeforeOnUpdateEntitySuperiors(String[] value) + { + beforeOnUpdateEntitySuperiors = value; + } + + public void setBeforeOnUpdateEntityInferiors(String[] value) + { + beforeOnUpdateEntityInferiors = value; + } + + public void setOverrideOnUpdateEntitySuperiors(String[] value) + { + overrideOnUpdateEntitySuperiors = value; + } + + public void setOverrideOnUpdateEntityInferiors(String[] value) + { + overrideOnUpdateEntityInferiors = value; + } + + public void setAfterOnUpdateEntitySuperiors(String[] value) + { + afterOnUpdateEntitySuperiors = value; + } + + public void setAfterOnUpdateEntityInferiors(String[] value) + { + afterOnUpdateEntityInferiors = value; + } + + public String[] getBeforeReadEntityFromNBTSuperiors() + { + return beforeReadEntityFromNBTSuperiors; + } + + public String[] getBeforeReadEntityFromNBTInferiors() + { + return beforeReadEntityFromNBTInferiors; + } + + public String[] getOverrideReadEntityFromNBTSuperiors() + { + return overrideReadEntityFromNBTSuperiors; + } + + public String[] getOverrideReadEntityFromNBTInferiors() + { + return overrideReadEntityFromNBTInferiors; + } + + public String[] getAfterReadEntityFromNBTSuperiors() + { + return afterReadEntityFromNBTSuperiors; + } + + public String[] getAfterReadEntityFromNBTInferiors() + { + return afterReadEntityFromNBTInferiors; + } + + public void setBeforeReadEntityFromNBTSuperiors(String[] value) + { + beforeReadEntityFromNBTSuperiors = value; + } + + public void setBeforeReadEntityFromNBTInferiors(String[] value) + { + beforeReadEntityFromNBTInferiors = value; + } + + public void setOverrideReadEntityFromNBTSuperiors(String[] value) + { + overrideReadEntityFromNBTSuperiors = value; + } + + public void setOverrideReadEntityFromNBTInferiors(String[] value) + { + overrideReadEntityFromNBTInferiors = value; + } + + public void setAfterReadEntityFromNBTSuperiors(String[] value) + { + afterReadEntityFromNBTSuperiors = value; + } + + public void setAfterReadEntityFromNBTInferiors(String[] value) + { + afterReadEntityFromNBTInferiors = value; + } + + public String[] getBeforeSetDeadSuperiors() + { + return beforeSetDeadSuperiors; + } + + public String[] getBeforeSetDeadInferiors() + { + return beforeSetDeadInferiors; + } + + public String[] getOverrideSetDeadSuperiors() + { + return overrideSetDeadSuperiors; + } + + public String[] getOverrideSetDeadInferiors() + { + return overrideSetDeadInferiors; + } + + public String[] getAfterSetDeadSuperiors() + { + return afterSetDeadSuperiors; + } + + public String[] getAfterSetDeadInferiors() + { + return afterSetDeadInferiors; + } + + public void setBeforeSetDeadSuperiors(String[] value) + { + beforeSetDeadSuperiors = value; + } + + public void setBeforeSetDeadInferiors(String[] value) + { + beforeSetDeadInferiors = value; + } + + public void setOverrideSetDeadSuperiors(String[] value) + { + overrideSetDeadSuperiors = value; + } + + public void setOverrideSetDeadInferiors(String[] value) + { + overrideSetDeadInferiors = value; + } + + public void setAfterSetDeadSuperiors(String[] value) + { + afterSetDeadSuperiors = value; + } + + public void setAfterSetDeadInferiors(String[] value) + { + afterSetDeadInferiors = value; + } + + public String[] getBeforeSetEntityActionStateSuperiors() + { + return beforeSetEntityActionStateSuperiors; + } + + public String[] getBeforeSetEntityActionStateInferiors() + { + return beforeSetEntityActionStateInferiors; + } + + public String[] getOverrideSetEntityActionStateSuperiors() + { + return overrideSetEntityActionStateSuperiors; + } + + public String[] getOverrideSetEntityActionStateInferiors() + { + return overrideSetEntityActionStateInferiors; + } + + public String[] getAfterSetEntityActionStateSuperiors() + { + return afterSetEntityActionStateSuperiors; + } + + public String[] getAfterSetEntityActionStateInferiors() + { + return afterSetEntityActionStateInferiors; + } + + public void setBeforeSetEntityActionStateSuperiors(String[] value) + { + beforeSetEntityActionStateSuperiors = value; + } + + public void setBeforeSetEntityActionStateInferiors(String[] value) + { + beforeSetEntityActionStateInferiors = value; + } + + public void setOverrideSetEntityActionStateSuperiors(String[] value) + { + overrideSetEntityActionStateSuperiors = value; + } + + public void setOverrideSetEntityActionStateInferiors(String[] value) + { + overrideSetEntityActionStateInferiors = value; + } + + public void setAfterSetEntityActionStateSuperiors(String[] value) + { + afterSetEntityActionStateSuperiors = value; + } + + public void setAfterSetEntityActionStateInferiors(String[] value) + { + afterSetEntityActionStateInferiors = value; + } + + public String[] getBeforeSetPositionSuperiors() + { + return beforeSetPositionSuperiors; + } + + public String[] getBeforeSetPositionInferiors() + { + return beforeSetPositionInferiors; + } + + public String[] getOverrideSetPositionSuperiors() + { + return overrideSetPositionSuperiors; + } + + public String[] getOverrideSetPositionInferiors() + { + return overrideSetPositionInferiors; + } + + public String[] getAfterSetPositionSuperiors() + { + return afterSetPositionSuperiors; + } + + public String[] getAfterSetPositionInferiors() + { + return afterSetPositionInferiors; + } + + public void setBeforeSetPositionSuperiors(String[] value) + { + beforeSetPositionSuperiors = value; + } + + public void setBeforeSetPositionInferiors(String[] value) + { + beforeSetPositionInferiors = value; + } + + public void setOverrideSetPositionSuperiors(String[] value) + { + overrideSetPositionSuperiors = value; + } + + public void setOverrideSetPositionInferiors(String[] value) + { + overrideSetPositionInferiors = value; + } + + public void setAfterSetPositionSuperiors(String[] value) + { + afterSetPositionSuperiors = value; + } + + public void setAfterSetPositionInferiors(String[] value) + { + afterSetPositionInferiors = value; + } + + public String[] getBeforeSetSneakingSuperiors() + { + return beforeSetSneakingSuperiors; + } + + public String[] getBeforeSetSneakingInferiors() + { + return beforeSetSneakingInferiors; + } + + public String[] getOverrideSetSneakingSuperiors() + { + return overrideSetSneakingSuperiors; + } + + public String[] getOverrideSetSneakingInferiors() + { + return overrideSetSneakingInferiors; + } + + public String[] getAfterSetSneakingSuperiors() + { + return afterSetSneakingSuperiors; + } + + public String[] getAfterSetSneakingInferiors() + { + return afterSetSneakingInferiors; + } + + public void setBeforeSetSneakingSuperiors(String[] value) + { + beforeSetSneakingSuperiors = value; + } + + public void setBeforeSetSneakingInferiors(String[] value) + { + beforeSetSneakingInferiors = value; + } + + public void setOverrideSetSneakingSuperiors(String[] value) + { + overrideSetSneakingSuperiors = value; + } + + public void setOverrideSetSneakingInferiors(String[] value) + { + overrideSetSneakingInferiors = value; + } + + public void setAfterSetSneakingSuperiors(String[] value) + { + afterSetSneakingSuperiors = value; + } + + public void setAfterSetSneakingInferiors(String[] value) + { + afterSetSneakingInferiors = value; + } + + public String[] getBeforeSetSprintingSuperiors() + { + return beforeSetSprintingSuperiors; + } + + public String[] getBeforeSetSprintingInferiors() + { + return beforeSetSprintingInferiors; + } + + public String[] getOverrideSetSprintingSuperiors() + { + return overrideSetSprintingSuperiors; + } + + public String[] getOverrideSetSprintingInferiors() + { + return overrideSetSprintingInferiors; + } + + public String[] getAfterSetSprintingSuperiors() + { + return afterSetSprintingSuperiors; + } + + public String[] getAfterSetSprintingInferiors() + { + return afterSetSprintingInferiors; + } + + public void setBeforeSetSprintingSuperiors(String[] value) + { + beforeSetSprintingSuperiors = value; + } + + public void setBeforeSetSprintingInferiors(String[] value) + { + beforeSetSprintingInferiors = value; + } + + public void setOverrideSetSprintingSuperiors(String[] value) + { + overrideSetSprintingSuperiors = value; + } + + public void setOverrideSetSprintingInferiors(String[] value) + { + overrideSetSprintingInferiors = value; + } + + public void setAfterSetSprintingSuperiors(String[] value) + { + afterSetSprintingSuperiors = value; + } + + public void setAfterSetSprintingInferiors(String[] value) + { + afterSetSprintingInferiors = value; + } + + public String[] getBeforeSwingItemSuperiors() + { + return beforeSwingItemSuperiors; + } + + public String[] getBeforeSwingItemInferiors() + { + return beforeSwingItemInferiors; + } + + public String[] getOverrideSwingItemSuperiors() + { + return overrideSwingItemSuperiors; + } + + public String[] getOverrideSwingItemInferiors() + { + return overrideSwingItemInferiors; + } + + public String[] getAfterSwingItemSuperiors() + { + return afterSwingItemSuperiors; + } + + public String[] getAfterSwingItemInferiors() + { + return afterSwingItemInferiors; + } + + public void setBeforeSwingItemSuperiors(String[] value) + { + beforeSwingItemSuperiors = value; + } + + public void setBeforeSwingItemInferiors(String[] value) + { + beforeSwingItemInferiors = value; + } + + public void setOverrideSwingItemSuperiors(String[] value) + { + overrideSwingItemSuperiors = value; + } + + public void setOverrideSwingItemInferiors(String[] value) + { + overrideSwingItemInferiors = value; + } + + public void setAfterSwingItemSuperiors(String[] value) + { + afterSwingItemSuperiors = value; + } + + public void setAfterSwingItemInferiors(String[] value) + { + afterSwingItemInferiors = value; + } + + public String[] getBeforeUpdateEntityActionStateSuperiors() + { + return beforeUpdateEntityActionStateSuperiors; + } + + public String[] getBeforeUpdateEntityActionStateInferiors() + { + return beforeUpdateEntityActionStateInferiors; + } + + public String[] getOverrideUpdateEntityActionStateSuperiors() + { + return overrideUpdateEntityActionStateSuperiors; + } + + public String[] getOverrideUpdateEntityActionStateInferiors() + { + return overrideUpdateEntityActionStateInferiors; + } + + public String[] getAfterUpdateEntityActionStateSuperiors() + { + return afterUpdateEntityActionStateSuperiors; + } + + public String[] getAfterUpdateEntityActionStateInferiors() + { + return afterUpdateEntityActionStateInferiors; + } + + public void setBeforeUpdateEntityActionStateSuperiors(String[] value) + { + beforeUpdateEntityActionStateSuperiors = value; + } + + public void setBeforeUpdateEntityActionStateInferiors(String[] value) + { + beforeUpdateEntityActionStateInferiors = value; + } + + public void setOverrideUpdateEntityActionStateSuperiors(String[] value) + { + overrideUpdateEntityActionStateSuperiors = value; + } + + public void setOverrideUpdateEntityActionStateInferiors(String[] value) + { + overrideUpdateEntityActionStateInferiors = value; + } + + public void setAfterUpdateEntityActionStateSuperiors(String[] value) + { + afterUpdateEntityActionStateSuperiors = value; + } + + public void setAfterUpdateEntityActionStateInferiors(String[] value) + { + afterUpdateEntityActionStateInferiors = value; + } + + public String[] getBeforeUpdatePotionEffectsSuperiors() + { + return beforeUpdatePotionEffectsSuperiors; + } + + public String[] getBeforeUpdatePotionEffectsInferiors() + { + return beforeUpdatePotionEffectsInferiors; + } + + public String[] getOverrideUpdatePotionEffectsSuperiors() + { + return overrideUpdatePotionEffectsSuperiors; + } + + public String[] getOverrideUpdatePotionEffectsInferiors() + { + return overrideUpdatePotionEffectsInferiors; + } + + public String[] getAfterUpdatePotionEffectsSuperiors() + { + return afterUpdatePotionEffectsSuperiors; + } + + public String[] getAfterUpdatePotionEffectsInferiors() + { + return afterUpdatePotionEffectsInferiors; + } + + public void setBeforeUpdatePotionEffectsSuperiors(String[] value) + { + beforeUpdatePotionEffectsSuperiors = value; + } + + public void setBeforeUpdatePotionEffectsInferiors(String[] value) + { + beforeUpdatePotionEffectsInferiors = value; + } + + public void setOverrideUpdatePotionEffectsSuperiors(String[] value) + { + overrideUpdatePotionEffectsSuperiors = value; + } + + public void setOverrideUpdatePotionEffectsInferiors(String[] value) + { + overrideUpdatePotionEffectsInferiors = value; + } + + public void setAfterUpdatePotionEffectsSuperiors(String[] value) + { + afterUpdatePotionEffectsSuperiors = value; + } + + public void setAfterUpdatePotionEffectsInferiors(String[] value) + { + afterUpdatePotionEffectsInferiors = value; + } + + public String[] getBeforeUpdateRiddenSuperiors() + { + return beforeUpdateRiddenSuperiors; + } + + public String[] getBeforeUpdateRiddenInferiors() + { + return beforeUpdateRiddenInferiors; + } + + public String[] getOverrideUpdateRiddenSuperiors() + { + return overrideUpdateRiddenSuperiors; + } + + public String[] getOverrideUpdateRiddenInferiors() + { + return overrideUpdateRiddenInferiors; + } + + public String[] getAfterUpdateRiddenSuperiors() + { + return afterUpdateRiddenSuperiors; + } + + public String[] getAfterUpdateRiddenInferiors() + { + return afterUpdateRiddenInferiors; + } + + public void setBeforeUpdateRiddenSuperiors(String[] value) + { + beforeUpdateRiddenSuperiors = value; + } + + public void setBeforeUpdateRiddenInferiors(String[] value) + { + beforeUpdateRiddenInferiors = value; + } + + public void setOverrideUpdateRiddenSuperiors(String[] value) + { + overrideUpdateRiddenSuperiors = value; + } + + public void setOverrideUpdateRiddenInferiors(String[] value) + { + overrideUpdateRiddenInferiors = value; + } + + public void setAfterUpdateRiddenSuperiors(String[] value) + { + afterUpdateRiddenSuperiors = value; + } + + public void setAfterUpdateRiddenInferiors(String[] value) + { + afterUpdateRiddenInferiors = value; + } + + public String[] getBeforeWakeUpPlayerSuperiors() + { + return beforeWakeUpPlayerSuperiors; + } + + public String[] getBeforeWakeUpPlayerInferiors() + { + return beforeWakeUpPlayerInferiors; + } + + public String[] getOverrideWakeUpPlayerSuperiors() + { + return overrideWakeUpPlayerSuperiors; + } + + public String[] getOverrideWakeUpPlayerInferiors() + { + return overrideWakeUpPlayerInferiors; + } + + public String[] getAfterWakeUpPlayerSuperiors() + { + return afterWakeUpPlayerSuperiors; + } + + public String[] getAfterWakeUpPlayerInferiors() + { + return afterWakeUpPlayerInferiors; + } + + public void setBeforeWakeUpPlayerSuperiors(String[] value) + { + beforeWakeUpPlayerSuperiors = value; + } + + public void setBeforeWakeUpPlayerInferiors(String[] value) + { + beforeWakeUpPlayerInferiors = value; + } + + public void setOverrideWakeUpPlayerSuperiors(String[] value) + { + overrideWakeUpPlayerSuperiors = value; + } + + public void setOverrideWakeUpPlayerInferiors(String[] value) + { + overrideWakeUpPlayerInferiors = value; + } + + public void setAfterWakeUpPlayerSuperiors(String[] value) + { + afterWakeUpPlayerSuperiors = value; + } + + public void setAfterWakeUpPlayerInferiors(String[] value) + { + afterWakeUpPlayerInferiors = value; + } + + public String[] getBeforeWriteEntityToNBTSuperiors() + { + return beforeWriteEntityToNBTSuperiors; + } + + public String[] getBeforeWriteEntityToNBTInferiors() + { + return beforeWriteEntityToNBTInferiors; + } + + public String[] getOverrideWriteEntityToNBTSuperiors() + { + return overrideWriteEntityToNBTSuperiors; + } + + public String[] getOverrideWriteEntityToNBTInferiors() + { + return overrideWriteEntityToNBTInferiors; + } + + public String[] getAfterWriteEntityToNBTSuperiors() + { + return afterWriteEntityToNBTSuperiors; + } + + public String[] getAfterWriteEntityToNBTInferiors() + { + return afterWriteEntityToNBTInferiors; + } + + public void setBeforeWriteEntityToNBTSuperiors(String[] value) + { + beforeWriteEntityToNBTSuperiors = value; + } + + public void setBeforeWriteEntityToNBTInferiors(String[] value) + { + beforeWriteEntityToNBTInferiors = value; + } + + public void setOverrideWriteEntityToNBTSuperiors(String[] value) + { + overrideWriteEntityToNBTSuperiors = value; + } + + public void setOverrideWriteEntityToNBTInferiors(String[] value) + { + overrideWriteEntityToNBTInferiors = value; + } + + public void setAfterWriteEntityToNBTSuperiors(String[] value) + { + afterWriteEntityToNBTSuperiors = value; + } + + public void setAfterWriteEntityToNBTInferiors(String[] value) + { + afterWriteEntityToNBTInferiors = value; + } + +} diff --git a/src/Java/api/player/server/ServerPlayerClassVisitor.java b/src/Java/api/player/server/ServerPlayerClassVisitor.java new file mode 100644 index 0000000000..30581106d4 --- /dev/null +++ b/src/Java/api/player/server/ServerPlayerClassVisitor.java @@ -0,0 +1,4856 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.server; + +import java.io.*; + +import org.objectweb.asm.*; + +public final class ServerPlayerClassVisitor extends ClassVisitor +{ + public static final String targetClassName = "net.minecraft.entity.player.EntityPlayerMP"; + + private boolean hadLocalAddExhaustion; + private boolean hadLocalAddExperience; + private boolean hadLocalAddExperienceLevel; + private boolean hadLocalAddMovementStat; + private boolean hadLocalAttackEntityFrom; + private boolean hadLocalAttackTargetEntityWithCurrentItem; + private boolean hadLocalCanBreatheUnderwater; + private boolean hadLocalCanHarvestBlock; + private boolean hadLocalCanPlayerEdit; + private boolean hadLocalCanTriggerWalking; + private boolean hadLocalClonePlayer; + private boolean hadLocalDamageEntity; + private boolean hadLocalDisplayGUIChest; + private boolean hadLocalDisplayGUIDispenser; + private boolean hadLocalDisplayGUIFurnace; + private boolean hadLocalDisplayGUIWorkbench; + private boolean hadLocalDropOneItem; + private boolean hadLocalDropPlayerItem; + private boolean hadLocalFall; + private boolean hadLocalGetAIMoveSpeed; + private boolean hadLocalGetCurrentPlayerStrVsBlock; + private boolean hadLocalGetCurrentPlayerStrVsBlockForge; + private boolean hadLocalGetDistanceSq; + private boolean hadLocalGetBrightness; + private boolean hadLocalGetEyeHeight; + private boolean hadLocalHeal; + private boolean hadLocalIsEntityInsideOpaqueBlock; + private boolean hadLocalIsInWater; + private boolean hadLocalIsInsideOfMaterial; + private boolean hadLocalIsOnLadder; + private boolean hadLocalIsPlayerSleeping; + private boolean hadLocalIsSneaking; + private boolean hadLocalJump; + private boolean hadLocalKnockBack; + private boolean hadLocalMountEntity; + private boolean hadLocalMoveEntity; + private boolean hadLocalMoveEntityWithHeading; + private boolean hadLocalMoveFlying; + private boolean hadLocalOnDeath; + private boolean hadLocalOnLivingUpdate; + private boolean hadLocalOnKillEntity; + private boolean hadLocalOnStruckByLightning; + private boolean hadLocalOnUpdate; + private boolean hadLocalOnUpdateEntity; + private boolean hadLocalReadEntityFromNBT; + private boolean hadLocalSetDead; + private boolean hadLocalSetEntityActionState; + private boolean hadLocalSetPosition; + private boolean hadLocalSetSneaking; + private boolean hadLocalSetSprinting; + private boolean hadLocalSwingItem; + private boolean hadLocalUpdateEntityActionState; + private boolean hadLocalUpdatePotionEffects; + private boolean hadLocalUpdateRidden; + private boolean hadLocalWakeUpPlayer; + private boolean hadLocalWriteEntityToNBT; + + public static byte[] transform(byte[] bytes, boolean isObfuscated) + { + try + { + ByteArrayInputStream in = new ByteArrayInputStream(bytes); + ClassReader cr = new ClassReader(in); + ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS); + ServerPlayerClassVisitor p = new ServerPlayerClassVisitor(cw, isObfuscated); + + cr.accept(p, 0); + + byte[] result = cw.toByteArray(); + in.close(); + return result; + } + catch(IOException ioe) + { + throw new RuntimeException(ioe); + } + } + + private final boolean isObfuscated; + + public ServerPlayerClassVisitor(ClassVisitor classVisitor, boolean isObfuscated) + { + super(262144, classVisitor); + this.isObfuscated = isObfuscated; + } + + public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) + { + String[] newInterfaces = new String[interfaces.length + 1]; + for(int i=0; i")) + return new ServerPlayerConstructorVisitor(super.visitMethod(access, name, desc, signature, exceptions), isObfuscated); + + if(name.equals(isObfuscated ? "a" : "addExhaustion") && desc.equals("(F)V")) + { + hadLocalAddExhaustion = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddExhaustion", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "v" : "addExperience") && desc.equals("(I)V")) + { + hadLocalAddExperience = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddExperience", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "addExperienceLevel") && desc.equals("(I)V")) + { + hadLocalAddExperienceLevel = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddExperienceLevel", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "k" : "addMovementStat") && desc.equals("(DDD)V")) + { + hadLocalAddMovementStat = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddMovementStat", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "attackEntityFrom") && desc.equals(isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z")) + { + hadLocalAttackEntityFrom = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAttackEntityFrom", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "r" : "attackEntityPlayerMPEntityWithCurrentItem") && desc.equals(isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V")) + { + hadLocalAttackTargetEntityWithCurrentItem = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAttackTargetEntityWithCurrentItem", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "aE" : "canBreatheUnderwater") && desc.equals("()Z")) + { + hadLocalCanBreatheUnderwater = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanBreatheUnderwater", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "canHarvestBlock") && desc.equals(isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z")) + { + hadLocalCanHarvestBlock = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanHarvestBlock", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "canPlayerEdit") && desc.equals(isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z")) + { + hadLocalCanPlayerEdit = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanPlayerEdit", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "g_" : "canTriggerWalking") && desc.equals("()Z")) + { + hadLocalCanTriggerWalking = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanTriggerWalking", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "clonePlayer") && desc.equals(isObfuscated ? "(Lyz;Z)V" : "(Lnet/minecraft/entity/player/EntityPlayer;Z)V")) + { + hadLocalClonePlayer = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localClonePlayer", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "d" : "damageEntity") && desc.equals(isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V")) + { + hadLocalDamageEntity = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDamageEntity", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "displayGUIChest") && desc.equals(isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V")) + { + hadLocalDisplayGUIChest = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIChest", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "func_146102_a") && desc.equals(isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V")) + { + hadLocalDisplayGUIDispenser = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIDispenser", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "func_146101_a") && desc.equals(isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V")) + { + hadLocalDisplayGUIFurnace = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIFurnace", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "b" : "displayGUIWorkbench") && desc.equals("(III)V")) + { + hadLocalDisplayGUIWorkbench = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIWorkbench", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "dropOneItem") && desc.equals(isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;")) + { + hadLocalDropOneItem = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropOneItem", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "dropPlayerItemWithRandomChoice") && desc.equals(isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;")) + { + hadLocalDropPlayerItem = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropPlayerItem", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "b" : "fall") && desc.equals("(F)V")) + { + hadLocalFall = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localFall", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "bl" : "getAIMoveSpeed") && desc.equals("()F")) + { + hadLocalGetAIMoveSpeed = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetAIMoveSpeed", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "getCurrentPlayerStrVsBlock") && desc.equals(isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F")) + { + hadLocalGetCurrentPlayerStrVsBlock = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetCurrentPlayerStrVsBlock", desc, signature, exceptions); + } + + if(name.equals("getBreakSpeed") && desc.equals(isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F")) + { + hadLocalGetCurrentPlayerStrVsBlockForge = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetCurrentPlayerStrVsBlockForge", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "e" : "getDistanceSq") && desc.equals("(DDD)D")) + { + hadLocalGetDistanceSq = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetDistanceSq", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "d" : "getBrightness") && desc.equals("(F)F")) + { + hadLocalGetBrightness = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBrightness", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "g" : "getEyeHeight") && desc.equals("()F")) + { + hadLocalGetEyeHeight = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetEyeHeight", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "f" : "heal") && desc.equals("(F)V")) + { + hadLocalHeal = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localHeal", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "aa" : "isEntityInsideOpaqueBlock") && desc.equals("()Z")) + { + hadLocalIsEntityInsideOpaqueBlock = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsEntityInsideOpaqueBlock", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "M" : "isInWater") && desc.equals("()Z")) + { + hadLocalIsInWater = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsInWater", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "isInsideOfMaterial") && desc.equals(isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z")) + { + hadLocalIsInsideOfMaterial = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsInsideOfMaterial", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "h_" : "isOnLadder") && desc.equals("()Z")) + { + hadLocalIsOnLadder = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsOnLadder", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "bm" : "isPlayerSleeping") && desc.equals("()Z")) + { + hadLocalIsPlayerSleeping = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsPlayerSleeping", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "an" : "isSneaking") && desc.equals("()Z")) + { + hadLocalIsSneaking = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsSneaking", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "bj" : "jump") && desc.equals("()V")) + { + hadLocalJump = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localJump", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "knockBack") && desc.equals(isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V")) + { + hadLocalKnockBack = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localKnockBack", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "mountEntity") && desc.equals(isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V")) + { + hadLocalMountEntity = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMountEntity", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "d" : "moveEntity") && desc.equals("(DDD)V")) + { + hadLocalMoveEntity = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMoveEntity", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "e" : "moveEntityWithHeading") && desc.equals("(FF)V")) + { + hadLocalMoveEntityWithHeading = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMoveEntityWithHeading", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "moveFlying") && desc.equals("(FFF)V")) + { + hadLocalMoveFlying = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMoveFlying", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "onDeath") && desc.equals(isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V")) + { + hadLocalOnDeath = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnDeath", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "e" : "onLivingUpdate") && desc.equals("()V")) + { + hadLocalOnLivingUpdate = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnLivingUpdate", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "onKillEntity") && desc.equals(isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V")) + { + hadLocalOnKillEntity = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnKillEntity", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "onStruckByLightning") && desc.equals(isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V")) + { + hadLocalOnStruckByLightning = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnStruckByLightning", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "h" : "onUpdate") && desc.equals("()V")) + { + hadLocalOnUpdate = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnUpdate", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "i" : "onUpdateEntity") && desc.equals("()V")) + { + hadLocalOnUpdateEntity = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnUpdateEntity", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "readEntityFromNBT") && desc.equals(isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V")) + { + hadLocalReadEntityFromNBT = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localReadEntityFromNBT", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "B" : "setDead") && desc.equals("()V")) + { + hadLocalSetDead = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetDead", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "setEntityActionState") && desc.equals("(FFZZ)V")) + { + hadLocalSetEntityActionState = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetEntityActionState", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "b" : "setPosition") && desc.equals("(DDD)V")) + { + hadLocalSetPosition = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetPosition", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "b" : "setSneaking") && desc.equals("(Z)V")) + { + hadLocalSetSneaking = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetSneaking", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "c" : "setSprinting") && desc.equals("(Z)V")) + { + hadLocalSetSprinting = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetSprinting", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "ba" : "swingItem") && desc.equals("()V")) + { + hadLocalSwingItem = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSwingItem", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "bq" : "updateEntityActionState") && desc.equals("()V")) + { + hadLocalUpdateEntityActionState = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdateEntityActionState", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "aO" : "updatePotionEffects") && desc.equals("()V")) + { + hadLocalUpdatePotionEffects = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdatePotionEffects", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "ab" : "updateRidden") && desc.equals("()V")) + { + hadLocalUpdateRidden = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdateRidden", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "a" : "wakeUpPlayer") && desc.equals("(ZZZ)V")) + { + hadLocalWakeUpPlayer = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localWakeUpPlayer", desc, signature, exceptions); + } + + if(name.equals(isObfuscated ? "b" : "writeEntityToNBT") && desc.equals(isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V")) + { + hadLocalWriteEntityToNBT = true; + return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localWriteEntityToNBT", desc, signature, exceptions); + } + + return super.visitMethod(access, name, desc, signature, exceptions); + } + + public void visitEnd() + { + MethodVisitor mv; + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "addExhaustion", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "addExhaustion", "(Lapi/player/server/IServerPlayerAPI;F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAddExhaustion", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "addExhaustion", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAddExhaustion", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "addExhaustion", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalAddExhaustion) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddExhaustion", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "addExhaustion", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "v" : "addExperience", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "addExperience", "(Lapi/player/server/IServerPlayerAPI;I)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAddExperience", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "v" : "addExperience", "(I)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAddExperience", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "v" : "addExperience", "(I)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalAddExperience) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddExperience", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "v" : "addExperience", "(I)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "addExperienceLevel", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "addExperienceLevel", "(Lapi/player/server/IServerPlayerAPI;I)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAddExperienceLevel", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "addExperienceLevel", "(I)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAddExperienceLevel", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "addExperienceLevel", "(I)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalAddExperienceLevel) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddExperienceLevel", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "addExperienceLevel", "(I)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "k" : "addMovementStat", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "addMovementStat", "(Lapi/player/server/IServerPlayerAPI;DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAddMovementStat", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "k" : "addMovementStat", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAddMovementStat", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "k" : "addMovementStat", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalAddMovementStat) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddMovementStat", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "k" : "addMovementStat", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "attackEntityFrom", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lro;F" : "Lnet/minecraft/util/DamageSource;F") + ")Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAttackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAttackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalAttackEntityFrom) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAttackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Lro;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "r" : "attackEntityPlayerMPEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "attackTargetEntityWithCurrentItem", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lsa;" : "Lnet/minecraft/entity/Entity;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAttackTargetEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "r" : "attackEntityPlayerMPEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAttackTargetEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "r" : "attackEntityPlayerMPEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalAttackTargetEntityWithCurrentItem) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAttackTargetEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "r" : "attackEntityPlayerMPEntityWithCurrentItem", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "aE" : "canBreatheUnderwater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "canBreatheUnderwater", "(Lapi/player/server/IServerPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCanBreatheUnderwater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aE" : "canBreatheUnderwater", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCanBreatheUnderwater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "aE" : "canBreatheUnderwater", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalCanBreatheUnderwater) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanBreatheUnderwater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "aE" : "canBreatheUnderwater", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "canHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "canHarvestBlock", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Laji;" : "Lnet/minecraft/block/Block;") + ")Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCanHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "canHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCanHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "canHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalCanHarvestBlock) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "canHarvestBlock", "" + (isObfuscated ? "(Laji;)Z" : "(Lnet/minecraft/block/Block;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ILOAD, 4); + mv.visitVarInsn(Opcodes.ALOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "canPlayerEdit", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "IIIILadd;" : "IIIILnet/minecraft/item/ItemStack;") + ")Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCanPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ILOAD, 4); + mv.visitVarInsn(Opcodes.ALOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCanPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ILOAD, 4); + mv.visitVarInsn(Opcodes.ALOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalCanPlayerEdit) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ILOAD, 4); + mv.visitVarInsn(Opcodes.ALOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(IIIILadd;)Z" : "(IIIILnet/minecraft/item/ItemStack;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "g_" : "canTriggerWalking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "canTriggerWalking", "(Lapi/player/server/IServerPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCanTriggerWalking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "g_" : "canTriggerWalking", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCanTriggerWalking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "g_" : "canTriggerWalking", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalCanTriggerWalking) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanTriggerWalking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "g_" : "canTriggerWalking", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "clonePlayer", "" + (isObfuscated ? "(Lyz;Z)V" : "(Lnet/minecraft/entity/player/EntityPlayer;Z)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "clonePlayer", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lyz;Z" : "Lnet/minecraft/entity/player/EntityPlayer;Z") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realClonePlayer", "" + (isObfuscated ? "(Lyz;Z)V" : "(Lnet/minecraft/entity/player/EntityPlayer;Z)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "clonePlayer", "" + (isObfuscated ? "(Lyz;Z)V" : "(Lnet/minecraft/entity/player/EntityPlayer;Z)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superClonePlayer", "" + (isObfuscated ? "(Lyz;Z)V" : "(Lnet/minecraft/entity/player/EntityPlayer;Z)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "clonePlayer", "" + (isObfuscated ? "(Lyz;Z)V" : "(Lnet/minecraft/entity/player/EntityPlayer;Z)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalClonePlayer) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localClonePlayer", "" + (isObfuscated ? "(Lyz;Z)V" : "(Lnet/minecraft/entity/player/EntityPlayer;Z)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "clonePlayer", "" + (isObfuscated ? "(Lyz;Z)V" : "(Lnet/minecraft/entity/player/EntityPlayer;Z)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "damageEntity", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lro;F" : "Lnet/minecraft/util/DamageSource;F") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDamageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDamageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDamageEntity) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDamageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Lro;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "displayGUIChest", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lrb;" : "Lnet/minecraft/inventory/IInventory;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDisplayGUIChest) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Lrb;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "func_146102_a", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "displayGUIDispenser", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lapb;" : "Lnet/minecraft/tileentity/TileEntityDispenser;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIDispenser", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "func_146102_a", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIDispenser", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "func_146102_a", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDisplayGUIDispenser) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIDispenser", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "func_146102_a", "" + (isObfuscated ? "(Lapb;)V" : "(Lnet/minecraft/tileentity/TileEntityDispenser;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "func_146101_a", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "displayGUIFurnace", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lapg;" : "Lnet/minecraft/tileentity/TileEntityFurnace;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIFurnace", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "func_146101_a", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIFurnace", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "func_146101_a", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDisplayGUIFurnace) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIFurnace", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "func_146101_a", "" + (isObfuscated ? "(Lapg;)V" : "(Lnet/minecraft/tileentity/TileEntityFurnace;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "displayGUIWorkbench", "(III)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "displayGUIWorkbench", "(Lapi/player/server/IServerPlayerAPI;III)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIWorkbench", "(III)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "b" : "displayGUIWorkbench", "(III)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIWorkbench", "(III)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "displayGUIWorkbench", "(III)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDisplayGUIWorkbench) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIWorkbench", "(III)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "displayGUIWorkbench", "(III)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "dropOneItem", "(Lapi/player/server/IServerPlayerAPI;Z)" + (isObfuscated ? "Lxk;" : "Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDropOneItem) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Lxk;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "dropPlayerItem", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Ladd;Z" : "Lnet/minecraft/item/ItemStack;Z") + ")" + (isObfuscated ? "Lxk;" : "Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDropPlayerItem", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDropPlayerItem", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalDropPlayerItem) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropPlayerItem", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Ladd;Z)Lxk;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + ""); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "fall", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "fall", "(Lapi/player/server/IServerPlayerAPI;F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realFall", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "b" : "fall", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superFall", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "fall", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalFall) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localFall", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "fall", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bl" : "getAIMoveSpeed", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "getAIMoveSpeed", "(Lapi/player/server/IServerPlayerAPI;)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetAIMoveSpeed", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bl" : "getAIMoveSpeed", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetAIMoveSpeed", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bl" : "getAIMoveSpeed", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetAIMoveSpeed) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetAIMoveSpeed", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bl" : "getAIMoveSpeed", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "getCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "getCurrentPlayerStrVsBlock", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Laji;Z" : "Lnet/minecraft/block/Block;Z") + ")F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "getCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + ""); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "getCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + ""); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetCurrentPlayerStrVsBlock) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "getCurrentPlayerStrVsBlock", "" + (isObfuscated ? "(Laji;Z)F" : "(Lnet/minecraft/block/Block;Z)F") + ""); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, "getBreakSpeed", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "getCurrentPlayerStrVsBlockForge", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Laji;ZI" : "Lnet/minecraft/block/Block;ZI") + ")F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetCurrentPlayerStrVsBlockForge", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", "getBreakSpeed", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + ""); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetCurrentPlayerStrVsBlockForge", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", "getBreakSpeed", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + ""); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetCurrentPlayerStrVsBlockForge) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetCurrentPlayerStrVsBlockForge", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", "getBreakSpeed", "" + (isObfuscated ? "(Laji;ZI)F" : "(Lnet/minecraft/block/Block;ZI)F") + ""); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "e" : "getDistanceSq", "(DDD)D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "getDistanceSq", "(Lapi/player/server/IServerPlayerAPI;DDD)D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetDistanceSq", "(DDD)D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "e" : "getDistanceSq", "(DDD)D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetDistanceSq", "(DDD)D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "e" : "getDistanceSq", "(DDD)D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetDistanceSq) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetDistanceSq", "(DDD)D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "e" : "getDistanceSq", "(DDD)D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "d" : "getBrightness", "(F)F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "getBrightness", "(Lapi/player/server/IServerPlayerAPI;F)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetBrightness", "(F)F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "d" : "getBrightness", "(F)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetBrightness", "(F)F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "d" : "getBrightness", "(F)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetBrightness) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBrightness", "(F)F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "d" : "getBrightness", "(F)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "g" : "getEyeHeight", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "getEyeHeight", "(Lapi/player/server/IServerPlayerAPI;)F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetEyeHeight", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "g" : "getEyeHeight", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetEyeHeight", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "g" : "getEyeHeight", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalGetEyeHeight) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetEyeHeight", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "g" : "getEyeHeight", "()F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "f" : "heal", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "heal", "(Lapi/player/server/IServerPlayerAPI;F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realHeal", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "f" : "heal", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superHeal", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "f" : "heal", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalHeal) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localHeal", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "f" : "heal", "(F)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "aa" : "isEntityInsideOpaqueBlock", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "isEntityInsideOpaqueBlock", "(Lapi/player/server/IServerPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsEntityInsideOpaqueBlock", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aa" : "isEntityInsideOpaqueBlock", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsEntityInsideOpaqueBlock", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "aa" : "isEntityInsideOpaqueBlock", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsEntityInsideOpaqueBlock) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsEntityInsideOpaqueBlock", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "aa" : "isEntityInsideOpaqueBlock", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "M" : "isInWater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "isInWater", "(Lapi/player/server/IServerPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsInWater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "M" : "isInWater", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsInWater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "M" : "isInWater", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsInWater) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsInWater", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "M" : "isInWater", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "isInsideOfMaterial", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lawt;" : "Lnet/minecraft/block/material/Material;") + ")Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsInsideOfMaterial) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Lawt;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + ""); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "h_" : "isOnLadder", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "isOnLadder", "(Lapi/player/server/IServerPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsOnLadder", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "h_" : "isOnLadder", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsOnLadder", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "h_" : "isOnLadder", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsOnLadder) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsOnLadder", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "h_" : "isOnLadder", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bm" : "isPlayerSleeping", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "isPlayerSleeping", "(Lapi/player/server/IServerPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsPlayerSleeping", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bm" : "isPlayerSleeping", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsPlayerSleeping", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bm" : "isPlayerSleeping", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsPlayerSleeping) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsPlayerSleeping", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bm" : "isPlayerSleeping", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "an" : "isSneaking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "isSneaking", "(Lapi/player/server/IServerPlayerAPI;)Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsSneaking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "an" : "isSneaking", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsSneaking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "an" : "isSneaking", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalIsSneaking) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsSneaking", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "an" : "isSneaking", "()Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bj" : "jump", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "jump", "(Lapi/player/server/IServerPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realJump", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bj" : "jump", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superJump", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bj" : "jump", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalJump) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localJump", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bj" : "jump", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "knockBack", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lsa;FDD" : "Lnet/minecraft/entity/Entity;FDD") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realKnockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superKnockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalKnockBack) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localKnockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lsa;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "mountEntity", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "mountEntity", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lsa;" : "Lnet/minecraft/entity/Entity;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realMountEntity", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "mountEntity", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superMountEntity", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "mountEntity", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalMountEntity) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMountEntity", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "mountEntity", "" + (isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "d" : "moveEntity", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "moveEntity", "(Lapi/player/server/IServerPlayerAPI;DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realMoveEntity", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "d" : "moveEntity", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superMoveEntity", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "d" : "moveEntity", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalMoveEntity) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMoveEntity", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "d" : "moveEntity", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "e" : "moveEntityWithHeading", "(FF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "moveEntityWithHeading", "(Lapi/player/server/IServerPlayerAPI;FF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realMoveEntityWithHeading", "(FF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "e" : "moveEntityWithHeading", "(FF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superMoveEntityWithHeading", "(FF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "e" : "moveEntityWithHeading", "(FF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalMoveEntityWithHeading) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMoveEntityWithHeading", "(FF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "e" : "moveEntityWithHeading", "(FF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "moveFlying", "(FFF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.FLOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "moveFlying", "(Lapi/player/server/IServerPlayerAPI;FFF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realMoveFlying", "(FFF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.FLOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "moveFlying", "(FFF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superMoveFlying", "(FFF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.FLOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "moveFlying", "(FFF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalMoveFlying) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMoveFlying", "(FFF)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.FLOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "moveFlying", "(FFF)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "onDeath", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lro;" : "Lnet/minecraft/util/DamageSource;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalOnDeath) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Lro;)V" : "(Lnet/minecraft/util/DamageSource;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "e" : "onLivingUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "onLivingUpdate", "(Lapi/player/server/IServerPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnLivingUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "e" : "onLivingUpdate", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnLivingUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "e" : "onLivingUpdate", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalOnLivingUpdate) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnLivingUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "e" : "onLivingUpdate", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "onKillEntity", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lsv;" : "Lnet/minecraft/entity/EntityLivingBase;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalOnKillEntity) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lsv;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "onStruckByLightning", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Lxh;" : "Lnet/minecraft/entity/effect/EntityLightningBolt;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalOnStruckByLightning) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Lxh;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "h" : "onUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "onUpdate", "(Lapi/player/server/IServerPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "h" : "onUpdate", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "h" : "onUpdate", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalOnUpdate) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnUpdate", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "h" : "onUpdate", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "i" : "onUpdateEntity", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "onUpdateEntity", "(Lapi/player/server/IServerPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnUpdateEntity", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "i" : "onUpdateEntity", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnUpdateEntity", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "i" : "onUpdateEntity", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalOnUpdateEntity) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnUpdateEntity", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "i" : "onUpdateEntity", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "readEntityFromNBT", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Ldh;" : "Lnet/minecraft/nbt/NBTTagCompound;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realReadEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superReadEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalReadEntityFromNBT) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localReadEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "B" : "setDead", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "setDead", "(Lapi/player/server/IServerPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSetDead", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "B" : "setDead", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSetDead", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "B" : "setDead", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSetDead) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetDead", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "B" : "setDead", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "setEntityActionState", "(FFZZ)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ILOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "setEntityActionState", "(Lapi/player/server/IServerPlayerAPI;FFZZ)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSetEntityActionState", "(FFZZ)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ILOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "setEntityActionState", "(FFZZ)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSetEntityActionState", "(FFZZ)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ILOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "setEntityActionState", "(FFZZ)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSetEntityActionState) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetEntityActionState", "(FFZZ)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitVarInsn(Opcodes.FLOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitVarInsn(Opcodes.ILOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "setEntityActionState", "(FFZZ)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "setPosition", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "setPosition", "(Lapi/player/server/IServerPlayerAPI;DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSetPosition", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "b" : "setPosition", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSetPosition", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "setPosition", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSetPosition) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetPosition", "(DDD)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitVarInsn(Opcodes.DLOAD, 3); + mv.visitVarInsn(Opcodes.DLOAD, 5); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "setPosition", "(DDD)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "setSneaking", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "setSneaking", "(Lapi/player/server/IServerPlayerAPI;Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSetSneaking", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "b" : "setSneaking", "(Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSetSneaking", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "setSneaking", "(Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSetSneaking) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetSneaking", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "setSneaking", "(Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "c" : "setSprinting", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "setSprinting", "(Lapi/player/server/IServerPlayerAPI;Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSetSprinting", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "c" : "setSprinting", "(Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSetSprinting", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "c" : "setSprinting", "(Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSetSprinting) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetSprinting", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "c" : "setSprinting", "(Z)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "ba" : "swingItem", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "swingItem", "(Lapi/player/server/IServerPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realSwingItem", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ba" : "swingItem", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superSwingItem", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "ba" : "swingItem", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalSwingItem) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSwingItem", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "ba" : "swingItem", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bq" : "updateEntityActionState", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "updateEntityActionState", "(Lapi/player/server/IServerPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realUpdateEntityActionState", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bq" : "updateEntityActionState", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superUpdateEntityActionState", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bq" : "updateEntityActionState", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalUpdateEntityActionState) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdateEntityActionState", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bq" : "updateEntityActionState", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "aO" : "updatePotionEffects", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "updatePotionEffects", "(Lapi/player/server/IServerPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realUpdatePotionEffects", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aO" : "updatePotionEffects", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superUpdatePotionEffects", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "aO" : "updatePotionEffects", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalUpdatePotionEffects) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdatePotionEffects", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "aO" : "updatePotionEffects", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "ab" : "updateRidden", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "updateRidden", "(Lapi/player/server/IServerPlayerAPI;)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realUpdateRidden", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ab" : "updateRidden", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superUpdateRidden", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "ab" : "updateRidden", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalUpdateRidden) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdateRidden", "()V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "ab" : "updateRidden", "()V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "wakeUpPlayer", "(Lapi/player/server/IServerPlayerAPI;ZZZ)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realWakeUpPlayer", "(ZZZ)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superWakeUpPlayer", "(ZZZ)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalWakeUpPlayer) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localWakeUpPlayer", "(ZZZ)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitVarInsn(Opcodes.ILOAD, 2); + mv.visitVarInsn(Opcodes.ILOAD, 3); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "writeEntityToNBT", "(Lapi/player/server/IServerPlayerAPI;" + (isObfuscated ? "Ldh;" : "Lnet/minecraft/nbt/NBTTagCompound;") + ")V"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realWriteEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superWriteEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + if(!hadLocalWriteEntityToNBT) + { + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localWriteEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldh;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + ""); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getAddedToChunkField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ag" : "addedToChunk", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setAddedToChunkField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ag" : "addedToChunk", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getArrowHitTimerField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "av" : "arrowHitTimer", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setArrowHitTimerField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "av" : "arrowHitTimer", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getAttackTimeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aB" : "attackTime", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setAttackTimeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aB" : "attackTime", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getAttackedAtYawField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "az" : "attackedAtYaw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setAttackedAtYawField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "az" : "attackedAtYaw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getAttackingPlayerField", isObfuscated ? "()Lyz;" : "()Lnet/minecraft/entity/player/EntityPlayer;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aR" : "attackingPlayer", isObfuscated ? "Lyz;" : "Lnet/minecraft/entity/player/EntityPlayer;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setAttackingPlayerField", isObfuscated ? "(Lyz;)V" : "(Lnet/minecraft/entity/player/EntityPlayer;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aR" : "attackingPlayer", isObfuscated ? "Lyz;" : "Lnet/minecraft/entity/player/EntityPlayer;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getBoundingBoxField", isObfuscated ? "()Lazt;" : "()Lnet/minecraft/util/AxisAlignedBB;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "C" : "boundingBox", isObfuscated ? "Lazt;" : "Lnet/minecraft/util/AxisAlignedBB;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getCameraPitchField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aJ" : "cameraPitch", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setCameraPitchField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aJ" : "cameraPitch", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getCameraYawField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bs" : "cameraYaw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setCameraYawField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bs" : "cameraYaw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getCapabilitiesField", isObfuscated ? "()Lyw;" : "()Lnet/minecraft/entity/player/PlayerCapabilities;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bE" : "capabilities", isObfuscated ? "Lyw;" : "Lnet/minecraft/entity/player/PlayerCapabilities;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setCapabilitiesField", isObfuscated ? "(Lyw;)V" : "(Lnet/minecraft/entity/player/PlayerCapabilities;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bE" : "capabilities", isObfuscated ? "Lyw;" : "Lnet/minecraft/entity/player/PlayerCapabilities;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChatColoursField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bW" : "chatColours", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChatColoursField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bW" : "chatColours", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChatVisibilityField", isObfuscated ? "()Lzb;" : "()Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bV" : "chatVisibility", isObfuscated ? "Lzb;" : "Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChatVisibilityField", isObfuscated ? "(Lzb;)V" : "(Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bV" : "chatVisibility", isObfuscated ? "Lzb;" : "Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChunkCoordXField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ah" : "chunkCoordX", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChunkCoordXField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ah" : "chunkCoordX", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChunkCoordYField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ai" : "chunkCoordY", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChunkCoordYField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ai" : "chunkCoordY", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChunkCoordZField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aj" : "chunkCoordZ", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChunkCoordZField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aj" : "chunkCoordZ", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getCurrentWindowIdField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bY" : "currentWindowId", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setCurrentWindowIdField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bY" : "currentWindowId", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDataWatcherField", isObfuscated ? "()Lte;" : "()Lnet/minecraft/entity/DataWatcher;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "af" : "dataWatcher", isObfuscated ? "Lte;" : "Lnet/minecraft/entity/DataWatcher;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setDataWatcherField", isObfuscated ? "(Lte;)V" : "(Lnet/minecraft/entity/DataWatcher;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "af" : "dataWatcher", isObfuscated ? "Lte;" : "Lnet/minecraft/entity/DataWatcher;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDeadField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aT" : "dead", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setDeadField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aT" : "dead", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDeathTimeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aA" : "deathTime", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setDeathTimeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aA" : "deathTime", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDestroyedItemsNetCacheField", "()Ljava/util/List;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bN" : "destroyedItemsNetCache", "Ljava/util/List;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDimensionField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ap" : "dimension", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setDimensionField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ap" : "dimension", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDistanceWalkedModifiedField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "P" : "distanceWalkedModified", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setDistanceWalkedModifiedField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "P" : "distanceWalkedModified", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDistanceWalkedOnStepModifiedField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "Q" : "distanceWalkedOnStepModified", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setDistanceWalkedOnStepModifiedField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "Q" : "distanceWalkedOnStepModified", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getEntityAgeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aU" : "entityAge", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setEntityAgeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aU" : "entityAge", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getEntityCollisionReductionField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "Y" : "entityCollisionReduction", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setEntityCollisionReductionField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "Y" : "entityCollisionReduction", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getEntityUniqueIDField", "()Ljava/util/UUID;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ar" : "entityUniqueID", "Ljava/util/UUID;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setEntityUniqueIDField", "(Ljava/util/UUID;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ar" : "entityUniqueID", "Ljava/util/UUID;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getExperienceField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bH" : "experience", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setExperienceField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bH" : "experience", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getExperienceLevelField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bF" : "experienceLevel", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setExperienceLevelField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bF" : "experienceLevel", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getExperienceTotalField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bG" : "experienceTotal", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setExperienceTotalField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bG" : "experienceTotal", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFallDistanceField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "R" : "fallDistance", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setFallDistanceField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "R" : "fallDistance", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_110154_aXField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aW" : "field_110154_aX", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_110154_aXField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aW" : "field_110154_aX", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_130068_bOField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bP" : "field_130068_bO", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_130068_bOField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bP" : "field_130068_bO", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_143005_bXField", "()J", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bX" : "field_143005_bX", "J"); + mv.visitInsn(Opcodes.LRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_143005_bXField", "(J)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.LLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bX" : "field_143005_bX", "J"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_147101_bUField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bU" : "field_147101_bU", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_147101_bUField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bU" : "field_147101_bU", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_147103_bOField", isObfuscated ? "()Lpg;" : "()Lnet/minecraft/stats/StatisticsFile;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bO" : "field_147103_bO", isObfuscated ? "Lpg;" : "Lnet/minecraft/stats/StatisticsFile;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70135_KField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "J" : "field_70135_K", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70135_KField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "J" : "field_70135_K", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70741_aBField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aZ" : "field_70741_aB", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70741_aBField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aZ" : "field_70741_aB", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70763_axField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aY" : "field_70763_ax", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70763_axField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aY" : "field_70763_ax", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70764_awField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aX" : "field_70764_aw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70764_awField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aX" : "field_70764_aw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70768_auField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aV" : "field_70768_au", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70768_auField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aV" : "field_70768_au", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70769_aoField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aK" : "field_70769_ao", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70769_aoField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aK" : "field_70769_ao", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_70770_apField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aL" : "field_70770_ap", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_70770_apField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aL" : "field_70770_ap", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71079_bUField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bC" : "field_71079_bU", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71079_bUField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bC" : "field_71079_bU", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71082_cxField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "cc" : "field_71082_cx", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71082_cxField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "cc" : "field_71082_cx", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71085_bRField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bz" : "field_71085_bR", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71085_bRField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bz" : "field_71085_bR", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71089_bVField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bD" : "field_71089_bV", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71089_bVField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bD" : "field_71089_bV", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71091_bMField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bu" : "field_71091_bM", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71091_bMField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bu" : "field_71091_bM", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71094_bPField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bx" : "field_71094_bP", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71094_bPField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bx" : "field_71094_bP", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71095_bQField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "by" : "field_71095_bQ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71095_bQField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "by" : "field_71095_bQ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71096_bNField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bv" : "field_71096_bN", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71096_bNField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bv" : "field_71096_bN", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getField_71097_bOField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bw" : "field_71097_bO", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setField_71097_bOField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bw" : "field_71097_bO", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFireResistanceField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ab" : "fireResistance", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setFireResistanceField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ab" : "fireResistance", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFishEntityField", isObfuscated ? "()Lxe;" : "()Lnet/minecraft/entity/projectile/EntityFishHook;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bK" : "fishEntity", isObfuscated ? "Lxe;" : "Lnet/minecraft/entity/projectile/EntityFishHook;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setFishEntityField", isObfuscated ? "(Lxe;)V" : "(Lnet/minecraft/entity/projectile/EntityFishHook;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bK" : "fishEntity", isObfuscated ? "Lxe;" : "Lnet/minecraft/entity/projectile/EntityFishHook;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFlyToggleTimerField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bq" : "flyToggleTimer", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setFlyToggleTimerField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bq" : "flyToggleTimer", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFoodStatsField", isObfuscated ? "()Lzr;" : "()Lnet/minecraft/util/FoodStats;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bp" : "foodStats", isObfuscated ? "Lzr;" : "Lnet/minecraft/util/FoodStats;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setFoodStatsField", isObfuscated ? "(Lzr;)V" : "(Lnet/minecraft/util/FoodStats;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bp" : "foodStats", isObfuscated ? "Lzr;" : "Lnet/minecraft/util/FoodStats;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getForceSpawnField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "n" : "forceSpawn", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setForceSpawnField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "n" : "forceSpawn", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getHeightField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "N" : "height", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setHeightField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "N" : "height", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getHurtResistantTimeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ad" : "hurtResistantTime", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setHurtResistantTimeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ad" : "hurtResistantTime", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getHurtTimeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ax" : "hurtTime", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setHurtTimeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ax" : "hurtTime", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIgnoreFrustumCheckField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ak" : "ignoreFrustumCheck", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIgnoreFrustumCheckField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ak" : "ignoreFrustumCheck", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getInPortalField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "an" : "inPortal", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setInPortalField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "an" : "inPortal", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getInWaterField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ac" : "inWater", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setInWaterField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ac" : "inWater", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getInventoryField", isObfuscated ? "()Lyx;" : "()Lnet/minecraft/entity/player/InventoryPlayer;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bm" : "inventory", isObfuscated ? "Lyx;" : "Lnet/minecraft/entity/player/InventoryPlayer;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setInventoryField", isObfuscated ? "(Lyx;)V" : "(Lnet/minecraft/entity/player/InventoryPlayer;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bm" : "inventory", isObfuscated ? "Lyx;" : "Lnet/minecraft/entity/player/InventoryPlayer;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getInventoryContainerField", isObfuscated ? "()Lzs;" : "()Lnet/minecraft/inventory/Container;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bn" : "inventoryContainer", isObfuscated ? "Lzs;" : "Lnet/minecraft/inventory/Container;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setInventoryContainerField", isObfuscated ? "(Lzs;)V" : "(Lnet/minecraft/inventory/Container;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bn" : "inventoryContainer", isObfuscated ? "Lzs;" : "Lnet/minecraft/inventory/Container;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsAirBorneField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "al" : "isAirBorne", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsAirBorneField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "al" : "isAirBorne", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsChangingQuantityOnlyField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "g" : "isChangingQuantityOnly", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsChangingQuantityOnlyField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "g" : "isChangingQuantityOnly", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsCollidedField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "G" : "isCollided", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsCollidedField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "G" : "isCollided", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsCollidedHorizontallyField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "E" : "isCollidedHorizontally", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsCollidedHorizontallyField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "E" : "isCollidedHorizontally", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsCollidedVerticallyField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "F" : "isCollidedVertically", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsCollidedVerticallyField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "F" : "isCollidedVertically", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsDeadField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "K" : "isDead", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsDeadField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "K" : "isDead", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsImmuneToFireField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ae" : "isImmuneToFire", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsImmuneToFireField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ae" : "isImmuneToFire", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsInWebField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "I" : "isInWeb", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsInWebField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "I" : "isInWeb", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsJumpingField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bc" : "isJumping", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsJumpingField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bc" : "isJumping", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getIsSwingInProgressField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "at" : "isSwingInProgress", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setIsSwingInProgressField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "at" : "isSwingInProgress", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getJumpMovementFactorField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aQ" : "jumpMovementFactor", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setJumpMovementFactorField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aQ" : "jumpMovementFactor", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastDamageField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bb" : "lastDamage", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastDamageField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bb" : "lastDamage", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastExperienceField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bT" : "lastExperience", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastExperienceField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bT" : "lastExperience", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastFoodLevelField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bR" : "lastFoodLevel", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastFoodLevelField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bR" : "lastFoodLevel", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastHealthField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bQ" : "lastHealth", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastHealthField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bQ" : "lastHealth", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastTickPosXField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "S" : "lastTickPosX", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastTickPosXField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "S" : "lastTickPosX", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastTickPosYField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "T" : "lastTickPosY", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastTickPosYField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "T" : "lastTickPosY", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastTickPosZField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "U" : "lastTickPosZ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastTickPosZField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "U" : "lastTickPosZ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLimbSwingField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aG" : "limbSwing", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLimbSwingField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aG" : "limbSwing", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLimbSwingAmountField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aF" : "limbSwingAmount", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLimbSwingAmountField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aF" : "limbSwingAmount", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLoadedChunksField", "()Ljava/util/List;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "f" : "loadedChunks", "Ljava/util/List;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLoggerField", "()Lorg/apache/logging/log4j/Logger;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bL" : "logger", "Lorg/apache/logging/log4j/Logger;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getManagedPosXField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "d" : "managedPosX", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setManagedPosXField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "d" : "managedPosX", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getManagedPosZField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "e" : "managedPosZ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setManagedPosZField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "e" : "managedPosZ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMaxHurtResistantTimeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aH" : "maxHurtResistantTime", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMaxHurtResistantTimeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aH" : "maxHurtResistantTime", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMaxHurtTimeField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ay" : "maxHurtTime", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMaxHurtTimeField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ay" : "maxHurtTime", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMcServerField", "()Lnet/minecraft/server/MinecraftServer;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "b" : "mcServer", "Lnet/minecraft/server/MinecraftServer;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMotionXField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "v" : "motionX", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMotionXField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "v" : "motionX", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMotionYField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "w" : "motionY", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMotionYField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "w" : "motionY", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMotionZField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "x" : "motionZ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMotionZField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "x" : "motionZ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMoveForwardField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "be" : "moveForward", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMoveForwardField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "be" : "moveForward", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMoveStrafingField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bd" : "moveStrafing", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMoveStrafingField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bd" : "moveStrafing", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMyEntitySizeField", isObfuscated ? "()Lse;" : "()Lnet/minecraft/entity/Entity$EnumEntitySize;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "as" : "myEntitySize", isObfuscated ? "Lse;" : "Lnet/minecraft/entity/Entity$EnumEntitySize;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMyEntitySizeField", isObfuscated ? "(Lse;)V" : "(Lnet/minecraft/entity/Entity$EnumEntitySize;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "as" : "myEntitySize", isObfuscated ? "Lse;" : "Lnet/minecraft/entity/Entity$EnumEntitySize;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNewPosRotationIncrementsField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bg" : "newPosRotationIncrements", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNewPosRotationIncrementsField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bg" : "newPosRotationIncrements", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNewPosXField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bh" : "newPosX", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNewPosXField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bh" : "newPosX", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNewPosYField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bi" : "newPosY", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNewPosYField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bi" : "newPosY", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNewPosZField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bj" : "newPosZ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNewPosZField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bj" : "newPosZ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNewRotationPitchField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bl" : "newRotationPitch", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNewRotationPitchField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bl" : "newRotationPitch", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNewRotationYawField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bk" : "newRotationYaw", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNewRotationYawField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bk" : "newRotationYaw", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getNoClipField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "X" : "noClip", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setNoClipField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "X" : "noClip", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getOnGroundField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "D" : "onGround", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setOnGroundField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "D" : "onGround", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getOpenContainerField", isObfuscated ? "()Lzs;" : "()Lnet/minecraft/inventory/Container;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bo" : "openContainer", isObfuscated ? "Lzs;" : "Lnet/minecraft/inventory/Container;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setOpenContainerField", isObfuscated ? "(Lzs;)V" : "(Lnet/minecraft/inventory/Container;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bo" : "openContainer", isObfuscated ? "Lzs;" : "Lnet/minecraft/inventory/Container;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPingField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "h" : "ping", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPingField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "h" : "ping", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPlayerConqueredTheEndField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "i" : "playerConqueredTheEnd", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPlayerConqueredTheEndField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "i" : "playerConqueredTheEnd", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPlayerLocationField", isObfuscated ? "()Lr;" : "()Lnet/minecraft/util/ChunkCoordinates;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bB" : "playerLocation", isObfuscated ? "Lr;" : "Lnet/minecraft/util/ChunkCoordinates;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPlayerLocationField", isObfuscated ? "(Lr;)V" : "(Lnet/minecraft/util/ChunkCoordinates;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bB" : "playerLocation", isObfuscated ? "Lr;" : "Lnet/minecraft/util/ChunkCoordinates;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPlayerNetServerHandlerField", isObfuscated ? "()Lnh;" : "()Lnet/minecraft/network/NetHandlerPlayServer;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "playerNetServerHandler", isObfuscated ? "Lnh;" : "Lnet/minecraft/network/NetHandlerPlayServer;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPlayerNetServerHandlerField", isObfuscated ? "(Lnh;)V" : "(Lnet/minecraft/network/NetHandlerPlayServer;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "playerNetServerHandler", isObfuscated ? "Lnh;" : "Lnet/minecraft/network/NetHandlerPlayServer;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPortalCounterField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ao" : "portalCounter", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPortalCounterField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ao" : "portalCounter", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPosXField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "s" : "posX", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPosXField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "s" : "posX", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPosYField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "t" : "posY", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPosYField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "t" : "posY", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPosZField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "u" : "posZ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPosZField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "u" : "posZ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevCameraPitchField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aI" : "prevCameraPitch", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevCameraPitchField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aI" : "prevCameraPitch", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevCameraYawField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "br" : "prevCameraYaw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevCameraYawField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "br" : "prevCameraYaw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevDistanceWalkedModifiedField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "O" : "prevDistanceWalkedModified", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevDistanceWalkedModifiedField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "O" : "prevDistanceWalkedModified", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevHealthField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aw" : "prevHealth", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevHealthField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aw" : "prevHealth", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevLimbSwingAmountField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aE" : "prevLimbSwingAmount", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevLimbSwingAmountField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aE" : "prevLimbSwingAmount", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevPosXField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "p" : "prevPosX", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevPosXField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "p" : "prevPosX", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevPosYField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "q" : "prevPosY", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevPosYField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "q" : "prevPosY", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevPosZField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "r" : "prevPosZ", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevPosZField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "r" : "prevPosZ", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevRenderYawOffsetField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aN" : "prevRenderYawOffset", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevRenderYawOffsetField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aN" : "prevRenderYawOffset", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevRotationPitchField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "B" : "prevRotationPitch", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevRotationPitchField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "B" : "prevRotationPitch", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevRotationYawField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "A" : "prevRotationYaw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevRotationYawField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "A" : "prevRotationYaw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevRotationYawHeadField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aP" : "prevRotationYawHead", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevRotationYawHeadField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aP" : "prevRotationYawHead", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevSwingProgressField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aC" : "prevSwingProgress", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevSwingProgressField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aC" : "prevSwingProgress", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPreventEntitySpawningField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "k" : "preventEntitySpawning", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPreventEntitySpawningField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "k" : "preventEntitySpawning", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRandField", "()Ljava/util/Random;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "Z" : "rand", "Ljava/util/Random;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRandField", "(Ljava/util/Random;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "Z" : "rand", "Ljava/util/Random;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRandomYawVelocityField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bf" : "randomYawVelocity", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRandomYawVelocityField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bf" : "randomYawVelocity", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRecentlyHitField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aS" : "recentlyHit", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRecentlyHitField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aS" : "recentlyHit", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRenderDistanceWeightField", "()D", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "j" : "renderDistanceWeight", "D"); + mv.visitInsn(Opcodes.DRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRenderDistanceWeightField", "(D)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.DLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "j" : "renderDistanceWeight", "D"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRenderYawOffsetField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aM" : "renderYawOffset", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRenderYawOffsetField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aM" : "renderYawOffset", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRiddenByEntityField", isObfuscated ? "()Lsa;" : "()Lnet/minecraft/entity/Entity;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "l" : "riddenByEntity", isObfuscated ? "Lsa;" : "Lnet/minecraft/entity/Entity;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRiddenByEntityField", isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "l" : "riddenByEntity", isObfuscated ? "Lsa;" : "Lnet/minecraft/entity/Entity;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRidingEntityField", isObfuscated ? "()Lsa;" : "()Lnet/minecraft/entity/Entity;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "m" : "ridingEntity", isObfuscated ? "Lsa;" : "Lnet/minecraft/entity/Entity;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRidingEntityField", isObfuscated ? "(Lsa;)V" : "(Lnet/minecraft/entity/Entity;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "m" : "ridingEntity", isObfuscated ? "Lsa;" : "Lnet/minecraft/entity/Entity;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRotationPitchField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "z" : "rotationPitch", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRotationPitchField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "z" : "rotationPitch", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRotationYawField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "y" : "rotationYaw", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRotationYawField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "y" : "rotationYaw", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRotationYawHeadField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aO" : "rotationYawHead", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRotationYawHeadField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aO" : "rotationYawHead", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getScoreValueField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ba" : "scoreValue", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setScoreValueField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ba" : "scoreValue", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getServerPosXField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bZ" : "serverPosX", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setServerPosXField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bZ" : "serverPosX", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getServerPosYField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ca" : "serverPosY", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setServerPosYField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ca" : "serverPosY", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getServerPosZField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "cb" : "serverPosZ", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setServerPosZField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "cb" : "serverPosZ", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSleepingField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bA" : "sleeping", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSleepingField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bA" : "sleeping", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSpeedInAirField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bJ" : "speedInAir", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSpeedInAirField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bJ" : "speedInAir", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSpeedOnGroundField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bI" : "speedOnGround", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSpeedOnGroundField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bI" : "speedOnGround", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getStepHeightField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "W" : "stepHeight", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setStepHeightField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "W" : "stepHeight", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSwingProgressField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aD" : "swingProgress", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSwingProgressField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aD" : "swingProgress", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSwingProgressIntField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "au" : "swingProgressInt", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSwingProgressIntField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "au" : "swingProgressInt", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getTeleportDirectionField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aq" : "teleportDirection", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setTeleportDirectionField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aq" : "teleportDirection", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getTheItemInWorldManagerField", isObfuscated ? "()Lmx;" : "()Lnet/minecraft/server/management/ItemInWorldManager;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "c" : "theItemInWorldManager", isObfuscated ? "Lmx;" : "Lnet/minecraft/server/management/ItemInWorldManager;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getTicksExistedField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aa" : "ticksExisted", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setTicksExistedField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aa" : "ticksExisted", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getTimeUntilPortalField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "am" : "timeUntilPortal", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setTimeUntilPortalField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "am" : "timeUntilPortal", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getTranslatorField", "()Ljava/lang/String;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bM" : "translator", "Ljava/lang/String;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setTranslatorField", "(Ljava/lang/String;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bM" : "translator", "Ljava/lang/String;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getVelocityChangedField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "H" : "velocityChanged", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setVelocityChangedField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "H" : "velocityChanged", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getWasHungryField", "()Z", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bS" : "wasHungry", "Z"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setWasHungryField", "(Z)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bS" : "wasHungry", "Z"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getWidthField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "M" : "width", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setWidthField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "M" : "width", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getWorldObjField", isObfuscated ? "()Lahb;" : "()Lnet/minecraft/world/World;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "o" : "worldObj", isObfuscated ? "Lahb;" : "Lnet/minecraft/world/World;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setWorldObjField", isObfuscated ? "(Lahb;)V" : "(Lnet/minecraft/world/World;)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "o" : "worldObj", isObfuscated ? "Lahb;" : "Lnet/minecraft/world/World;"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getXpCooldownField", "()I", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bt" : "xpCooldown", "I"); + mv.visitInsn(Opcodes.IRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setXpCooldownField", "(I)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ILOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bt" : "xpCooldown", "I"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getYOffsetField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "L" : "yOffset", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setYOffsetField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "L" : "yOffset", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getYSizeField", "()F", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "V" : "ySize", "F"); + mv.visitInsn(Opcodes.FRETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setYSizeField", "(F)V", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.FLOAD, 1); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "V" : "ySize", "F"); + mv.visitInsn(Opcodes.RETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getServerPlayerBase", "(Ljava/lang/String;)Lapi/player/server/ServerPlayerBase;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "getServerPlayerBase", "(Lapi/player/server/IServerPlayerAPI;Ljava/lang/String;)Lapi/player/server/ServerPlayerBase;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getServerPlayerBaseIds", "()Ljava/util/Set;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "getServerPlayerBaseIds", "(Lapi/player/server/IServerPlayerAPI;)Ljava/util/Set;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "dynamic", "(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 1); + mv.visitVarInsn(Opcodes.ALOAD, 2); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "dynamic", "(Lapi/player/server/IServerPlayerAPI;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getServerPlayerAPI", "()Lapi/player/server/ServerPlayerAPI;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", "serverPlayerAPI", "Lapi/player/server/ServerPlayerAPI;"); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getEntityPlayerMP", isObfuscated ? "()Lmw;" : "()Lnet/minecraft/entity/player/EntityPlayerMP;", null, null); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitInsn(Opcodes.ARETURN); + mv.visitMaxs(0, 0); + mv.visitEnd(); + + cv.visitField(Opcodes.ACC_PRIVATE | Opcodes.ACC_FINAL, "serverPlayerAPI", "Lapi/player/server/ServerPlayerAPI;", null, null); + } +} diff --git a/src/Java/api/player/server/ServerPlayerConstructorVisitor.java b/src/Java/api/player/server/ServerPlayerConstructorVisitor.java new file mode 100644 index 0000000000..7b5085c96d --- /dev/null +++ b/src/Java/api/player/server/ServerPlayerConstructorVisitor.java @@ -0,0 +1,65 @@ +// ================================================================== +// 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 . +// ================================================================== + +package api.player.server; + +import org.objectweb.asm.*; + +public final class ServerPlayerConstructorVisitor extends MethodVisitor +{ + private final boolean isObfuscated; + + public ServerPlayerConstructorVisitor(MethodVisitor paramMethodVisitor, boolean isObfuscated) + { + super(262144, paramMethodVisitor); + this.isObfuscated = isObfuscated; + } + + public void visitMethodInsn(int opcode, String owner, String name, String desc) + { + super.visitMethodInsn(opcode, owner, name, desc); + if(name.equals("") && owner.equals(isObfuscated ? "yz" : "net/minecraft/entity/player/EntityPlayer")) + { + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "create", "(Lapi/player/server/IServerPlayerAPI;)Lapi/player/server/ServerPlayerAPI;"); + mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "mw" : "net/minecraft/entity/player/EntityPlayerMP", "serverPlayerAPI", "Lapi/player/server/ServerPlayerAPI;"); + + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitIntInsn(Opcodes.ALOAD, 1); + mv.visitIntInsn(Opcodes.ALOAD, 2); + mv.visitIntInsn(Opcodes.ALOAD, 3); + mv.visitIntInsn(Opcodes.ALOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "beforeLocalConstructing", "(Lapi/player/server/IServerPlayerAPI;Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/world/WorldServer;Lcom/mojang/authlib/GameProfile;Lnet/minecraft/server/management/ItemInWorldManager;)V"); + } + } + + public void visitInsn(int opcode) + { + if(opcode == Opcodes.RETURN) + { + mv.visitVarInsn(Opcodes.ALOAD, 0); + mv.visitIntInsn(Opcodes.ALOAD, 1); + mv.visitIntInsn(Opcodes.ALOAD, 2); + mv.visitIntInsn(Opcodes.ALOAD, 3); + mv.visitIntInsn(Opcodes.ALOAD, 4); + mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "afterLocalConstructing", "(Lapi/player/server/IServerPlayerAPI;Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/world/WorldServer;Lcom/mojang/authlib/GameProfile;Lnet/minecraft/server/management/ItemInWorldManager;)V"); + } + super.visitInsn(opcode); + } +} diff --git a/src/Java/cofh/api/energy/EnergyStorage.java b/src/Java/cofh/api/energy/EnergyStorage.java deleted file mode 100644 index 2aad94be72..0000000000 --- a/src/Java/cofh/api/energy/EnergyStorage.java +++ /dev/null @@ -1,129 +0,0 @@ -package cofh.api.energy; - -import net.minecraft.nbt.NBTTagCompound; - -public class EnergyStorage - implements IEnergyStorage -{ - protected int energy; - protected int capacity; - protected int maxReceive; - protected int maxExtract; - - public EnergyStorage(int capacity) - { - this(capacity, capacity, capacity); - } - - public EnergyStorage(int capacity, int maxTransfer) - { - this(capacity, maxTransfer, maxTransfer); - } - - public EnergyStorage(int capacity, int maxReceive, int maxExtract) - { - this.capacity = capacity; - this.maxReceive = maxReceive; - this.maxExtract = maxExtract; - } - - public EnergyStorage readFromNBT(NBTTagCompound nbt) - { - this.energy = nbt.getInteger("Energy"); - if (this.energy > this.capacity) { - this.energy = this.capacity; - } - return this; - } - - public NBTTagCompound writeToNBT(NBTTagCompound nbt) - { - if (this.energy < 0) { - this.energy = 0; - } - nbt.setInteger("Energy", this.energy); - return nbt; - } - - public void setCapacity(int capacity) - { - this.capacity = capacity; - if (this.energy > capacity) { - this.energy = capacity; - } - } - - public void setMaxTransfer(int maxTransfer) - { - setMaxReceive(maxTransfer); - setMaxExtract(maxTransfer); - } - - public void setMaxReceive(int maxReceive) - { - this.maxReceive = maxReceive; - } - - public void setMaxExtract(int maxExtract) - { - this.maxExtract = maxExtract; - } - - public int getMaxReceive() - { - return this.maxReceive; - } - - public int getMaxExtract() - { - return this.maxExtract; - } - - public void setEnergyStored(int energy) - { - this.energy = energy; - if (this.energy > this.capacity) { - this.energy = this.capacity; - } else if (this.energy < 0) { - this.energy = 0; - } - } - - public void modifyEnergyStored(int energy) - { - this.energy += energy; - if (this.energy > this.capacity) { - this.energy = this.capacity; - } else if (this.energy < 0) { - this.energy = 0; - } - } - - public int receiveEnergy(int maxReceive, boolean simulate) - { - int energyReceived = Math.min(this.capacity - this.energy, Math.min(this.maxReceive, maxReceive)); - if (!simulate) { - this.energy += energyReceived; - } - return energyReceived; - } - - public int extractEnergy(int maxExtract, boolean simulate) - { - int energyExtracted = Math.min(this.energy, Math.min(this.maxExtract, maxExtract)); - if (!simulate) { - this.energy -= energyExtracted; - } - return energyExtracted; - } - - public int getEnergyStored() - { - return this.energy; - } - - public int getMaxEnergyStored() - { - return this.capacity; - } -} diff --git a/src/Java/cofh/api/energy/IEnergyConnection.java b/src/Java/cofh/api/energy/IEnergyConnection.java deleted file mode 100644 index b038c7edb2..0000000000 --- a/src/Java/cofh/api/energy/IEnergyConnection.java +++ /dev/null @@ -1,8 +0,0 @@ -package cofh.api.energy; - -import net.minecraftforge.common.util.ForgeDirection; - -public abstract interface IEnergyConnection -{ - public abstract boolean canConnectEnergy(ForgeDirection paramForgeDirection); -} diff --git a/src/Java/cofh/api/energy/IEnergyContainerItem.java b/src/Java/cofh/api/energy/IEnergyContainerItem.java deleted file mode 100644 index 0d0a3cfe7f..0000000000 --- a/src/Java/cofh/api/energy/IEnergyContainerItem.java +++ /dev/null @@ -1,14 +0,0 @@ -package cofh.api.energy; - -import net.minecraft.item.ItemStack; - -public abstract interface IEnergyContainerItem -{ - public abstract int receiveEnergy(ItemStack paramItemStack, int paramInt, boolean paramBoolean); - - public abstract int extractEnergy(ItemStack paramItemStack, int paramInt, boolean paramBoolean); - - public abstract int getEnergyStored(ItemStack paramItemStack); - - public abstract int getMaxEnergyStored(ItemStack paramItemStack); -} diff --git a/src/Java/cofh/api/energy/IEnergyHandler.java b/src/Java/cofh/api/energy/IEnergyHandler.java deleted file mode 100644 index fb9aae3900..0000000000 --- a/src/Java/cofh/api/energy/IEnergyHandler.java +++ /dev/null @@ -1,15 +0,0 @@ -package cofh.api.energy; - -import net.minecraftforge.common.util.ForgeDirection; - -public abstract interface IEnergyHandler - extends IEnergyProvider, IEnergyReceiver -{ - public abstract int receiveEnergy(ForgeDirection paramForgeDirection, int paramInt, boolean paramBoolean); - - public abstract int extractEnergy(ForgeDirection paramForgeDirection, int paramInt, boolean paramBoolean); - - public abstract int getEnergyStored(ForgeDirection paramForgeDirection); - - public abstract int getMaxEnergyStored(ForgeDirection paramForgeDirection); -} diff --git a/src/Java/cofh/api/energy/IEnergyProvider.java b/src/Java/cofh/api/energy/IEnergyProvider.java deleted file mode 100644 index c0a032db01..0000000000 --- a/src/Java/cofh/api/energy/IEnergyProvider.java +++ /dev/null @@ -1,13 +0,0 @@ -package cofh.api.energy; - -import net.minecraftforge.common.util.ForgeDirection; - -public abstract interface IEnergyProvider - extends IEnergyConnection -{ - public abstract int extractEnergy(ForgeDirection paramForgeDirection, int paramInt, boolean paramBoolean); - - public abstract int getEnergyStored(ForgeDirection paramForgeDirection); - - public abstract int getMaxEnergyStored(ForgeDirection paramForgeDirection); -} diff --git a/src/Java/cofh/api/energy/IEnergyReceiver.java b/src/Java/cofh/api/energy/IEnergyReceiver.java deleted file mode 100644 index 20f177b01c..0000000000 --- a/src/Java/cofh/api/energy/IEnergyReceiver.java +++ /dev/null @@ -1,13 +0,0 @@ -package cofh.api.energy; - -import net.minecraftforge.common.util.ForgeDirection; - -public abstract interface IEnergyReceiver - extends IEnergyConnection -{ - public abstract int receiveEnergy(ForgeDirection paramForgeDirection, int paramInt, boolean paramBoolean); - - public abstract int getEnergyStored(ForgeDirection paramForgeDirection); - - public abstract int getMaxEnergyStored(ForgeDirection paramForgeDirection); -} diff --git a/src/Java/cofh/api/energy/IEnergyStorage.java b/src/Java/cofh/api/energy/IEnergyStorage.java deleted file mode 100644 index 421a51dd15..0000000000 --- a/src/Java/cofh/api/energy/IEnergyStorage.java +++ /dev/null @@ -1,12 +0,0 @@ -package cofh.api.energy; - -public abstract interface IEnergyStorage -{ - public abstract int receiveEnergy(int paramInt, boolean paramBoolean); - - public abstract int extractEnergy(int paramInt, boolean paramBoolean); - - public abstract int getEnergyStored(); - - public abstract int getMaxEnergyStored(); -} diff --git a/src/Java/cofh/api/energy/ItemEnergyContainer.java b/src/Java/cofh/api/energy/ItemEnergyContainer.java deleted file mode 100644 index 86defc0ae3..0000000000 --- a/src/Java/cofh/api/energy/ItemEnergyContainer.java +++ /dev/null @@ -1,98 +0,0 @@ -package cofh.api.energy; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -public class ItemEnergyContainer - extends Item - implements IEnergyContainerItem -{ - protected int capacity; - protected int maxReceive; - protected int maxExtract; - - public ItemEnergyContainer() {} - - public ItemEnergyContainer(int capacity) - { - this(capacity, capacity, capacity); - } - - public ItemEnergyContainer(int capacity, int maxTransfer) - { - this(capacity, maxTransfer, maxTransfer); - } - - public ItemEnergyContainer(int capacity, int maxReceive, int maxExtract) - { - this.capacity = capacity; - this.maxReceive = maxReceive; - this.maxExtract = maxExtract; - } - - public ItemEnergyContainer setCapacity(int capacity) - { - this.capacity = capacity; - return this; - } - - public void setMaxTransfer(int maxTransfer) - { - setMaxReceive(maxTransfer); - setMaxExtract(maxTransfer); - } - - public void setMaxReceive(int maxReceive) - { - this.maxReceive = maxReceive; - } - - public void setMaxExtract(int maxExtract) - { - this.maxExtract = maxExtract; - } - - public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) - { - if (container.stackTagCompound == null) { - container.stackTagCompound = new NBTTagCompound(); - } - int energy = container.stackTagCompound.getInteger("Energy"); - int energyReceived = Math.min(this.capacity - energy, Math.min(this.maxReceive, maxReceive)); - if (!simulate) - { - energy += energyReceived; - container.stackTagCompound.setInteger("Energy", energy); - } - return energyReceived; - } - - public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) - { - if ((container.stackTagCompound == null) || (!container.stackTagCompound.hasKey("Energy"))) { - return 0; - } - int energy = container.stackTagCompound.getInteger("Energy"); - int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract)); - if (!simulate) - { - energy -= energyExtracted; - container.stackTagCompound.setInteger("Energy", energy); - } - return energyExtracted; - } - - public int getEnergyStored(ItemStack container) - { - if ((container.stackTagCompound == null) || (!container.stackTagCompound.hasKey("Energy"))) { - return 0; - } - return container.stackTagCompound.getInteger("Energy"); - } - - public int getMaxEnergyStored(ItemStack container) - { - return this.capacity; - } -} diff --git a/src/Java/cofh/api/energy/TileEnergyHandler.java b/src/Java/cofh/api/energy/TileEnergyHandler.java deleted file mode 100644 index 8965adfccd..0000000000 --- a/src/Java/cofh/api/energy/TileEnergyHandler.java +++ /dev/null @@ -1,49 +0,0 @@ -package cofh.api.energy; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEnergyHandler - extends TileEntity - implements IEnergyHandler -{ - protected EnergyStorage storage = new EnergyStorage(32000); - - public void readFromNBT(NBTTagCompound nbt) - { - super.readFromNBT(nbt); - this.storage.readFromNBT(nbt); - } - - public void writeToNBT(NBTTagCompound nbt) - { - super.writeToNBT(nbt); - this.storage.writeToNBT(nbt); - } - - public boolean canConnectEnergy(ForgeDirection from) - { - return true; - } - - public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) - { - return this.storage.receiveEnergy(maxReceive, simulate); - } - - public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) - { - return this.storage.extractEnergy(maxExtract, simulate); - } - - public int getEnergyStored(ForgeDirection from) - { - return this.storage.getEnergyStored(); - } - - public int getMaxEnergyStored(ForgeDirection from) - { - return this.storage.getMaxEnergyStored(); - } -} diff --git a/src/Java/gtPlusPlus/core/common/BasePlayer.java b/src/Java/gtPlusPlus/core/common/BasePlayer.java new file mode 100644 index 0000000000..fb17480b8f --- /dev/null +++ b/src/Java/gtPlusPlus/core/common/BasePlayer.java @@ -0,0 +1,346 @@ +package gtPlusPlus.core.common; + +import gtPlusPlus.core.handler.events.CustomMovementHandler; +import gtPlusPlus.core.handler.events.SneakManager; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.entity.EntityClientPlayerMP; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.settings.GameSettings; +import net.minecraft.network.play.client.C0BPacketEntityAction; +import net.minecraft.potion.Potion; +import net.minecraft.util.MovementInputFromOptions; +import net.minecraft.util.ResourceLocation; +import api.player.client.ClientPlayerAPI; +import api.player.client.ClientPlayerBase; + +public class BasePlayer extends ClientPlayerBase +{ + private final Minecraft mc = Minecraft.getMinecraft(); + private final CustomMovementHandler customMovementInput = new CustomMovementHandler(); + private final GameSettings settings = mc.gameSettings; + + public BasePlayer(ClientPlayerAPI api) + { + super(api); + } + + /* + * EntityPlayerSP.onLivingUpdate() - Adapted to PlayerAPI + */ + @Override + public void onLivingUpdate() + { + if(this.player.sprintingTicksLeft > 0) + { + --this.player.sprintingTicksLeft; + if(this.player.sprintingTicksLeft == 0) + { + this.player.setSprinting(false); + } + } + + if(this.playerAPI.getSprintToggleTimerField() > 0) + { + this.playerAPI.setSprintToggleTimerField(this.playerAPI.getSprintToggleTimerField() - 1); + } + + if(this.mc.playerController.enableEverythingIsScrewedUpMode()) + { + this.player.posX = this.player.posZ = 0.5D; + this.player.posX = 0.0D; + this.player.posZ = 0.0D; + this.player.rotationYaw = (float)this.player.ticksExisted / 12.0F; + this.player.rotationPitch = 10.0F; + this.player.posY = 68.5D; + } + else + { + this.player.prevTimeInPortal = this.player.timeInPortal; + if(this.playerAPI.getInPortalField()) + { + if(this.mc.currentScreen != null) + { + this.mc.displayGuiScreen((GuiScreen)null); + } + + if(this.player.timeInPortal == 0.0F) + { + this.mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("portal.trigger"), this.player.getRNG().nextFloat() * 0.4F + 0.8F)); + } + + this.player.timeInPortal += 0.0125F; + + if(this.player.timeInPortal >= 1.0F) + { + this.player.timeInPortal = 1.0F; + } + + this.playerAPI.setInPortalField(false); + } + else if(this.player.isPotionActive(Potion.confusion) && this.player.getActivePotionEffect(Potion.confusion).getDuration() > 60) + { + this.player.timeInPortal += 0.006666667F; + if(this.player.timeInPortal > 1.0F) + { + this.player.timeInPortal = 1.0F; + } + } + else + { + if(this.player.timeInPortal > 0.0F) + { + this.player.timeInPortal -= 0.05F; + } + + if(this.player.timeInPortal < 0.0F) + { + this.player.timeInPortal = 0.0F; + } + } + + + if(this.player.timeUntilPortal > 0) + { + --this.player.timeUntilPortal; + } + + boolean isJumping = this.player.movementInput.jump; + + float minSpeed = 0.8F; + boolean isMovingForward = this.player.movementInput.moveForward >= minSpeed; + this.customMovementInput.update(this.mc, (MovementInputFromOptions)this.player.movementInput, this.player); + + if(this.player.isUsingItem() && !this.player.isRiding()) + { + this.player.movementInput.moveStrafe *= 0.2F; + this.player.movementInput.moveForward *= 0.2F; + this.playerAPI.setSprintToggleTimerField(0); + } + + if(this.player.movementInput.sneak && this.player.ySize < 0.2F) + { + this.player.ySize = 0.2F; + } + + this.playerAPI.localPushOutOfBlocks(this.player.posX - (double)this.player.width * 0.35D, this.player.boundingBox.minY + 0.5D, this.player.posZ + (double)this.player.width * 0.35D); + this.playerAPI.localPushOutOfBlocks(this.player.posX - (double)this.player.width * 0.35D, this.player.boundingBox.minY + 0.5D, this.player.posZ - (double)this.player.width * 0.35D); + this.playerAPI.localPushOutOfBlocks(this.player.posX + (double)this.player.width * 0.35D, this.player.boundingBox.minY + 0.5D, this.player.posZ - (double)this.player.width * 0.35D); + this.playerAPI.localPushOutOfBlocks(this.player.posX + (double)this.player.width * 0.35D, this.player.boundingBox.minY + 0.5D, this.player.posZ + (double)this.player.width * 0.35D); + boolean enoughHunger = (float)this.player.getFoodStats().getFoodLevel() > 6.0F || this.player.capabilities.isFlying; + + /* + * Begin ToggleSneak Changes - ToggleSprint + */ + + boolean isSprintDisabled = !SneakManager.canSprint; + boolean canDoubleTap = SneakManager.optionDoubleTap; + + // Detect when ToggleSprint was disabled in the in-game options menu + if(SneakManager.wasSprintDisabled) + { + this.player.setSprinting(false); + customMovementInput.UpdateSprint(false, false); + SneakManager.wasSprintDisabled = false; + } + + // Default Sprint routine converted to PlayerAPI, use if ToggleSprint is disabled - TODO - Disable sprinting as a whole + if(isSprintDisabled) + { + if(SneakManager.optionDoubleTap && this.player.onGround && !isMovingForward && this.player.movementInput.moveForward >= minSpeed && !this.player.isSprinting() && enoughHunger && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness)) + { + if(this.playerAPI.getSprintToggleTimerField() <= 0 && !this.settings.keyBindSprint.getIsKeyPressed()) + { + this.playerAPI.setSprintToggleTimerField(7); + } + else + { + if (!SneakManager.SprintingDisabled()){ + this.player.setSprinting(true); + customMovementInput.UpdateSprint(true, false); + } + else { + this.player.setSprinting(false); + customMovementInput.UpdateSprint(false, false); + } + } + } + + if(!this.player.isSprinting() && this.player.movementInput.moveForward >= minSpeed && enoughHunger && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness) && this.settings.keyBindSprint.getIsKeyPressed()) + { + if (!SneakManager.SprintingDisabled()){ + this.player.setSprinting(true); + customMovementInput.UpdateSprint(true, false); + } + else { + this.player.setSprinting(false); + customMovementInput.UpdateSprint(false, false); + } + } + } + else + { + boolean state = this.customMovementInput.sprint; + + // Only handle changes in state under the following conditions: + // On ground, not hungry, not eating/using item, not blind, and not Vanilla + // + // 5/6/14 - onGround check removed to match vanilla's 'start sprint while jumping' behavior. + //if(this.player.onGround && enoughHunger && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness) && !this.customMovementInput.sprintHeldAndReleased) + + if(enoughHunger && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness) && !this.customMovementInput.sprintHeldAndReleased) + { + if(canDoubleTap && !this.player.isSprinting() || !canDoubleTap) + { + if (!SneakManager.SprintingDisabled()) + this.player.setSprinting(state); + else + this.player.setSprinting(false); + } + } + + if(canDoubleTap && !state && this.player.onGround && !isMovingForward && this.player.movementInput.moveForward >= minSpeed && !this.player.isSprinting() && enoughHunger && !this.player.isUsingItem() && !this.player.isPotionActive(Potion.blindness)) + { + if(this.playerAPI.getSprintToggleTimerField() == 0) + { + this.playerAPI.setSprintToggleTimerField(7); + } + else + { + if (!SneakManager.SprintingDisabled()){ + this.player.setSprinting(true); + customMovementInput.UpdateSprint(true, true); + this.playerAPI.setSprintToggleTimerField(0); + } + } + } + } + + // If sprinting, break the sprint in appropriate circumstances: + // Player stops moving forward, runs into something, or gets too hungry + if(this.player.isSprinting() && (this.player.movementInput.moveForward < minSpeed || this.player.isCollidedHorizontally || !enoughHunger)) + { + this.player.setSprinting(false); + + // Undo toggle if we resumed vanilla operation due to Hold&Release, DoubleTap, Fly, Ride + if (customMovementInput.sprintHeldAndReleased == true || isSprintDisabled || customMovementInput.sprintDoubleTapped || this.player.capabilities.isFlying || this.player.isRiding()) + { + customMovementInput.UpdateSprint(false, false); + } + } + + /* + * End ToggleSneak Changes - ToggleSprint + */ + + // // + // // Debug Framework - Added 5/7/2014 + // // + // if (this.showDebug && this.settings.keyBindPickBlock.getIsKeyPressed() && !this.handledDebugPress) + // { + // this.player.addChatMessage(new ChatComponentText("+--------------------------------------+")); + // this.player.addChatMessage(new ChatComponentText("| ToggleSneak Debug Info |")); + // this.player.addChatMessage(new ChatComponentText("+--------------------------------------+")); + // this.player.addChatMessage(new ChatComponentText(" ")); + // this.player.addChatMessage(new ChatComponentText("isFlying - " + (this.player.capabilities.isFlying == true ? "True" : "False"))); + // this.player.addChatMessage(new ChatComponentText("isCreative - " + (this.player.capabilities.isCreativeMode == true ? "True" : "False"))); + // this.player.addChatMessage(new ChatComponentText("enableFlyBoost - " + (SneakManager.optionEnableFlyBoost == true ? "True" : "False"))); + // this.player.addChatMessage(new ChatComponentText("flyBoostAmount - " + SneakManager.optionFlyBoostAmount)); + // this.player.addChatMessage(new ChatComponentText(" ")); + // this.player.addChatMessage(new ChatComponentText("keybindSprint - " + (this.settings.keyBindSprint.getIsKeyPressed() == true ? "True" : "False"))); + // this.player.addChatMessage(new ChatComponentText("keybindSneak - " + (this.settings.keyBindSneak.getIsKeyPressed() == true ? "True" : "False"))); + // this.player.addChatMessage(new ChatComponentText("keybindJump - " + (this.settings.keyBindJump.getIsKeyPressed() == true ? "True" : "False"))); + // this.player.addChatMessage(new ChatComponentText(" ")); + // this.player.addChatMessage(new ChatComponentText(" ")); + // + // this.handledDebugPress = true; + // } + // else if (this.showDebug && !this.settings.keyBindPickBlock.getIsKeyPressed() && this.handledDebugPress) + // { + // this.handledDebugPress = false; + // } + + // + // Fly Speed Boosting - Added 5/7/2014 + // + if(this.player.capabilities.getFlySpeed() != 0.05F) + { + this.player.capabilities.setFlySpeed(0.05F); + } + + + if(this.player.capabilities.allowFlying && !isJumping && this.player.movementInput.jump) + { + if(this.playerAPI.getFlyToggleTimerField() == 0) + { + this.playerAPI.setFlyToggleTimerField(7); + } + else + { + this.player.capabilities.isFlying = !this.player.capabilities.isFlying; + this.player.sendPlayerAbilities(); + this.playerAPI.setFlyToggleTimerField(0); + } + } + + if(this.player.capabilities.isFlying) + { + if(this.player.movementInput.sneak) + { + this.player.motionY -= 0.15D; + } + if(this.player.movementInput.jump) + { + this.player.motionY += 0.15D; + } + } + + if(this.player.isRidingHorse()) + { + if(this.playerAPI.getHorseJumpPowerCounterField() < 0) + { + this.playerAPI.setHorseJumpPowerCounterField(this.playerAPI.getHorseJumpPowerCounterField() + 1); + if(this.playerAPI.getHorseJumpPowerCounterField() == 0) + { + this.playerAPI.setHorseJumpPowerField(0.0F); + } + } + + if(isJumping && !this.player.movementInput.jump) + { + this.playerAPI.setHorseJumpPowerCounterField(this.playerAPI.getHorseJumpPowerCounterField() - 10); + this.playerAPI.setHorseJumpPowerCounterField(-10); + ((EntityClientPlayerMP)this.player).sendQueue.addToSendQueue(new C0BPacketEntityAction(this.player, 6, (int)(this.player.getHorseJumpPower() * 100.0F))); + } + else if(!isJumping && this.player.movementInput.jump) + { + this.playerAPI.setHorseJumpPowerCounterField(0); + this.playerAPI.setHorseJumpPowerField(0.0F); + } + else if(isJumping) + { + this.playerAPI.setHorseJumpPowerCounterField(this.playerAPI.getHorseJumpPowerCounterField() + 1); + if(this.playerAPI.getHorseJumpPowerCounterField() < 10) + { + this.playerAPI.setHorseJumpPowerField((float)this.playerAPI.getHorseJumpPowerCounterField() * 0.1F); + } + else + { + this.playerAPI.setHorseJumpPowerField(0.8F + 2.0F / (float)(this.playerAPI.getHorseJumpPowerCounterField() - 9) * 0.1F); + } + } + } + else + { + this.playerAPI.setHorseJumpPowerField(0.0F); + } + + this.playerAPI.superOnLivingUpdate(); + if(this.player.onGround && this.player.capabilities.isFlying) + { + this.player.capabilities.isFlying = false; + this.player.sendPlayerAbilities(); + } + } + } +} \ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/handler/events/CustomMovementHandler.java b/src/Java/gtPlusPlus/core/handler/events/CustomMovementHandler.java new file mode 100644 index 0000000000..e2eb1538e6 --- /dev/null +++ b/src/Java/gtPlusPlus/core/handler/events/CustomMovementHandler.java @@ -0,0 +1,160 @@ +package gtPlusPlus.core.handler.events; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.settings.GameSettings; +import net.minecraft.util.MovementInputFromOptions; + +/* + * Replacement for MovementInputFromOptions - Built from the source of ToggleSneak 3.0.3 + */ + +public class CustomMovementHandler { + + public boolean isDisabled; + public boolean canDoubleTap; + + public boolean sprint = false; + public boolean sprintHeldAndReleased = false; + public boolean sprintDoubleTapped = false; + + private long lastPressed; + private long lastSprintPressed; + private boolean handledSneakPress; + private boolean handledSprintPress; + private boolean wasRiding; + + /* + * MovementInputFromOptions.updatePlayerMoveState() + */ + public void update(Minecraft mc, MovementInputFromOptions options, EntityPlayerSP thisPlayer) + { + options.moveStrafe = 0.0F; + options.moveForward = 0.0F; + + GameSettings settings = mc.gameSettings; + + if(settings.keyBindForward.getIsKeyPressed()) + { + ++options.moveForward; + } + + if(settings.keyBindBack.getIsKeyPressed()) + { + --options.moveForward; + } + + if(settings.keyBindLeft.getIsKeyPressed()) + { + ++options.moveStrafe; + } + + if(settings.keyBindRight.getIsKeyPressed()) + { + --options.moveStrafe; + } + + options.jump = settings.keyBindJump.getIsKeyPressed(); + + // + // Sneak Toggle - Essentially the same as old ToggleSneak + // + + // Check to see if Enabled - Added 6/17/14 to provide option to disable Sneak Toggle + if (SneakManager.Sneaking()) + { + // Key Pressed + if (settings.keyBindSneak.getIsKeyPressed() && !this.handledSneakPress) + { + // Descend if we are flying, note if we were riding (so we can unsneak once dismounted) + if(thisPlayer.isRiding() || thisPlayer.capabilities.isFlying) + { + options.sneak = true; + this.wasRiding = thisPlayer.isRiding(); + } + else + { + options.sneak = !options.sneak; + } + + this.lastPressed = System.currentTimeMillis(); + this.handledSneakPress = true; + } + + // Key Released + if (!settings.keyBindSneak.getIsKeyPressed() && this.handledSneakPress) + { + // If we are flying or riding, stop sneaking after descent/dismount. + if(thisPlayer.capabilities.isFlying || this.wasRiding) + { + options.sneak = false; + this.wasRiding = false; + } + // If the key was held down for more than 300ms, stop sneaking upon release. + else if(System.currentTimeMillis() - this.lastPressed > 300L) + { + options.sneak = false; + } + + this.handledSneakPress = false; + } + } + else + { + options.sneak = settings.keyBindSneak.getIsKeyPressed(); + } + + if(options.sneak || SneakManager.Sneaking()) + { + options.moveStrafe = (float)((double)options.moveStrafe * 0.3D); + options.moveForward = (float)((double)options.moveForward * 0.3D); + } + + // + // Sprint Toggle - Updated 6/18/2014 + // + + // Establish conditions where we don't want to start a sprint - sneaking, riding, flying, hungry + boolean enoughHunger = (float)thisPlayer.getFoodStats().getFoodLevel() > 6.0F || thisPlayer.capabilities.isFlying; + boolean canSprint = !options.sneak && !thisPlayer.isRiding() && !thisPlayer.capabilities.isFlying && enoughHunger; + + isDisabled = !SneakManager.canSprint; + canDoubleTap = SneakManager.optionDoubleTap; + + // Key Pressed + if((canSprint || isDisabled) && settings.keyBindSprint.getIsKeyPressed() && !this.handledSprintPress) + { + if(!isDisabled) + { + this.sprint = !this.sprint; + this.lastSprintPressed = System.currentTimeMillis(); + this.handledSprintPress = true; + this.sprintHeldAndReleased = false; + } + } + + // Key Released + if((canSprint || isDisabled) && !settings.keyBindSprint.getIsKeyPressed() && this.handledSprintPress) + { + // Was key held for longer than 300ms? If so, mark it so we can resume vanilla behavior + if(System.currentTimeMillis() - this.lastSprintPressed > 300L) + { + this.sprintHeldAndReleased = true; + } + this.handledSprintPress = false; + } + + } + + public void UpdateSprint(boolean newValue, boolean doubleTapped){ + if (SneakManager.SprintingDisabled()){ + this.sprint = false; + this.sprintDoubleTapped = doubleTapped; + } + else{ + this.sprint = newValue; + this.sprintDoubleTapped = doubleTapped; + } + } + +} \ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/handler/events/SneakManager.java b/src/Java/gtPlusPlus/core/handler/events/SneakManager.java new file mode 100644 index 0000000000..9e783a3a4f --- /dev/null +++ b/src/Java/gtPlusPlus/core/handler/events/SneakManager.java @@ -0,0 +1,73 @@ +package gtPlusPlus.core.handler.events; + +import net.minecraft.client.Minecraft; + +public class SneakManager { + + //We make this a singleton for clientside data storage. + public static SneakManager instance = new SneakManager(); + protected static final Minecraft mc = Minecraft.getMinecraft(); + public static boolean canSprint = true; + public static boolean isSneaking = true; + public static boolean optionDoubleTap = false; + public static boolean wasSprintDisabled = false; + + private static State Sprinting = State.OFF; + private static State Crouching = State.OFF; + + public static boolean Sneaking(){ + return Crouching.getState(); + } + + public static boolean SprintingDisabled(){ + return Sprinting.getState(); + } + + public static State getSneakingState(){ + return Crouching; + } + + public static State getSprintingDisabledState(){ + return Sprinting; + } + + public static void toggleSneaking(){ + toggleState(Crouching); + } + + public static void toggleSprinting(){ + toggleState(Sprinting); + } + + private static State toggleState(State state){ + if (state == State.ON) + return state = State.OFF; + return state = State.ON; + } + + public static State setStateON(State state1){ + return state1 = State.ON; + } + + public static State setStateOFF(State state1){ + return state1 = State.OFF; + } + + public static enum State { + ON(true), + OFF(false); + + private boolean STATE; + private State (final boolean State) + { + this.STATE = State; + } + + public boolean getState() { + return STATE; + } + + } + +} + diff --git a/src/Java/gtPlusPlus/core/item/general/ItemSlowBuildingRing.java b/src/Java/gtPlusPlus/core/item/general/ItemSlowBuildingRing.java index 2d1c758116..4605b00645 100644 --- a/src/Java/gtPlusPlus/core/item/general/ItemSlowBuildingRing.java +++ b/src/Java/gtPlusPlus/core/item/general/ItemSlowBuildingRing.java @@ -1,11 +1,14 @@ package gtPlusPlus.core.item.general; import gtPlusPlus.core.creative.AddToCreativeTab; +import gtPlusPlus.core.handler.events.CustomMovementHandler; +import gtPlusPlus.core.handler.events.SneakManager; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.item.ItemUtils; import java.util.List; +import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -22,6 +25,7 @@ import cpw.mods.fml.common.registry.GameRegistry; public class ItemSlowBuildingRing extends Item implements IBauble{ private final String unlocalizedName = "SlowBuildingRing"; + CustomMovementHandler x; public ItemSlowBuildingRing(){ this.setCreativeTab(AddToCreativeTab.tabMachines); @@ -100,6 +104,8 @@ public class ItemSlowBuildingRing extends Item implements IBauble{ arg1.setSneaking(false); } } + SneakManager.setStateOFF(SneakManager.getSneakingState()); + SneakManager.setStateOFF(SneakManager.getSprintingDisabledState()); } @Override //TODO @@ -111,9 +117,15 @@ public class ItemSlowBuildingRing extends Item implements IBauble{ if (arg1.worldObj.isRemote){ if (!arg1.isSneaking()){ arg1.setSneaking(true); + Minecraft.getMinecraft().thePlayer.setSneaking(true); + SneakManager.setStateON(SneakManager.getSneakingState()); + SneakManager.setStateON(SneakManager.getSprintingDisabledState()); } else if (arg1.isSneaking()){ arg1.setSprinting(false); + Minecraft.getMinecraft().thePlayer.setSprinting(true); + SneakManager.setStateON(SneakManager.getSneakingState()); + SneakManager.setStateON(SneakManager.getSprintingDisabledState()); } } } diff --git a/src/Java/gtPlusPlus/core/item/general/RF2EU_Battery.java b/src/Java/gtPlusPlus/core/item/general/RF2EU_Battery.java index 0a7c98202e..592b41b0e9 100644 --- a/src/Java/gtPlusPlus/core/item/general/RF2EU_Battery.java +++ b/src/Java/gtPlusPlus/core/item/general/RF2EU_Battery.java @@ -8,6 +8,7 @@ import ic2.api.item.*; import java.util.List; +import api.cofh.energy.ItemEnergyContainer; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -18,7 +19,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -import cofh.api.energy.ItemEnergyContainer; import cpw.mods.fml.common.IFuelHandler; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; diff --git a/src/Java/gtPlusPlus/core/proxy/ClientProxy.java b/src/Java/gtPlusPlus/core/proxy/ClientProxy.java index 276af700f0..12b99e76da 100644 --- a/src/Java/gtPlusPlus/core/proxy/ClientProxy.java +++ b/src/Java/gtPlusPlus/core/proxy/ClientProxy.java @@ -1,13 +1,17 @@ package gtPlusPlus.core.proxy; import gtPlusPlus.GTplusplus; +import gtPlusPlus.core.common.BasePlayer; import gtPlusPlus.core.common.CommonProxy; +import gtPlusPlus.core.handler.events.SneakManager; import gtPlusPlus.core.handler.render.FirepitRender; import gtPlusPlus.core.tileentities.general.TileEntityFirepit; import gtPlusPlus.core.util.particles.EntityParticleFXMysterious; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; import net.minecraft.entity.Entity; +import net.minecraftforge.common.MinecraftForge; +import api.player.client.ClientPlayerAPI; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.event.*; @@ -28,11 +32,17 @@ public class ClientProxy extends CommonProxy{ super.preInit(e); //Do this weird things for textures. GTplusplus.loadTextures(); + //We boot up the sneak manager. + MinecraftForge.EVENT_BUS.register(SneakManager.instance); } @Override public void init(FMLInitializationEvent e) { // TODO Auto-generated method stub + + //Register player instance + ClientPlayerAPI.register("SneakManager", BasePlayer.class); + super.init(e); } @@ -60,8 +70,6 @@ public class ClientProxy extends CommonProxy{ return RenderingRegistry.addNewArmourRendererPrefix(armor); } - - @Override public void generateMysteriousParticles(Entity theEntity) { diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java index 195b85c0c4..53865da327 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_Cable.java @@ -17,6 +17,7 @@ import ic2.api.energy.tile.IEnergySink; import java.util.ArrayList; import java.util.Arrays; +import api.cofh.energy.IEnergyReceiver; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.tileentity.TileEntity; @@ -24,7 +25,6 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -import cofh.api.energy.IEnergyReceiver; public class GregtechMetaPipeEntity_Cable extends GT_MetaPipeEntity_Cable implements IMetaTileEntityCable { public long mTransferredAmperage = 0, mTransferredAmperageLast20 = 0, mTransferredVoltageLast20 = 0; diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_SuperConductor.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_SuperConductor.java index ad9b2c6771..8e7cc778bd 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_SuperConductor.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GregtechMetaPipeEntity_SuperConductor.java @@ -18,6 +18,7 @@ import ic2.api.energy.tile.IEnergySink; import java.util.ArrayList; import java.util.Arrays; +import api.cofh.energy.IEnergyReceiver; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.tileentity.TileEntity; @@ -25,7 +26,6 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -import cofh.api.energy.IEnergyReceiver; public class GregtechMetaPipeEntity_SuperConductor extends GregtechMetaPipeEntityBase_Cable implements IMetaTileEntityCable { public long mTransferredAmperage = 0, mTransferredAmperageLast20 = 0, mTransferredVoltageLast20 = 0; diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaPipeEntityBase_Cable.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaPipeEntityBase_Cable.java index 1d10cb71b2..4daa150889 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaPipeEntityBase_Cable.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMetaPipeEntityBase_Cable.java @@ -22,6 +22,7 @@ import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; +import api.cofh.energy.IEnergyReceiver; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; @@ -31,7 +32,6 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -import cofh.api.energy.IEnergyReceiver; public class GregtechMetaPipeEntityBase_Cable extends MetaPipeEntity implements IMetaTileEntityCable { public final float mThickNess; -- cgit