diff --git a/ISSUE_TEMPLATE b/ISSUE_TEMPLATE index 5c5f344112..1a4ef181f2 100644 --- a/ISSUE_TEMPLATE +++ b/ISSUE_TEMPLATE @@ -1,10 +1,13 @@ -REVIEW THE GUIDELINES (LINK AT TOP OF THIS PAGE) +REVIEW THE GUIDELINES - see [Contributing](https://github.com/micdoodle8/Galacticraft/blob/master/CONTRIBUTING.md) link on right side. Minecraft version: Galacticraft version: Single player (SSP), Multiplayer (SMP), or SSP opened to LAN (LAN)? +- If SMP server, please mention if it has **Sponge**, AtomMC, BukkitForge, BungeeCord etc. -Galacticraft add-ons and other mods installed? +Any Galacticraft add-ons installed? please list all -Please provide screenshots / crash report / log as needed. +Please provide screenshots / crash report / log / full modlist as needed + +If the game is not starting at all, please confirm that you downloaded from the official Galacticraft download site (https://micdoodle8.com/mods/galacticraft) diff --git a/build.gradle b/build.gradle index 1b8d53babe..e3d55f1de6 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ -def mcVersion = "1.8.9" +def mcVersion = "1.12.2" def versionMajor = 4 def versionMinor = 0 -def versionRev = 1 +def versionRev = 2 // For those who want the bleeding edge buildscript { @@ -9,11 +9,11 @@ buildscript { jcenter() maven { name = "forge" - url = "http://files.minecraftforge.net/maven" + url = "https://files.minecraftforge.net/maven" } } dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT' + classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' } } apply plugin: 'net.minecraftforge.gradle.forge' @@ -39,7 +39,7 @@ sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 minecraft { - version = "1.8.9-11.15.1.1764" + version = "1.12.2-14.23.5.2768" runDir = "run" // the mappings can be changed at any time, and must be in the following format. @@ -47,23 +47,32 @@ minecraft { // stable_# stables are built at the discretion of the MCP team. // Use non-default mappings at your own risk. they may not allways work. // simply re-run your setup task after changing the mappings to update your workspace. - mappings = "stable_20" + mappings = "snapshot_20171003" makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. } -// Keep a list of dependencies files/directories for easy jar packing -ext.dependencies = ['codechicken/**', - '**/nei_at.cfg', - 'api/**', - 'appeng/**', - 'biomesoplenty/**', - 'buildcraft/**', - 'cofh/**', - 'de/**', - 'ic2/**', - 'mekanism/**', - 'mezz/**', - 'powercrystals/**'] +repositories { + maven { + name = 'curseforge' + url = 'https://minecraft.curseforge.com/api/maven/' + } + maven { + url = "https://mod-buildcraft.com/maven/" + } +} + +dependencies { + compile "jei:jei_1.12.2:4.15.0.268" + compile "mekanism:Mekanism-1.12.2:9.4.13.349:api" + compile "applied-energistics-2:appliedenergistics2-rv6:stable:6" + compile "com.github.glitchfiend.biomesoplenty:BiomesOPlenty:1.12.2-7.0.1.2399:universal" + compile "com.mod-buildcraft:buildcraft-api:7.99.21" + compile "redstone-flux:RedstoneFlux-1.12:2.1.0.6:universal" + compile "actually-additions:ActuallyAdditions:1.12.2:r144" + compile "industrial-craft:industrialcraft-2-2.8.109:ex112:api" + compile "player-api:PlayerAPI:1.12.1:1.0" + +} // Keep a list of core files/directories for easy jar packing ext.apiFiles = ['micdoodle8/mods/galacticraft/api/**'] @@ -94,7 +103,6 @@ jar includes.addAll('mcmod.info') includes.addAll('LICENSE.txt') includes.addAll('api/player/**') - includes.addAll(project.ext.dependencies) includes.addAll(project.ext.planetsFiles) includes.addAll(project.ext.micdoodleCoreFiles) } @@ -132,7 +140,6 @@ task packCoreJar(type: Jar, dependsOn: "rePackAllJarCore") { includes.addAll('mcmod.info') includes.addAll('LICENSE.txt') excludes.addAll(project.ext.planetsFiles) - excludes.addAll(project.ext.dependencies) excludes.addAll(project.ext.micdoodleCoreFiles) } } @@ -150,7 +157,6 @@ task packPlanetsJar(type: Jar, dependsOn: "rePackAllJarPlanets") { includes.addAll('LICENSE.txt') excludes.addAll(project.ext.coreFiles) excludes.addAll(project.ext.apiFiles) - excludes.addAll(project.ext.dependencies) excludes.addAll(project.ext.micdoodleCoreFiles) } } @@ -168,7 +174,6 @@ task packMicCoreJar(type: Jar, dependsOn: "reobfJar") { include('micdoodle8/mods/galacticraft/api/entity/IEntityBreathable.class') excludes.addAll(project.ext.coreFiles) excludes.addAll(project.ext.planetsFiles) - excludes.addAll(project.ext.dependencies) } // Configure manifest attributes @@ -187,7 +192,6 @@ task packCoreJarDev(type: Jar, dependsOn: "classes") { includes.addAll('mcmod.info') includes.addAll('LICENSE.txt') excludes.addAll(project.ext.planetsFiles) - excludes.addAll(project.ext.dependencies) excludes.addAll(project.ext.micdoodleCoreFiles) } @@ -197,7 +201,6 @@ task packCoreJarDev(type: Jar, dependsOn: "classes") { includes.addAll('mcmod.info') includes.addAll('LICENSE.txt') excludes.addAll(project.ext.planetsFiles) - excludes.addAll(project.ext.dependencies) excludes.addAll(project.ext.micdoodleCoreFiles) excludes.addAll('assets') into 'src' @@ -222,7 +225,6 @@ task packPlanetsJarDev(type: Jar, dependsOn: "classes") { includes.addAll('LICENSE.txt') excludes.addAll(project.ext.coreFiles) excludes.addAll(project.ext.apiFiles) - excludes.addAll(project.ext.dependencies) excludes.addAll(project.ext.micdoodleCoreFiles) } @@ -233,7 +235,6 @@ task packPlanetsJarDev(type: Jar, dependsOn: "classes") { includes.addAll('LICENSE.txt') excludes.addAll(project.ext.coreFiles) excludes.addAll(project.ext.apiFiles) - excludes.addAll(project.ext.dependencies) excludes.addAll(project.ext.micdoodleCoreFiles) excludes.addAll('assets') into 'src' @@ -253,7 +254,6 @@ task packMicCoreJarDev(type: Jar, dependsOn: "classes") { excludes.addAll(project.ext.planetsFiles) excludes.addAll(project.ext.coreFiles) excludes.addAll(project.ext.apiFiles) - excludes.addAll(project.ext.dependencies) excludes.addAll('**/*.info') } @@ -264,7 +264,6 @@ task packMicCoreJarDev(type: Jar, dependsOn: "classes") { excludes.addAll(project.ext.planetsFiles) excludes.addAll(project.ext.coreFiles) excludes.addAll(project.ext.apiFiles) - excludes.addAll(project.ext.dependencies) excludes.addAll('**/*.info') excludes.addAll('assets') into 'src' @@ -285,13 +284,21 @@ task packApi(type: Jar, dependsOn: "classes") { // Set the jar's base name baseName = "Galacticraft-API" + from (sourceSets.main.output) { + includes.addAll(project.ext.apiFiles) + includes.addAll('LICENSE.txt') + excludes.addAll(project.ext.micdoodleCoreFiles) + excludes.addAll(project.ext.planetsFiles) + excludes.addAll('**/*.info') + excludes.addAll('assets') + } + from (sourceSets.main.allSource) { // Add necessary files, remove unnecessary ones. includes.addAll(project.ext.apiFiles) includes.addAll('LICENSE.txt') excludes.addAll(project.ext.micdoodleCoreFiles) excludes.addAll(project.ext.planetsFiles) - excludes.addAll(project.ext.dependencies) excludes.addAll('**/*.info') excludes.addAll('assets') } diff --git a/capes-uuid.txt b/capes-uuid.txt new file mode 100644 index 0000000000..80af656705 --- /dev/null +++ b/capes-uuid.txt @@ -0,0 +1,97 @@ +4e0dd4b7c04f4b728bbcd8f1510d9cc7:capeOrange micdoodle8 +bba235f5785848a198bc7ccba53a309e:capeLightGray radfast +35282c16cf0a4d8eb5d6e2c2b2af8d25:capeLime JTE +f782663c84ee476188b528c672400477:capeLime Mitchski +1a32606e2e554a68b1bcdef5527a06c9:capeLime TheGookuPJ +a7108076b5e446689e8f38ce170b7c3d:capeLime bob10234 +7b87531ac6834a71a531d4216b999077:capeLime Flies_On_Eyes +6b2697befb724476b1366560dad61de5:capeLime CrimsonKMR +7ba60d3f8d3f435a92c59867614ce97f:capeLime _lime +09912f8b02dc43728d0d60ae66d85d7a:capeLime Hachipatas +15a5921d36cf4c139bcee254e2ff2885:capeLime Happypancakes56 +0dd8daa9bec74255ba4834911fe70526:capeLime Slke +532a13ec3126453f87a0df16f0eccbad:capeLime Tyroul +3d7c4b45715d4623a9104193996e1900:capeLime kungfu_dragon +9da24e27976441d8accca25da2f1457f:capeLime Lewis_McReu +bc14cd20a79b42fcb6f6eab39ed59036:capeLightGray TheDaveStream +322a906773a343f892998ff9d9ceb336:capeLime RampantDolphin +2228ec9a323a40ddb0e998e65d05608a:capeLime PureTryOut +401af2b734d14a5ea78a9ae81757b9ee:capeLime ramenators +751f7a3bf3ab43e4b5d2352c7a0d7d9a:capeLime randhope21 +c3ea848638e146c18f42b2479ac16ea8:capeLime Night_Fury_CZ +c18b17fcae494d93a1db83121dc01bff:capeLime SoaringChris137 +58cdd8b69e004a339914666457cf6421:capeLime TerraGenome +2eaac1b2af094a72bf833c462a8f97a4:capeLime Yangjo +80228a058c1345daa5d0ea0fdcb4eb12:capeLime Made_This_Name +7776112e3ade489a9ac183ff5e1cae7a:capeLime spamenigma +a865907c6b8347b2a08835688169dc6a:capeBlue EzerArch +e1d0ee1c42024b8985d9540bac457463:capeOrange GiantWaffle +e7c3e2a33e1a477f9feda46fe674bea8:capeLightBlue Lastnecron +592e9044ec26496e90296a6dcc43d407:capeBlue SpoonTrauma +b31a143466cf4b1eb27640252e0ca974:capeOrange Devsio +a163bd86b3b847788045f11cc1b171bf:capeOrange Tyrantelf +f3a1ea327dd04d0b9759203a4adff99c:capeBlue Cellenseres +47257425c09d44d9846edb042571dbec:capeOrange SgtAce +743392cc83bc49f2bd3eac04ccf69aa9:capeRainbow Roosterteeth546 +db9eea4b99e0413297aa5be75010b0ad:capeOrange SundayxFunday +42232dec4ffd458dbee45791c822bd83:capeLime THEproWINN +766cebb7c5684099870976aa5f069538:capeLime Puggy04 +cdec6b441de145f8a7d450ff27b48a62:capeRainbow scriptoffate14 +cd6eb3ef44c14030812fab39ce53febe:capeRainbow Ohrm +ade5c7958eea4880b5c305eb898dcc99:capeRainbow SirFuzzhead +291f9006916948588960f5f6d06b6e47:capeRed alexljn5 +e7a8ff43db5a48f190c2bdd039bea7ef:capeRainbow Tatertot2222 +5725dfbd769d4df8981633346b788f36:capeRainbow atomicpichu +c9ba14cd7a8f41cf9e6b13cca78563b7:capeMagenta chattanooga +aca4ca40b5e74d998d24385acaee46f8:capeOrange so2ro +2054059c45d34375b51e60d59303d6e1:capeBlue Sir_Killz +60fbe691d5fd4007b0e85bfe54fbac7b:capeRainbow ForbiddeFan12 +d5d826c123904ceb8b55a160345b91e3:capeRainbow takos +c02818a726634132a0eeabc88616d415:capeLime GradeAWizard +8f1c823c9a3b401da0a2f77829cdba33:capeBlue kelvinxj +82419cb6c25b403f8b1fc503340fff15:capeCyan BCQX +055d629e96104dddbad01944ab5f7d29:capeRainbow Shamrocker101 +08ca7900afa8474db3bc1147ed61942e:capeLightGray Truman04 +ea62f0017661447399c6c5224b5180c9:capeRainbow Krystal_Disc +4f6de754f9ef4462bc756b55094b4f6e:capeLime eggsandbaon +2f6980ebfac448c79021e452fda174f6:capeRainbow Germaniac +bdfd2c1c28964bf4b22e684ac1ed9118:capeCyan ALterRy +ff42d35e94b44933bcb2d482d277f83f:capeCyan nanatorium +cccbf098d8204d119fa9c85a0f92fee0:capeOrange Phlonk +c7b62bb08a7a41f8a9d9812c89ee9c99:capeRainbow AquaBarnes +459f310e70224bffba46cfb8f28c9b01:capeLime CmdrPineapple +9a4668a923d34fa28054820c305bd308:capeDarkGray lancewalker +8ef62b5cd49a4dd3a59a1bfbb3d3d380:capeYellow 1_c +3101ea80b1904de4b556e4b46dde541c:capeDarkGray MoonRaven +21f531d2d0dd4359a0b4ba5d036a0ce7:capeLime Survarium +ba7e73d2cbf54d63858f2d60ae9eaa6b:capeRainbow Daeon +0e585f22f60647e2a2b56ca7196cfa74:capeLightGray dragonguide +9ca6ab76cdf34b13a3f92d36d337567a:capeRainbow MrRobin1512 +a0c708a9b5fb4b8299036fc4437c34b9:capeOrange IndianGooN +6bcc4b6a354344cebe6e4de701ba45d1:capeLightBlue Mysticslay +f5f0b2ce0c094ced9c147156a6a205b5:capeYellow BeeCannon +fc9b324e8d0d4c5d8fd6d11d5d042e61:capeRainbow KrazyMonkey +76ae9784cec6448cb3521eed1abf16f9:capeLightBlue Knightblock +1630c57a471e43a6805240d4a3cbbb55:capeRainbow Shadow_Beats +98313813c3f4494fbb4d68f342633a83:capeYellow Strachey +57d64951c09c4f498875d404841efac9:capeLime JacobiCarter +c0e6fa8862d24556902ef49823b96dfe:capeBrown afoolishmoon +ed4bf20f800b4f32b79718ddb1b24d7b:capeRainbow LokeYourLord +c4c022edb98a4337832a5ea8417aea4e:capeRainbow GetVape +fe481dee2e6d4c289fb742fd3db796e2:capeLime ma10as234 +0a429b969fb04d9fb34d032ebeb07c9c:capeRainbow ARedHel66 +c53ed454efba4dcfa307ba9eb26c58d3:capeLightBlue PrezGman +0de2e5f8917049b6999c5f1fca7d0ad4:capePurple creeperchick15 +e4be20006bfb4003b4e5f6dc4f153471:capeBlue sonic5223 +34314a92dc5c43a7afa848f101699203:capeRainbow Master_Apple +6a419733b55046d3a21c46656b801849:capePurple urix123 +f71b1f8b46574347a74b0d1b0b25659f:capeLime monkeypants_271 +c178592112bb4a71b082b422153f267b:capeLightGray Nomad043 +1dafe96cb8a34cf6be51367468409943:capePurple Malstrim +504e79e97f4640688611f18075df5c4e:capeCyan WhiskeyOutlaw +09d4c32761504341b145e3048fb13d04:capeRainbow Akahito666 +d41727d58ec947f7a8deeabcb2577f9f:capeOrange Timsuper2 +6f71c0114d914942904dc9b63326df4c:capeLightGray Sonic_Blender +fab0af0f6890484594745b0c0205d1a6:capeRainbow xX_CreeperMr_Xx +7430428645f54fe8b5aca82bff3f1400:capePurple Santiv +36ab85cc86da42a99172956dfc80edec:capeRainbow SebaSphere diff --git a/capes.txt b/capes.txt index bc9ec14a06..d501a38369 100644 --- a/capes.txt +++ b/capes.txt @@ -103,3 +103,4 @@ Timsuper2:capeOrange Sonic_Blender:capeLightGray xX_CreeperMr_Xx:capeRainbow Santiv:capePurple +SebaSphere:capeRainbow diff --git a/dependencies/main/java/api/player/client/ClientPlayerAPI.java b/dependencies/main/java/api/player/client/ClientPlayerAPI.java deleted file mode 100644 index c17c3bcf2f..0000000000 --- a/dependencies/main/java/api/player/client/ClientPlayerAPI.java +++ /dev/null @@ -1,6702 +0,0 @@ -// ================================================================== -// 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, allBaseBeforeDisplayGuiSuperiors, baseSorting.getBeforeDisplayGuiSuperiors()); - addSorting(id, allBaseBeforeDisplayGuiInferiors, baseSorting.getBeforeDisplayGuiInferiors()); - addSorting(id, allBaseOverrideDisplayGuiSuperiors, baseSorting.getOverrideDisplayGuiSuperiors()); - addSorting(id, allBaseOverrideDisplayGuiInferiors, baseSorting.getOverrideDisplayGuiInferiors()); - addSorting(id, allBaseAfterDisplayGuiSuperiors, baseSorting.getAfterDisplayGuiSuperiors()); - addSorting(id, allBaseAfterDisplayGuiInferiors, baseSorting.getAfterDisplayGuiInferiors()); - - addSorting(id, allBaseBeforeDisplayGUIChestSuperiors, baseSorting.getBeforeDisplayGUIChestSuperiors()); - addSorting(id, allBaseBeforeDisplayGUIChestInferiors, baseSorting.getBeforeDisplayGUIChestInferiors()); - addSorting(id, allBaseOverrideDisplayGUIChestSuperiors, baseSorting.getOverrideDisplayGUIChestSuperiors()); - addSorting(id, allBaseOverrideDisplayGUIChestInferiors, baseSorting.getOverrideDisplayGUIChestInferiors()); - addSorting(id, allBaseAfterDisplayGUIChestSuperiors, baseSorting.getAfterDisplayGUIChestSuperiors()); - addSorting(id, allBaseAfterDisplayGUIChestInferiors, baseSorting.getAfterDisplayGUIChestInferiors()); - - addSorting(id, allBaseBeforeDropItemSuperiors, baseSorting.getBeforeDropItemSuperiors()); - addSorting(id, allBaseBeforeDropItemInferiors, baseSorting.getBeforeDropItemInferiors()); - addSorting(id, allBaseOverrideDropItemSuperiors, baseSorting.getOverrideDropItemSuperiors()); - addSorting(id, allBaseOverrideDropItemInferiors, baseSorting.getOverrideDropItemInferiors()); - addSorting(id, allBaseAfterDropItemSuperiors, baseSorting.getAfterDropItemSuperiors()); - addSorting(id, allBaseAfterDropItemInferiors, baseSorting.getAfterDropItemInferiors()); - - addSorting(id, allBaseBeforeDropOneItemSuperiors, baseSorting.getBeforeDropOneItemSuperiors()); - addSorting(id, allBaseBeforeDropOneItemInferiors, baseSorting.getBeforeDropOneItemInferiors()); - addSorting(id, allBaseOverrideDropOneItemSuperiors, baseSorting.getOverrideDropOneItemSuperiors()); - addSorting(id, allBaseOverrideDropOneItemInferiors, baseSorting.getOverrideDropOneItemInferiors()); - addSorting(id, allBaseAfterDropOneItemSuperiors, baseSorting.getAfterDropOneItemSuperiors()); - addSorting(id, allBaseAfterDropOneItemInferiors, baseSorting.getAfterDropOneItemInferiors()); - - addSorting(id, allBaseBeforeDropPlayerItemWithRandomChoiceSuperiors, baseSorting.getBeforeDropPlayerItemWithRandomChoiceSuperiors()); - addSorting(id, allBaseBeforeDropPlayerItemWithRandomChoiceInferiors, baseSorting.getBeforeDropPlayerItemWithRandomChoiceInferiors()); - addSorting(id, allBaseOverrideDropPlayerItemWithRandomChoiceSuperiors, baseSorting.getOverrideDropPlayerItemWithRandomChoiceSuperiors()); - addSorting(id, allBaseOverrideDropPlayerItemWithRandomChoiceInferiors, baseSorting.getOverrideDropPlayerItemWithRandomChoiceInferiors()); - addSorting(id, allBaseAfterDropPlayerItemWithRandomChoiceSuperiors, baseSorting.getAfterDropPlayerItemWithRandomChoiceSuperiors()); - addSorting(id, allBaseAfterDropPlayerItemWithRandomChoiceInferiors, baseSorting.getAfterDropPlayerItemWithRandomChoiceInferiors()); - - addSorting(id, allBaseBeforeFallSuperiors, baseSorting.getBeforeFallSuperiors()); - addSorting(id, allBaseBeforeFallInferiors, baseSorting.getBeforeFallInferiors()); - addSorting(id, allBaseOverrideFallSuperiors, baseSorting.getOverrideFallSuperiors()); - addSorting(id, allBaseOverrideFallInferiors, baseSorting.getOverrideFallInferiors()); - addSorting(id, allBaseAfterFallSuperiors, baseSorting.getAfterFallSuperiors()); - addSorting(id, allBaseAfterFallInferiors, baseSorting.getAfterFallInferiors()); - - addSorting(id, allBaseBeforeGetAIMoveSpeedSuperiors, baseSorting.getBeforeGetAIMoveSpeedSuperiors()); - addSorting(id, allBaseBeforeGetAIMoveSpeedInferiors, baseSorting.getBeforeGetAIMoveSpeedInferiors()); - addSorting(id, allBaseOverrideGetAIMoveSpeedSuperiors, baseSorting.getOverrideGetAIMoveSpeedSuperiors()); - addSorting(id, allBaseOverrideGetAIMoveSpeedInferiors, baseSorting.getOverrideGetAIMoveSpeedInferiors()); - addSorting(id, allBaseAfterGetAIMoveSpeedSuperiors, baseSorting.getAfterGetAIMoveSpeedSuperiors()); - addSorting(id, allBaseAfterGetAIMoveSpeedInferiors, baseSorting.getAfterGetAIMoveSpeedInferiors()); - - addSorting(id, allBaseBeforeGetBedOrientationInDegreesSuperiors, baseSorting.getBeforeGetBedOrientationInDegreesSuperiors()); - addSorting(id, allBaseBeforeGetBedOrientationInDegreesInferiors, baseSorting.getBeforeGetBedOrientationInDegreesInferiors()); - addSorting(id, allBaseOverrideGetBedOrientationInDegreesSuperiors, baseSorting.getOverrideGetBedOrientationInDegreesSuperiors()); - addSorting(id, allBaseOverrideGetBedOrientationInDegreesInferiors, baseSorting.getOverrideGetBedOrientationInDegreesInferiors()); - addSorting(id, allBaseAfterGetBedOrientationInDegreesSuperiors, baseSorting.getAfterGetBedOrientationInDegreesSuperiors()); - addSorting(id, allBaseAfterGetBedOrientationInDegreesInferiors, baseSorting.getAfterGetBedOrientationInDegreesInferiors()); - - addSorting(id, allBaseBeforeGetBrightnessSuperiors, baseSorting.getBeforeGetBrightnessSuperiors()); - addSorting(id, allBaseBeforeGetBrightnessInferiors, baseSorting.getBeforeGetBrightnessInferiors()); - addSorting(id, allBaseOverrideGetBrightnessSuperiors, baseSorting.getOverrideGetBrightnessSuperiors()); - addSorting(id, allBaseOverrideGetBrightnessInferiors, baseSorting.getOverrideGetBrightnessInferiors()); - addSorting(id, allBaseAfterGetBrightnessSuperiors, baseSorting.getAfterGetBrightnessSuperiors()); - addSorting(id, allBaseAfterGetBrightnessInferiors, baseSorting.getAfterGetBrightnessInferiors()); - - addSorting(id, allBaseBeforeGetBrightnessForRenderSuperiors, baseSorting.getBeforeGetBrightnessForRenderSuperiors()); - addSorting(id, allBaseBeforeGetBrightnessForRenderInferiors, baseSorting.getBeforeGetBrightnessForRenderInferiors()); - addSorting(id, allBaseOverrideGetBrightnessForRenderSuperiors, baseSorting.getOverrideGetBrightnessForRenderSuperiors()); - addSorting(id, allBaseOverrideGetBrightnessForRenderInferiors, baseSorting.getOverrideGetBrightnessForRenderInferiors()); - addSorting(id, allBaseAfterGetBrightnessForRenderSuperiors, baseSorting.getAfterGetBrightnessForRenderSuperiors()); - addSorting(id, allBaseAfterGetBrightnessForRenderInferiors, baseSorting.getAfterGetBrightnessForRenderInferiors()); - - addSorting(id, allBaseBeforeGetBreakSpeedSuperiors, baseSorting.getBeforeGetBreakSpeedSuperiors()); - addSorting(id, allBaseBeforeGetBreakSpeedInferiors, baseSorting.getBeforeGetBreakSpeedInferiors()); - addSorting(id, allBaseOverrideGetBreakSpeedSuperiors, baseSorting.getOverrideGetBreakSpeedSuperiors()); - addSorting(id, allBaseOverrideGetBreakSpeedInferiors, baseSorting.getOverrideGetBreakSpeedInferiors()); - addSorting(id, allBaseAfterGetBreakSpeedSuperiors, baseSorting.getAfterGetBreakSpeedSuperiors()); - addSorting(id, allBaseAfterGetBreakSpeedInferiors, baseSorting.getAfterGetBreakSpeedInferiors()); - - addSorting(id, allBaseBeforeGetDistanceSqSuperiors, baseSorting.getBeforeGetDistanceSqSuperiors()); - addSorting(id, allBaseBeforeGetDistanceSqInferiors, baseSorting.getBeforeGetDistanceSqInferiors()); - addSorting(id, allBaseOverrideGetDistanceSqSuperiors, baseSorting.getOverrideGetDistanceSqSuperiors()); - addSorting(id, allBaseOverrideGetDistanceSqInferiors, baseSorting.getOverrideGetDistanceSqInferiors()); - addSorting(id, allBaseAfterGetDistanceSqSuperiors, baseSorting.getAfterGetDistanceSqSuperiors()); - addSorting(id, allBaseAfterGetDistanceSqInferiors, baseSorting.getAfterGetDistanceSqInferiors()); - - addSorting(id, allBaseBeforeGetDistanceSqToEntitySuperiors, baseSorting.getBeforeGetDistanceSqToEntitySuperiors()); - addSorting(id, allBaseBeforeGetDistanceSqToEntityInferiors, baseSorting.getBeforeGetDistanceSqToEntityInferiors()); - addSorting(id, allBaseOverrideGetDistanceSqToEntitySuperiors, baseSorting.getOverrideGetDistanceSqToEntitySuperiors()); - addSorting(id, allBaseOverrideGetDistanceSqToEntityInferiors, baseSorting.getOverrideGetDistanceSqToEntityInferiors()); - addSorting(id, allBaseAfterGetDistanceSqToEntitySuperiors, baseSorting.getAfterGetDistanceSqToEntitySuperiors()); - addSorting(id, allBaseAfterGetDistanceSqToEntityInferiors, baseSorting.getAfterGetDistanceSqToEntityInferiors()); - - addSorting(id, allBaseBeforeGetFovModifierSuperiors, baseSorting.getBeforeGetFovModifierSuperiors()); - addSorting(id, allBaseBeforeGetFovModifierInferiors, baseSorting.getBeforeGetFovModifierInferiors()); - addSorting(id, allBaseOverrideGetFovModifierSuperiors, baseSorting.getOverrideGetFovModifierSuperiors()); - addSorting(id, allBaseOverrideGetFovModifierInferiors, baseSorting.getOverrideGetFovModifierInferiors()); - addSorting(id, allBaseAfterGetFovModifierSuperiors, baseSorting.getAfterGetFovModifierSuperiors()); - addSorting(id, allBaseAfterGetFovModifierInferiors, baseSorting.getAfterGetFovModifierInferiors()); - - addSorting(id, allBaseBeforeGetHurtSoundSuperiors, baseSorting.getBeforeGetHurtSoundSuperiors()); - addSorting(id, allBaseBeforeGetHurtSoundInferiors, baseSorting.getBeforeGetHurtSoundInferiors()); - addSorting(id, allBaseOverrideGetHurtSoundSuperiors, baseSorting.getOverrideGetHurtSoundSuperiors()); - addSorting(id, allBaseOverrideGetHurtSoundInferiors, baseSorting.getOverrideGetHurtSoundInferiors()); - addSorting(id, allBaseAfterGetHurtSoundSuperiors, baseSorting.getAfterGetHurtSoundSuperiors()); - addSorting(id, allBaseAfterGetHurtSoundInferiors, baseSorting.getAfterGetHurtSoundInferiors()); - - addSorting(id, allBaseBeforeGetNameSuperiors, baseSorting.getBeforeGetNameSuperiors()); - addSorting(id, allBaseBeforeGetNameInferiors, baseSorting.getBeforeGetNameInferiors()); - addSorting(id, allBaseOverrideGetNameSuperiors, baseSorting.getOverrideGetNameSuperiors()); - addSorting(id, allBaseOverrideGetNameInferiors, baseSorting.getOverrideGetNameInferiors()); - addSorting(id, allBaseAfterGetNameSuperiors, baseSorting.getAfterGetNameSuperiors()); - addSorting(id, allBaseAfterGetNameInferiors, baseSorting.getAfterGetNameInferiors()); - - addSorting(id, allBaseBeforeGetSleepTimerSuperiors, baseSorting.getBeforeGetSleepTimerSuperiors()); - addSorting(id, allBaseBeforeGetSleepTimerInferiors, baseSorting.getBeforeGetSleepTimerInferiors()); - addSorting(id, allBaseOverrideGetSleepTimerSuperiors, baseSorting.getOverrideGetSleepTimerSuperiors()); - addSorting(id, allBaseOverrideGetSleepTimerInferiors, baseSorting.getOverrideGetSleepTimerInferiors()); - addSorting(id, allBaseAfterGetSleepTimerSuperiors, baseSorting.getAfterGetSleepTimerSuperiors()); - addSorting(id, allBaseAfterGetSleepTimerInferiors, baseSorting.getAfterGetSleepTimerInferiors()); - - addSorting(id, allBaseBeforeHandleWaterMovementSuperiors, baseSorting.getBeforeHandleWaterMovementSuperiors()); - addSorting(id, allBaseBeforeHandleWaterMovementInferiors, baseSorting.getBeforeHandleWaterMovementInferiors()); - addSorting(id, allBaseOverrideHandleWaterMovementSuperiors, baseSorting.getOverrideHandleWaterMovementSuperiors()); - addSorting(id, allBaseOverrideHandleWaterMovementInferiors, baseSorting.getOverrideHandleWaterMovementInferiors()); - addSorting(id, allBaseAfterHandleWaterMovementSuperiors, baseSorting.getAfterHandleWaterMovementSuperiors()); - addSorting(id, allBaseAfterHandleWaterMovementInferiors, baseSorting.getAfterHandleWaterMovementInferiors()); - - addSorting(id, allBaseBeforeHealSuperiors, baseSorting.getBeforeHealSuperiors()); - addSorting(id, allBaseBeforeHealInferiors, baseSorting.getBeforeHealInferiors()); - addSorting(id, allBaseOverrideHealSuperiors, baseSorting.getOverrideHealSuperiors()); - addSorting(id, allBaseOverrideHealInferiors, baseSorting.getOverrideHealInferiors()); - addSorting(id, allBaseAfterHealSuperiors, baseSorting.getAfterHealSuperiors()); - addSorting(id, allBaseAfterHealInferiors, baseSorting.getAfterHealInferiors()); - - addSorting(id, allBaseBeforeIsEntityInsideOpaqueBlockSuperiors, baseSorting.getBeforeIsEntityInsideOpaqueBlockSuperiors()); - addSorting(id, allBaseBeforeIsEntityInsideOpaqueBlockInferiors, baseSorting.getBeforeIsEntityInsideOpaqueBlockInferiors()); - addSorting(id, allBaseOverrideIsEntityInsideOpaqueBlockSuperiors, baseSorting.getOverrideIsEntityInsideOpaqueBlockSuperiors()); - addSorting(id, allBaseOverrideIsEntityInsideOpaqueBlockInferiors, baseSorting.getOverrideIsEntityInsideOpaqueBlockInferiors()); - addSorting(id, allBaseAfterIsEntityInsideOpaqueBlockSuperiors, baseSorting.getAfterIsEntityInsideOpaqueBlockSuperiors()); - addSorting(id, allBaseAfterIsEntityInsideOpaqueBlockInferiors, baseSorting.getAfterIsEntityInsideOpaqueBlockInferiors()); - - addSorting(id, allBaseBeforeIsInWaterSuperiors, baseSorting.getBeforeIsInWaterSuperiors()); - addSorting(id, allBaseBeforeIsInWaterInferiors, baseSorting.getBeforeIsInWaterInferiors()); - addSorting(id, allBaseOverrideIsInWaterSuperiors, baseSorting.getOverrideIsInWaterSuperiors()); - addSorting(id, allBaseOverrideIsInWaterInferiors, baseSorting.getOverrideIsInWaterInferiors()); - addSorting(id, allBaseAfterIsInWaterSuperiors, baseSorting.getAfterIsInWaterSuperiors()); - addSorting(id, allBaseAfterIsInWaterInferiors, baseSorting.getAfterIsInWaterInferiors()); - - addSorting(id, allBaseBeforeIsInsideOfMaterialSuperiors, baseSorting.getBeforeIsInsideOfMaterialSuperiors()); - addSorting(id, allBaseBeforeIsInsideOfMaterialInferiors, baseSorting.getBeforeIsInsideOfMaterialInferiors()); - addSorting(id, allBaseOverrideIsInsideOfMaterialSuperiors, baseSorting.getOverrideIsInsideOfMaterialSuperiors()); - addSorting(id, allBaseOverrideIsInsideOfMaterialInferiors, baseSorting.getOverrideIsInsideOfMaterialInferiors()); - addSorting(id, allBaseAfterIsInsideOfMaterialSuperiors, baseSorting.getAfterIsInsideOfMaterialSuperiors()); - addSorting(id, allBaseAfterIsInsideOfMaterialInferiors, baseSorting.getAfterIsInsideOfMaterialInferiors()); - - addSorting(id, allBaseBeforeIsOnLadderSuperiors, baseSorting.getBeforeIsOnLadderSuperiors()); - addSorting(id, allBaseBeforeIsOnLadderInferiors, baseSorting.getBeforeIsOnLadderInferiors()); - addSorting(id, allBaseOverrideIsOnLadderSuperiors, baseSorting.getOverrideIsOnLadderSuperiors()); - addSorting(id, allBaseOverrideIsOnLadderInferiors, baseSorting.getOverrideIsOnLadderInferiors()); - addSorting(id, allBaseAfterIsOnLadderSuperiors, baseSorting.getAfterIsOnLadderSuperiors()); - addSorting(id, allBaseAfterIsOnLadderInferiors, baseSorting.getAfterIsOnLadderInferiors()); - - addSorting(id, allBaseBeforeIsPlayerSleepingSuperiors, baseSorting.getBeforeIsPlayerSleepingSuperiors()); - addSorting(id, allBaseBeforeIsPlayerSleepingInferiors, baseSorting.getBeforeIsPlayerSleepingInferiors()); - addSorting(id, allBaseOverrideIsPlayerSleepingSuperiors, baseSorting.getOverrideIsPlayerSleepingSuperiors()); - addSorting(id, allBaseOverrideIsPlayerSleepingInferiors, baseSorting.getOverrideIsPlayerSleepingInferiors()); - addSorting(id, allBaseAfterIsPlayerSleepingSuperiors, baseSorting.getAfterIsPlayerSleepingSuperiors()); - addSorting(id, allBaseAfterIsPlayerSleepingInferiors, baseSorting.getAfterIsPlayerSleepingInferiors()); - - addSorting(id, allBaseBeforeIsSneakingSuperiors, baseSorting.getBeforeIsSneakingSuperiors()); - addSorting(id, allBaseBeforeIsSneakingInferiors, baseSorting.getBeforeIsSneakingInferiors()); - addSorting(id, allBaseOverrideIsSneakingSuperiors, baseSorting.getOverrideIsSneakingSuperiors()); - addSorting(id, allBaseOverrideIsSneakingInferiors, baseSorting.getOverrideIsSneakingInferiors()); - addSorting(id, allBaseAfterIsSneakingSuperiors, baseSorting.getAfterIsSneakingSuperiors()); - addSorting(id, allBaseAfterIsSneakingInferiors, baseSorting.getAfterIsSneakingInferiors()); - - addSorting(id, allBaseBeforeIsSprintingSuperiors, baseSorting.getBeforeIsSprintingSuperiors()); - addSorting(id, allBaseBeforeIsSprintingInferiors, baseSorting.getBeforeIsSprintingInferiors()); - addSorting(id, allBaseOverrideIsSprintingSuperiors, baseSorting.getOverrideIsSprintingSuperiors()); - addSorting(id, allBaseOverrideIsSprintingInferiors, baseSorting.getOverrideIsSprintingInferiors()); - addSorting(id, allBaseAfterIsSprintingSuperiors, baseSorting.getAfterIsSprintingSuperiors()); - addSorting(id, allBaseAfterIsSprintingInferiors, baseSorting.getAfterIsSprintingInferiors()); - - addSorting(id, allBaseBeforeJumpSuperiors, baseSorting.getBeforeJumpSuperiors()); - addSorting(id, allBaseBeforeJumpInferiors, baseSorting.getBeforeJumpInferiors()); - addSorting(id, allBaseOverrideJumpSuperiors, baseSorting.getOverrideJumpSuperiors()); - addSorting(id, allBaseOverrideJumpInferiors, baseSorting.getOverrideJumpInferiors()); - addSorting(id, allBaseAfterJumpSuperiors, baseSorting.getAfterJumpSuperiors()); - addSorting(id, allBaseAfterJumpInferiors, baseSorting.getAfterJumpInferiors()); - - addSorting(id, allBaseBeforeKnockBackSuperiors, baseSorting.getBeforeKnockBackSuperiors()); - addSorting(id, allBaseBeforeKnockBackInferiors, baseSorting.getBeforeKnockBackInferiors()); - addSorting(id, allBaseOverrideKnockBackSuperiors, baseSorting.getOverrideKnockBackSuperiors()); - addSorting(id, allBaseOverrideKnockBackInferiors, baseSorting.getOverrideKnockBackInferiors()); - addSorting(id, allBaseAfterKnockBackSuperiors, baseSorting.getAfterKnockBackSuperiors()); - addSorting(id, allBaseAfterKnockBackInferiors, baseSorting.getAfterKnockBackInferiors()); - - addSorting(id, allBaseBeforeMoveEntitySuperiors, baseSorting.getBeforeMoveEntitySuperiors()); - addSorting(id, allBaseBeforeMoveEntityInferiors, baseSorting.getBeforeMoveEntityInferiors()); - addSorting(id, allBaseOverrideMoveEntitySuperiors, baseSorting.getOverrideMoveEntitySuperiors()); - addSorting(id, allBaseOverrideMoveEntityInferiors, baseSorting.getOverrideMoveEntityInferiors()); - addSorting(id, allBaseAfterMoveEntitySuperiors, baseSorting.getAfterMoveEntitySuperiors()); - addSorting(id, allBaseAfterMoveEntityInferiors, baseSorting.getAfterMoveEntityInferiors()); - - addSorting(id, allBaseBeforeMoveEntityWithHeadingSuperiors, baseSorting.getBeforeMoveEntityWithHeadingSuperiors()); - addSorting(id, allBaseBeforeMoveEntityWithHeadingInferiors, baseSorting.getBeforeMoveEntityWithHeadingInferiors()); - addSorting(id, allBaseOverrideMoveEntityWithHeadingSuperiors, baseSorting.getOverrideMoveEntityWithHeadingSuperiors()); - addSorting(id, allBaseOverrideMoveEntityWithHeadingInferiors, baseSorting.getOverrideMoveEntityWithHeadingInferiors()); - addSorting(id, allBaseAfterMoveEntityWithHeadingSuperiors, baseSorting.getAfterMoveEntityWithHeadingSuperiors()); - addSorting(id, allBaseAfterMoveEntityWithHeadingInferiors, baseSorting.getAfterMoveEntityWithHeadingInferiors()); - - addSorting(id, allBaseBeforeMoveFlyingSuperiors, baseSorting.getBeforeMoveFlyingSuperiors()); - addSorting(id, allBaseBeforeMoveFlyingInferiors, baseSorting.getBeforeMoveFlyingInferiors()); - addSorting(id, allBaseOverrideMoveFlyingSuperiors, baseSorting.getOverrideMoveFlyingSuperiors()); - addSorting(id, allBaseOverrideMoveFlyingInferiors, baseSorting.getOverrideMoveFlyingInferiors()); - addSorting(id, allBaseAfterMoveFlyingSuperiors, baseSorting.getAfterMoveFlyingSuperiors()); - addSorting(id, allBaseAfterMoveFlyingInferiors, baseSorting.getAfterMoveFlyingInferiors()); - - addSorting(id, allBaseBeforeOnDeathSuperiors, baseSorting.getBeforeOnDeathSuperiors()); - addSorting(id, allBaseBeforeOnDeathInferiors, baseSorting.getBeforeOnDeathInferiors()); - addSorting(id, allBaseOverrideOnDeathSuperiors, baseSorting.getOverrideOnDeathSuperiors()); - addSorting(id, allBaseOverrideOnDeathInferiors, baseSorting.getOverrideOnDeathInferiors()); - addSorting(id, allBaseAfterOnDeathSuperiors, baseSorting.getAfterOnDeathSuperiors()); - addSorting(id, allBaseAfterOnDeathInferiors, baseSorting.getAfterOnDeathInferiors()); - - addSorting(id, allBaseBeforeOnLivingUpdateSuperiors, baseSorting.getBeforeOnLivingUpdateSuperiors()); - addSorting(id, allBaseBeforeOnLivingUpdateInferiors, baseSorting.getBeforeOnLivingUpdateInferiors()); - addSorting(id, allBaseOverrideOnLivingUpdateSuperiors, baseSorting.getOverrideOnLivingUpdateSuperiors()); - addSorting(id, allBaseOverrideOnLivingUpdateInferiors, baseSorting.getOverrideOnLivingUpdateInferiors()); - addSorting(id, allBaseAfterOnLivingUpdateSuperiors, baseSorting.getAfterOnLivingUpdateSuperiors()); - addSorting(id, allBaseAfterOnLivingUpdateInferiors, baseSorting.getAfterOnLivingUpdateInferiors()); - - addSorting(id, allBaseBeforeOnKillEntitySuperiors, baseSorting.getBeforeOnKillEntitySuperiors()); - addSorting(id, allBaseBeforeOnKillEntityInferiors, baseSorting.getBeforeOnKillEntityInferiors()); - addSorting(id, allBaseOverrideOnKillEntitySuperiors, baseSorting.getOverrideOnKillEntitySuperiors()); - addSorting(id, allBaseOverrideOnKillEntityInferiors, baseSorting.getOverrideOnKillEntityInferiors()); - addSorting(id, allBaseAfterOnKillEntitySuperiors, baseSorting.getAfterOnKillEntitySuperiors()); - addSorting(id, allBaseAfterOnKillEntityInferiors, baseSorting.getAfterOnKillEntityInferiors()); - - addSorting(id, allBaseBeforeOnStruckByLightningSuperiors, baseSorting.getBeforeOnStruckByLightningSuperiors()); - addSorting(id, allBaseBeforeOnStruckByLightningInferiors, baseSorting.getBeforeOnStruckByLightningInferiors()); - addSorting(id, allBaseOverrideOnStruckByLightningSuperiors, baseSorting.getOverrideOnStruckByLightningSuperiors()); - addSorting(id, allBaseOverrideOnStruckByLightningInferiors, baseSorting.getOverrideOnStruckByLightningInferiors()); - addSorting(id, allBaseAfterOnStruckByLightningSuperiors, baseSorting.getAfterOnStruckByLightningSuperiors()); - addSorting(id, allBaseAfterOnStruckByLightningInferiors, baseSorting.getAfterOnStruckByLightningInferiors()); - - addSorting(id, allBaseBeforeOnUpdateSuperiors, baseSorting.getBeforeOnUpdateSuperiors()); - addSorting(id, allBaseBeforeOnUpdateInferiors, baseSorting.getBeforeOnUpdateInferiors()); - addSorting(id, allBaseOverrideOnUpdateSuperiors, baseSorting.getOverrideOnUpdateSuperiors()); - addSorting(id, allBaseOverrideOnUpdateInferiors, baseSorting.getOverrideOnUpdateInferiors()); - addSorting(id, allBaseAfterOnUpdateSuperiors, baseSorting.getAfterOnUpdateSuperiors()); - addSorting(id, allBaseAfterOnUpdateInferiors, baseSorting.getAfterOnUpdateInferiors()); - - addSorting(id, allBaseBeforePlayStepSoundSuperiors, baseSorting.getBeforePlayStepSoundSuperiors()); - addSorting(id, allBaseBeforePlayStepSoundInferiors, baseSorting.getBeforePlayStepSoundInferiors()); - addSorting(id, allBaseOverridePlayStepSoundSuperiors, baseSorting.getOverridePlayStepSoundSuperiors()); - addSorting(id, allBaseOverridePlayStepSoundInferiors, baseSorting.getOverridePlayStepSoundInferiors()); - addSorting(id, allBaseAfterPlayStepSoundSuperiors, baseSorting.getAfterPlayStepSoundSuperiors()); - addSorting(id, allBaseAfterPlayStepSoundInferiors, baseSorting.getAfterPlayStepSoundInferiors()); - - addSorting(id, allBaseBeforePushOutOfBlocksSuperiors, baseSorting.getBeforePushOutOfBlocksSuperiors()); - addSorting(id, allBaseBeforePushOutOfBlocksInferiors, baseSorting.getBeforePushOutOfBlocksInferiors()); - addSorting(id, allBaseOverridePushOutOfBlocksSuperiors, baseSorting.getOverridePushOutOfBlocksSuperiors()); - addSorting(id, allBaseOverridePushOutOfBlocksInferiors, baseSorting.getOverridePushOutOfBlocksInferiors()); - addSorting(id, allBaseAfterPushOutOfBlocksSuperiors, baseSorting.getAfterPushOutOfBlocksSuperiors()); - addSorting(id, allBaseAfterPushOutOfBlocksInferiors, baseSorting.getAfterPushOutOfBlocksInferiors()); - - addSorting(id, allBaseBeforeRayTraceSuperiors, baseSorting.getBeforeRayTraceSuperiors()); - addSorting(id, allBaseBeforeRayTraceInferiors, baseSorting.getBeforeRayTraceInferiors()); - addSorting(id, allBaseOverrideRayTraceSuperiors, baseSorting.getOverrideRayTraceSuperiors()); - addSorting(id, allBaseOverrideRayTraceInferiors, baseSorting.getOverrideRayTraceInferiors()); - addSorting(id, allBaseAfterRayTraceSuperiors, baseSorting.getAfterRayTraceSuperiors()); - addSorting(id, allBaseAfterRayTraceInferiors, baseSorting.getAfterRayTraceInferiors()); - - addSorting(id, allBaseBeforeReadEntityFromNBTSuperiors, baseSorting.getBeforeReadEntityFromNBTSuperiors()); - addSorting(id, allBaseBeforeReadEntityFromNBTInferiors, baseSorting.getBeforeReadEntityFromNBTInferiors()); - addSorting(id, allBaseOverrideReadEntityFromNBTSuperiors, baseSorting.getOverrideReadEntityFromNBTSuperiors()); - addSorting(id, allBaseOverrideReadEntityFromNBTInferiors, baseSorting.getOverrideReadEntityFromNBTInferiors()); - addSorting(id, allBaseAfterReadEntityFromNBTSuperiors, baseSorting.getAfterReadEntityFromNBTSuperiors()); - addSorting(id, allBaseAfterReadEntityFromNBTInferiors, baseSorting.getAfterReadEntityFromNBTInferiors()); - - addSorting(id, allBaseBeforeRespawnPlayerSuperiors, baseSorting.getBeforeRespawnPlayerSuperiors()); - addSorting(id, allBaseBeforeRespawnPlayerInferiors, baseSorting.getBeforeRespawnPlayerInferiors()); - addSorting(id, allBaseOverrideRespawnPlayerSuperiors, baseSorting.getOverrideRespawnPlayerSuperiors()); - addSorting(id, allBaseOverrideRespawnPlayerInferiors, baseSorting.getOverrideRespawnPlayerInferiors()); - addSorting(id, allBaseAfterRespawnPlayerSuperiors, baseSorting.getAfterRespawnPlayerSuperiors()); - addSorting(id, allBaseAfterRespawnPlayerInferiors, baseSorting.getAfterRespawnPlayerInferiors()); - - addSorting(id, allBaseBeforeSetDeadSuperiors, baseSorting.getBeforeSetDeadSuperiors()); - addSorting(id, allBaseBeforeSetDeadInferiors, baseSorting.getBeforeSetDeadInferiors()); - addSorting(id, allBaseOverrideSetDeadSuperiors, baseSorting.getOverrideSetDeadSuperiors()); - addSorting(id, allBaseOverrideSetDeadInferiors, baseSorting.getOverrideSetDeadInferiors()); - addSorting(id, allBaseAfterSetDeadSuperiors, baseSorting.getAfterSetDeadSuperiors()); - addSorting(id, allBaseAfterSetDeadInferiors, baseSorting.getAfterSetDeadInferiors()); - - addSorting(id, allBaseBeforeSetPlayerSPHealthSuperiors, baseSorting.getBeforeSetPlayerSPHealthSuperiors()); - addSorting(id, allBaseBeforeSetPlayerSPHealthInferiors, baseSorting.getBeforeSetPlayerSPHealthInferiors()); - addSorting(id, allBaseOverrideSetPlayerSPHealthSuperiors, baseSorting.getOverrideSetPlayerSPHealthSuperiors()); - addSorting(id, allBaseOverrideSetPlayerSPHealthInferiors, baseSorting.getOverrideSetPlayerSPHealthInferiors()); - addSorting(id, allBaseAfterSetPlayerSPHealthSuperiors, baseSorting.getAfterSetPlayerSPHealthSuperiors()); - addSorting(id, allBaseAfterSetPlayerSPHealthInferiors, baseSorting.getAfterSetPlayerSPHealthInferiors()); - - addSorting(id, allBaseBeforeSetPositionAndRotationSuperiors, baseSorting.getBeforeSetPositionAndRotationSuperiors()); - addSorting(id, allBaseBeforeSetPositionAndRotationInferiors, baseSorting.getBeforeSetPositionAndRotationInferiors()); - addSorting(id, allBaseOverrideSetPositionAndRotationSuperiors, baseSorting.getOverrideSetPositionAndRotationSuperiors()); - addSorting(id, allBaseOverrideSetPositionAndRotationInferiors, baseSorting.getOverrideSetPositionAndRotationInferiors()); - addSorting(id, allBaseAfterSetPositionAndRotationSuperiors, baseSorting.getAfterSetPositionAndRotationSuperiors()); - addSorting(id, allBaseAfterSetPositionAndRotationInferiors, baseSorting.getAfterSetPositionAndRotationInferiors()); - - addSorting(id, allBaseBeforeSetSneakingSuperiors, baseSorting.getBeforeSetSneakingSuperiors()); - addSorting(id, allBaseBeforeSetSneakingInferiors, baseSorting.getBeforeSetSneakingInferiors()); - addSorting(id, allBaseOverrideSetSneakingSuperiors, baseSorting.getOverrideSetSneakingSuperiors()); - addSorting(id, allBaseOverrideSetSneakingInferiors, baseSorting.getOverrideSetSneakingInferiors()); - addSorting(id, allBaseAfterSetSneakingSuperiors, baseSorting.getAfterSetSneakingSuperiors()); - addSorting(id, allBaseAfterSetSneakingInferiors, baseSorting.getAfterSetSneakingInferiors()); - - addSorting(id, allBaseBeforeSetSprintingSuperiors, baseSorting.getBeforeSetSprintingSuperiors()); - addSorting(id, allBaseBeforeSetSprintingInferiors, baseSorting.getBeforeSetSprintingInferiors()); - addSorting(id, allBaseOverrideSetSprintingSuperiors, baseSorting.getOverrideSetSprintingSuperiors()); - addSorting(id, allBaseOverrideSetSprintingInferiors, baseSorting.getOverrideSetSprintingInferiors()); - addSorting(id, allBaseAfterSetSprintingSuperiors, baseSorting.getAfterSetSprintingSuperiors()); - addSorting(id, allBaseAfterSetSprintingInferiors, baseSorting.getAfterSetSprintingInferiors()); - - addSorting(id, allBaseBeforeTrySleepSuperiors, baseSorting.getBeforeTrySleepSuperiors()); - addSorting(id, allBaseBeforeTrySleepInferiors, baseSorting.getBeforeTrySleepInferiors()); - addSorting(id, allBaseOverrideTrySleepSuperiors, baseSorting.getOverrideTrySleepSuperiors()); - addSorting(id, allBaseOverrideTrySleepInferiors, baseSorting.getOverrideTrySleepInferiors()); - addSorting(id, allBaseAfterTrySleepSuperiors, baseSorting.getAfterTrySleepSuperiors()); - addSorting(id, allBaseAfterTrySleepInferiors, baseSorting.getAfterTrySleepInferiors()); - - addSorting(id, allBaseBeforeSwingItemSuperiors, baseSorting.getBeforeSwingItemSuperiors()); - addSorting(id, allBaseBeforeSwingItemInferiors, baseSorting.getBeforeSwingItemInferiors()); - addSorting(id, allBaseOverrideSwingItemSuperiors, baseSorting.getOverrideSwingItemSuperiors()); - addSorting(id, allBaseOverrideSwingItemInferiors, baseSorting.getOverrideSwingItemInferiors()); - addSorting(id, allBaseAfterSwingItemSuperiors, baseSorting.getAfterSwingItemSuperiors()); - addSorting(id, allBaseAfterSwingItemInferiors, baseSorting.getAfterSwingItemInferiors()); - - addSorting(id, allBaseBeforeUpdateEntityActionStateSuperiors, baseSorting.getBeforeUpdateEntityActionStateSuperiors()); - addSorting(id, allBaseBeforeUpdateEntityActionStateInferiors, baseSorting.getBeforeUpdateEntityActionStateInferiors()); - addSorting(id, allBaseOverrideUpdateEntityActionStateSuperiors, baseSorting.getOverrideUpdateEntityActionStateSuperiors()); - addSorting(id, allBaseOverrideUpdateEntityActionStateInferiors, baseSorting.getOverrideUpdateEntityActionStateInferiors()); - addSorting(id, allBaseAfterUpdateEntityActionStateSuperiors, baseSorting.getAfterUpdateEntityActionStateSuperiors()); - addSorting(id, allBaseAfterUpdateEntityActionStateInferiors, baseSorting.getAfterUpdateEntityActionStateInferiors()); - - addSorting(id, allBaseBeforeUpdateRiddenSuperiors, baseSorting.getBeforeUpdateRiddenSuperiors()); - addSorting(id, allBaseBeforeUpdateRiddenInferiors, baseSorting.getBeforeUpdateRiddenInferiors()); - addSorting(id, allBaseOverrideUpdateRiddenSuperiors, baseSorting.getOverrideUpdateRiddenSuperiors()); - addSorting(id, allBaseOverrideUpdateRiddenInferiors, baseSorting.getOverrideUpdateRiddenInferiors()); - addSorting(id, allBaseAfterUpdateRiddenSuperiors, baseSorting.getAfterUpdateRiddenSuperiors()); - addSorting(id, allBaseAfterUpdateRiddenInferiors, baseSorting.getAfterUpdateRiddenInferiors()); - - addSorting(id, allBaseBeforeWakeUpPlayerSuperiors, baseSorting.getBeforeWakeUpPlayerSuperiors()); - addSorting(id, allBaseBeforeWakeUpPlayerInferiors, baseSorting.getBeforeWakeUpPlayerInferiors()); - addSorting(id, allBaseOverrideWakeUpPlayerSuperiors, baseSorting.getOverrideWakeUpPlayerSuperiors()); - addSorting(id, allBaseOverrideWakeUpPlayerInferiors, baseSorting.getOverrideWakeUpPlayerInferiors()); - addSorting(id, allBaseAfterWakeUpPlayerSuperiors, baseSorting.getAfterWakeUpPlayerSuperiors()); - addSorting(id, allBaseAfterWakeUpPlayerInferiors, baseSorting.getAfterWakeUpPlayerInferiors()); - - addSorting(id, allBaseBeforeWriteEntityToNBTSuperiors, baseSorting.getBeforeWriteEntityToNBTSuperiors()); - addSorting(id, allBaseBeforeWriteEntityToNBTInferiors, baseSorting.getBeforeWriteEntityToNBTInferiors()); - addSorting(id, allBaseOverrideWriteEntityToNBTSuperiors, baseSorting.getOverrideWriteEntityToNBTSuperiors()); - addSorting(id, allBaseOverrideWriteEntityToNBTInferiors, baseSorting.getOverrideWriteEntityToNBTInferiors()); - addSorting(id, allBaseAfterWriteEntityToNBTSuperiors, baseSorting.getAfterWriteEntityToNBTSuperiors()); - addSorting(id, allBaseAfterWriteEntityToNBTInferiors, baseSorting.getAfterWriteEntityToNBTInferiors()); - - } - - addMethod(id, baseClass, beforeLocalConstructingHookTypes, "beforeLocalConstructing", net.minecraft.client.Minecraft.class, net.minecraft.world.World.class, net.minecraft.client.network.NetHandlerPlayClient.class, net.minecraft.stats.StatFileWriter.class); - addMethod(id, baseClass, afterLocalConstructingHookTypes, "afterLocalConstructing", net.minecraft.client.Minecraft.class, net.minecraft.world.World.class, net.minecraft.client.network.NetHandlerPlayClient.class, net.minecraft.stats.StatFileWriter.class); - - - addMethod(id, baseClass, beforeAddExhaustionHookTypes, "beforeAddExhaustion", float.class); - addMethod(id, baseClass, overrideAddExhaustionHookTypes, "addExhaustion", float.class); - addMethod(id, baseClass, afterAddExhaustionHookTypes, "afterAddExhaustion", float.class); - - addMethod(id, baseClass, beforeAddMovementStatHookTypes, "beforeAddMovementStat", double.class, double.class, double.class); - addMethod(id, baseClass, overrideAddMovementStatHookTypes, "addMovementStat", double.class, double.class, double.class); - addMethod(id, baseClass, afterAddMovementStatHookTypes, "afterAddMovementStat", double.class, double.class, double.class); - - addMethod(id, baseClass, beforeAddStatHookTypes, "beforeAddStat", net.minecraft.stats.StatBase.class, int.class); - addMethod(id, baseClass, overrideAddStatHookTypes, "addStat", net.minecraft.stats.StatBase.class, int.class); - addMethod(id, baseClass, afterAddStatHookTypes, "afterAddStat", net.minecraft.stats.StatBase.class, int.class); - - addMethod(id, baseClass, beforeAttackEntityFromHookTypes, "beforeAttackEntityFrom", net.minecraft.util.DamageSource.class, float.class); - addMethod(id, baseClass, overrideAttackEntityFromHookTypes, "attackEntityFrom", net.minecraft.util.DamageSource.class, float.class); - addMethod(id, baseClass, afterAttackEntityFromHookTypes, "afterAttackEntityFrom", net.minecraft.util.DamageSource.class, float.class); - - addMethod(id, baseClass, beforeAttackTargetEntityWithCurrentItemHookTypes, "beforeAttackTargetEntityWithCurrentItem", net.minecraft.entity.Entity.class); - addMethod(id, baseClass, overrideAttackTargetEntityWithCurrentItemHookTypes, "attackTargetEntityWithCurrentItem", net.minecraft.entity.Entity.class); - addMethod(id, baseClass, afterAttackTargetEntityWithCurrentItemHookTypes, "afterAttackTargetEntityWithCurrentItem", net.minecraft.entity.Entity.class); - - addMethod(id, baseClass, beforeCanBreatheUnderwaterHookTypes, "beforeCanBreatheUnderwater"); - addMethod(id, baseClass, overrideCanBreatheUnderwaterHookTypes, "canBreatheUnderwater"); - addMethod(id, baseClass, afterCanBreatheUnderwaterHookTypes, "afterCanBreatheUnderwater"); - - addMethod(id, baseClass, beforeCanHarvestBlockHookTypes, "beforeCanHarvestBlock", net.minecraft.block.Block.class); - addMethod(id, baseClass, overrideCanHarvestBlockHookTypes, "canHarvestBlock", net.minecraft.block.Block.class); - addMethod(id, baseClass, afterCanHarvestBlockHookTypes, "afterCanHarvestBlock", net.minecraft.block.Block.class); - - addMethod(id, baseClass, beforeCanPlayerEditHookTypes, "beforeCanPlayerEdit", net.minecraft.util.BlockPos.class, net.minecraft.util.EnumFacing.class, net.minecraft.item.ItemStack.class); - addMethod(id, baseClass, overrideCanPlayerEditHookTypes, "canPlayerEdit", net.minecraft.util.BlockPos.class, net.minecraft.util.EnumFacing.class, net.minecraft.item.ItemStack.class); - addMethod(id, baseClass, afterCanPlayerEditHookTypes, "afterCanPlayerEdit", net.minecraft.util.BlockPos.class, net.minecraft.util.EnumFacing.class, net.minecraft.item.ItemStack.class); - - addMethod(id, baseClass, beforeCanTriggerWalkingHookTypes, "beforeCanTriggerWalking"); - addMethod(id, baseClass, overrideCanTriggerWalkingHookTypes, "canTriggerWalking"); - addMethod(id, baseClass, afterCanTriggerWalkingHookTypes, "afterCanTriggerWalking"); - - addMethod(id, baseClass, beforeCloseScreenHookTypes, "beforeCloseScreen"); - addMethod(id, baseClass, overrideCloseScreenHookTypes, "closeScreen"); - addMethod(id, baseClass, afterCloseScreenHookTypes, "afterCloseScreen"); - - addMethod(id, baseClass, beforeDamageEntityHookTypes, "beforeDamageEntity", net.minecraft.util.DamageSource.class, float.class); - addMethod(id, baseClass, overrideDamageEntityHookTypes, "damageEntity", net.minecraft.util.DamageSource.class, float.class); - addMethod(id, baseClass, afterDamageEntityHookTypes, "afterDamageEntity", net.minecraft.util.DamageSource.class, float.class); - - addMethod(id, baseClass, beforeDisplayGuiHookTypes, "beforeDisplayGui", net.minecraft.world.IInteractionObject.class); - addMethod(id, baseClass, overrideDisplayGuiHookTypes, "displayGui", net.minecraft.world.IInteractionObject.class); - addMethod(id, baseClass, afterDisplayGuiHookTypes, "afterDisplayGui", net.minecraft.world.IInteractionObject.class); - - addMethod(id, baseClass, beforeDisplayGUIChestHookTypes, "beforeDisplayGUIChest", net.minecraft.inventory.IInventory.class); - addMethod(id, baseClass, overrideDisplayGUIChestHookTypes, "displayGUIChest", net.minecraft.inventory.IInventory.class); - addMethod(id, baseClass, afterDisplayGUIChestHookTypes, "afterDisplayGUIChest", net.minecraft.inventory.IInventory.class); - - addMethod(id, baseClass, beforeDropItemHookTypes, "beforeDropItem", net.minecraft.item.ItemStack.class, boolean.class, boolean.class); - addMethod(id, baseClass, overrideDropItemHookTypes, "dropItem", net.minecraft.item.ItemStack.class, boolean.class, boolean.class); - addMethod(id, baseClass, afterDropItemHookTypes, "afterDropItem", net.minecraft.item.ItemStack.class, boolean.class, boolean.class); - - addMethod(id, baseClass, beforeDropOneItemHookTypes, "beforeDropOneItem", boolean.class); - addMethod(id, baseClass, overrideDropOneItemHookTypes, "dropOneItem", boolean.class); - addMethod(id, baseClass, afterDropOneItemHookTypes, "afterDropOneItem", boolean.class); - - addMethod(id, baseClass, beforeDropPlayerItemWithRandomChoiceHookTypes, "beforeDropPlayerItemWithRandomChoice", net.minecraft.item.ItemStack.class, boolean.class); - addMethod(id, baseClass, overrideDropPlayerItemWithRandomChoiceHookTypes, "dropPlayerItemWithRandomChoice", net.minecraft.item.ItemStack.class, boolean.class); - addMethod(id, baseClass, afterDropPlayerItemWithRandomChoiceHookTypes, "afterDropPlayerItemWithRandomChoice", net.minecraft.item.ItemStack.class, boolean.class); - - addMethod(id, baseClass, beforeFallHookTypes, "beforeFall", float.class, float.class); - addMethod(id, baseClass, overrideFallHookTypes, "fall", float.class, float.class); - addMethod(id, baseClass, afterFallHookTypes, "afterFall", float.class, float.class); - - addMethod(id, baseClass, beforeGetAIMoveSpeedHookTypes, "beforeGetAIMoveSpeed"); - addMethod(id, baseClass, overrideGetAIMoveSpeedHookTypes, "getAIMoveSpeed"); - addMethod(id, baseClass, afterGetAIMoveSpeedHookTypes, "afterGetAIMoveSpeed"); - - addMethod(id, baseClass, beforeGetBedOrientationInDegreesHookTypes, "beforeGetBedOrientationInDegrees"); - addMethod(id, baseClass, overrideGetBedOrientationInDegreesHookTypes, "getBedOrientationInDegrees"); - addMethod(id, baseClass, afterGetBedOrientationInDegreesHookTypes, "afterGetBedOrientationInDegrees"); - - addMethod(id, baseClass, beforeGetBrightnessHookTypes, "beforeGetBrightness", float.class); - addMethod(id, baseClass, overrideGetBrightnessHookTypes, "getBrightness", float.class); - addMethod(id, baseClass, afterGetBrightnessHookTypes, "afterGetBrightness", float.class); - - addMethod(id, baseClass, beforeGetBrightnessForRenderHookTypes, "beforeGetBrightnessForRender", float.class); - addMethod(id, baseClass, overrideGetBrightnessForRenderHookTypes, "getBrightnessForRender", float.class); - addMethod(id, baseClass, afterGetBrightnessForRenderHookTypes, "afterGetBrightnessForRender", float.class); - - addMethod(id, baseClass, beforeGetBreakSpeedHookTypes, "beforeGetBreakSpeed", net.minecraft.block.state.IBlockState.class, net.minecraft.util.BlockPos.class); - addMethod(id, baseClass, overrideGetBreakSpeedHookTypes, "getBreakSpeed", net.minecraft.block.state.IBlockState.class, net.minecraft.util.BlockPos.class); - addMethod(id, baseClass, afterGetBreakSpeedHookTypes, "afterGetBreakSpeed", net.minecraft.block.state.IBlockState.class, net.minecraft.util.BlockPos.class); - - addMethod(id, baseClass, beforeGetDistanceSqHookTypes, "beforeGetDistanceSq", double.class, double.class, double.class); - addMethod(id, baseClass, overrideGetDistanceSqHookTypes, "getDistanceSq", double.class, double.class, double.class); - addMethod(id, baseClass, afterGetDistanceSqHookTypes, "afterGetDistanceSq", double.class, double.class, double.class); - - addMethod(id, baseClass, beforeGetDistanceSqToEntityHookTypes, "beforeGetDistanceSqToEntity", net.minecraft.entity.Entity.class); - addMethod(id, baseClass, overrideGetDistanceSqToEntityHookTypes, "getDistanceSqToEntity", net.minecraft.entity.Entity.class); - addMethod(id, baseClass, afterGetDistanceSqToEntityHookTypes, "afterGetDistanceSqToEntity", net.minecraft.entity.Entity.class); - - addMethod(id, baseClass, beforeGetFovModifierHookTypes, "beforeGetFovModifier"); - addMethod(id, baseClass, overrideGetFovModifierHookTypes, "getFovModifier"); - addMethod(id, baseClass, afterGetFovModifierHookTypes, "afterGetFovModifier"); - - addMethod(id, baseClass, beforeGetHurtSoundHookTypes, "beforeGetHurtSound"); - addMethod(id, baseClass, overrideGetHurtSoundHookTypes, "getHurtSound"); - addMethod(id, baseClass, afterGetHurtSoundHookTypes, "afterGetHurtSound"); - - addMethod(id, baseClass, beforeGetNameHookTypes, "beforeGetName"); - addMethod(id, baseClass, overrideGetNameHookTypes, "getName"); - addMethod(id, baseClass, afterGetNameHookTypes, "afterGetName"); - - addMethod(id, baseClass, beforeGetSleepTimerHookTypes, "beforeGetSleepTimer"); - addMethod(id, baseClass, overrideGetSleepTimerHookTypes, "getSleepTimer"); - addMethod(id, baseClass, afterGetSleepTimerHookTypes, "afterGetSleepTimer"); - - addMethod(id, baseClass, beforeHandleWaterMovementHookTypes, "beforeHandleWaterMovement"); - addMethod(id, baseClass, overrideHandleWaterMovementHookTypes, "handleWaterMovement"); - addMethod(id, baseClass, afterHandleWaterMovementHookTypes, "afterHandleWaterMovement"); - - addMethod(id, baseClass, beforeHealHookTypes, "beforeHeal", float.class); - addMethod(id, baseClass, overrideHealHookTypes, "heal", float.class); - addMethod(id, baseClass, afterHealHookTypes, "afterHeal", float.class); - - addMethod(id, baseClass, beforeIsEntityInsideOpaqueBlockHookTypes, "beforeIsEntityInsideOpaqueBlock"); - addMethod(id, baseClass, overrideIsEntityInsideOpaqueBlockHookTypes, "isEntityInsideOpaqueBlock"); - addMethod(id, baseClass, afterIsEntityInsideOpaqueBlockHookTypes, "afterIsEntityInsideOpaqueBlock"); - - addMethod(id, baseClass, beforeIsInWaterHookTypes, "beforeIsInWater"); - addMethod(id, baseClass, overrideIsInWaterHookTypes, "isInWater"); - addMethod(id, baseClass, afterIsInWaterHookTypes, "afterIsInWater"); - - addMethod(id, baseClass, beforeIsInsideOfMaterialHookTypes, "beforeIsInsideOfMaterial", net.minecraft.block.material.Material.class); - addMethod(id, baseClass, overrideIsInsideOfMaterialHookTypes, "isInsideOfMaterial", net.minecraft.block.material.Material.class); - addMethod(id, baseClass, afterIsInsideOfMaterialHookTypes, "afterIsInsideOfMaterial", net.minecraft.block.material.Material.class); - - addMethod(id, baseClass, beforeIsOnLadderHookTypes, "beforeIsOnLadder"); - addMethod(id, baseClass, overrideIsOnLadderHookTypes, "isOnLadder"); - addMethod(id, baseClass, afterIsOnLadderHookTypes, "afterIsOnLadder"); - - addMethod(id, baseClass, beforeIsPlayerSleepingHookTypes, "beforeIsPlayerSleeping"); - addMethod(id, baseClass, overrideIsPlayerSleepingHookTypes, "isPlayerSleeping"); - addMethod(id, baseClass, afterIsPlayerSleepingHookTypes, "afterIsPlayerSleeping"); - - addMethod(id, baseClass, beforeIsSneakingHookTypes, "beforeIsSneaking"); - addMethod(id, baseClass, overrideIsSneakingHookTypes, "isSneaking"); - addMethod(id, baseClass, afterIsSneakingHookTypes, "afterIsSneaking"); - - addMethod(id, baseClass, beforeIsSprintingHookTypes, "beforeIsSprinting"); - addMethod(id, baseClass, overrideIsSprintingHookTypes, "isSprinting"); - addMethod(id, baseClass, afterIsSprintingHookTypes, "afterIsSprinting"); - - addMethod(id, baseClass, beforeJumpHookTypes, "beforeJump"); - addMethod(id, baseClass, overrideJumpHookTypes, "jump"); - addMethod(id, baseClass, afterJumpHookTypes, "afterJump"); - - addMethod(id, baseClass, beforeKnockBackHookTypes, "beforeKnockBack", net.minecraft.entity.Entity.class, float.class, double.class, double.class); - addMethod(id, baseClass, overrideKnockBackHookTypes, "knockBack", net.minecraft.entity.Entity.class, float.class, double.class, double.class); - addMethod(id, baseClass, afterKnockBackHookTypes, "afterKnockBack", net.minecraft.entity.Entity.class, float.class, double.class, double.class); - - addMethod(id, baseClass, beforeMoveEntityHookTypes, "beforeMoveEntity", double.class, double.class, double.class); - addMethod(id, baseClass, overrideMoveEntityHookTypes, "moveEntity", double.class, double.class, double.class); - addMethod(id, baseClass, afterMoveEntityHookTypes, "afterMoveEntity", double.class, double.class, double.class); - - addMethod(id, baseClass, beforeMoveEntityWithHeadingHookTypes, "beforeMoveEntityWithHeading", float.class, float.class); - addMethod(id, baseClass, overrideMoveEntityWithHeadingHookTypes, "moveEntityWithHeading", float.class, float.class); - addMethod(id, baseClass, afterMoveEntityWithHeadingHookTypes, "afterMoveEntityWithHeading", float.class, float.class); - - addMethod(id, baseClass, beforeMoveFlyingHookTypes, "beforeMoveFlying", float.class, float.class, float.class); - addMethod(id, baseClass, overrideMoveFlyingHookTypes, "moveFlying", float.class, float.class, float.class); - addMethod(id, baseClass, afterMoveFlyingHookTypes, "afterMoveFlying", float.class, float.class, float.class); - - addMethod(id, baseClass, beforeOnDeathHookTypes, "beforeOnDeath", net.minecraft.util.DamageSource.class); - addMethod(id, baseClass, overrideOnDeathHookTypes, "onDeath", net.minecraft.util.DamageSource.class); - addMethod(id, baseClass, afterOnDeathHookTypes, "afterOnDeath", net.minecraft.util.DamageSource.class); - - addMethod(id, baseClass, beforeOnLivingUpdateHookTypes, "beforeOnLivingUpdate"); - addMethod(id, baseClass, overrideOnLivingUpdateHookTypes, "onLivingUpdate"); - addMethod(id, baseClass, afterOnLivingUpdateHookTypes, "afterOnLivingUpdate"); - - addMethod(id, baseClass, beforeOnKillEntityHookTypes, "beforeOnKillEntity", net.minecraft.entity.EntityLivingBase.class); - addMethod(id, baseClass, overrideOnKillEntityHookTypes, "onKillEntity", net.minecraft.entity.EntityLivingBase.class); - addMethod(id, baseClass, afterOnKillEntityHookTypes, "afterOnKillEntity", net.minecraft.entity.EntityLivingBase.class); - - addMethod(id, baseClass, beforeOnStruckByLightningHookTypes, "beforeOnStruckByLightning", net.minecraft.entity.effect.EntityLightningBolt.class); - addMethod(id, baseClass, overrideOnStruckByLightningHookTypes, "onStruckByLightning", net.minecraft.entity.effect.EntityLightningBolt.class); - addMethod(id, baseClass, afterOnStruckByLightningHookTypes, "afterOnStruckByLightning", net.minecraft.entity.effect.EntityLightningBolt.class); - - addMethod(id, baseClass, beforeOnUpdateHookTypes, "beforeOnUpdate"); - addMethod(id, baseClass, overrideOnUpdateHookTypes, "onUpdate"); - addMethod(id, baseClass, afterOnUpdateHookTypes, "afterOnUpdate"); - - addMethod(id, baseClass, beforePlayStepSoundHookTypes, "beforePlayStepSound", net.minecraft.util.BlockPos.class, net.minecraft.block.Block.class); - addMethod(id, baseClass, overridePlayStepSoundHookTypes, "playStepSound", net.minecraft.util.BlockPos.class, net.minecraft.block.Block.class); - addMethod(id, baseClass, afterPlayStepSoundHookTypes, "afterPlayStepSound", net.minecraft.util.BlockPos.class, net.minecraft.block.Block.class); - - addMethod(id, baseClass, beforePushOutOfBlocksHookTypes, "beforePushOutOfBlocks", double.class, double.class, double.class); - addMethod(id, baseClass, overridePushOutOfBlocksHookTypes, "pushOutOfBlocks", double.class, double.class, double.class); - addMethod(id, baseClass, afterPushOutOfBlocksHookTypes, "afterPushOutOfBlocks", double.class, double.class, double.class); - - addMethod(id, baseClass, beforeRayTraceHookTypes, "beforeRayTrace", double.class, float.class); - addMethod(id, baseClass, overrideRayTraceHookTypes, "rayTrace", double.class, float.class); - addMethod(id, baseClass, afterRayTraceHookTypes, "afterRayTrace", double.class, float.class); - - addMethod(id, baseClass, beforeReadEntityFromNBTHookTypes, "beforeReadEntityFromNBT", net.minecraft.nbt.NBTTagCompound.class); - addMethod(id, baseClass, overrideReadEntityFromNBTHookTypes, "readEntityFromNBT", net.minecraft.nbt.NBTTagCompound.class); - addMethod(id, baseClass, afterReadEntityFromNBTHookTypes, "afterReadEntityFromNBT", net.minecraft.nbt.NBTTagCompound.class); - - addMethod(id, baseClass, beforeRespawnPlayerHookTypes, "beforeRespawnPlayer"); - addMethod(id, baseClass, overrideRespawnPlayerHookTypes, "respawnPlayer"); - addMethod(id, baseClass, afterRespawnPlayerHookTypes, "afterRespawnPlayer"); - - addMethod(id, baseClass, beforeSetDeadHookTypes, "beforeSetDead"); - addMethod(id, baseClass, overrideSetDeadHookTypes, "setDead"); - addMethod(id, baseClass, afterSetDeadHookTypes, "afterSetDead"); - - addMethod(id, baseClass, beforeSetPlayerSPHealthHookTypes, "beforeSetPlayerSPHealth", float.class); - addMethod(id, baseClass, overrideSetPlayerSPHealthHookTypes, "setPlayerSPHealth", float.class); - addMethod(id, baseClass, afterSetPlayerSPHealthHookTypes, "afterSetPlayerSPHealth", float.class); - - addMethod(id, baseClass, beforeSetPositionAndRotationHookTypes, "beforeSetPositionAndRotation", double.class, double.class, double.class, float.class, float.class); - addMethod(id, baseClass, overrideSetPositionAndRotationHookTypes, "setPositionAndRotation", double.class, double.class, double.class, float.class, float.class); - addMethod(id, baseClass, afterSetPositionAndRotationHookTypes, "afterSetPositionAndRotation", double.class, double.class, double.class, float.class, float.class); - - addMethod(id, baseClass, beforeSetSneakingHookTypes, "beforeSetSneaking", boolean.class); - addMethod(id, baseClass, overrideSetSneakingHookTypes, "setSneaking", boolean.class); - addMethod(id, baseClass, afterSetSneakingHookTypes, "afterSetSneaking", boolean.class); - - addMethod(id, baseClass, beforeSetSprintingHookTypes, "beforeSetSprinting", boolean.class); - addMethod(id, baseClass, overrideSetSprintingHookTypes, "setSprinting", boolean.class); - addMethod(id, baseClass, afterSetSprintingHookTypes, "afterSetSprinting", boolean.class); - - addMethod(id, baseClass, beforeTrySleepHookTypes, "beforeTrySleep", net.minecraft.util.BlockPos.class); - addMethod(id, baseClass, overrideTrySleepHookTypes, "trySleep", net.minecraft.util.BlockPos.class); - addMethod(id, baseClass, afterTrySleepHookTypes, "afterTrySleep", net.minecraft.util.BlockPos.class); - - addMethod(id, baseClass, beforeSwingItemHookTypes, "beforeSwingItem"); - addMethod(id, baseClass, overrideSwingItemHookTypes, "swingItem"); - addMethod(id, baseClass, afterSwingItemHookTypes, "afterSwingItem"); - - addMethod(id, baseClass, beforeUpdateEntityActionStateHookTypes, "beforeUpdateEntityActionState"); - addMethod(id, baseClass, overrideUpdateEntityActionStateHookTypes, "updateEntityActionState"); - addMethod(id, baseClass, afterUpdateEntityActionStateHookTypes, "afterUpdateEntityActionState"); - - addMethod(id, baseClass, beforeUpdateRiddenHookTypes, "beforeUpdateRidden"); - addMethod(id, baseClass, overrideUpdateRiddenHookTypes, "updateRidden"); - addMethod(id, baseClass, afterUpdateRiddenHookTypes, "afterUpdateRidden"); - - addMethod(id, baseClass, beforeWakeUpPlayerHookTypes, "beforeWakeUpPlayer", boolean.class, boolean.class, boolean.class); - addMethod(id, baseClass, overrideWakeUpPlayerHookTypes, "wakeUpPlayer", boolean.class, boolean.class, boolean.class); - addMethod(id, baseClass, afterWakeUpPlayerHookTypes, "afterWakeUpPlayer", boolean.class, boolean.class, boolean.class); - - addMethod(id, baseClass, beforeWriteEntityToNBTHookTypes, "beforeWriteEntityToNBT", net.minecraft.nbt.NBTTagCompound.class); - addMethod(id, baseClass, overrideWriteEntityToNBTHookTypes, "writeEntityToNBT", net.minecraft.nbt.NBTTagCompound.class); - addMethod(id, baseClass, afterWriteEntityToNBTHookTypes, "afterWriteEntityToNBT", net.minecraft.nbt.NBTTagCompound.class); - - - addDynamicMethods(id, baseClass); - - addDynamicKeys(id, baseClass, beforeDynamicHookMethods, beforeDynamicHookTypes); - addDynamicKeys(id, baseClass, overrideDynamicHookMethods, overrideDynamicHookTypes); - addDynamicKeys(id, baseClass, afterDynamicHookMethods, afterDynamicHookTypes); - - initialize(); - - for(IClientPlayerAPI instance : getAllInstancesList()) - instance.getClientPlayerAPI().attachClientPlayerBase(id); - - System.out.println("Client Player: registered " + id); - logger.fine("Client Player: registered class '" + baseClass.getName() + "' with id '" + id + "'"); - - initialized = false; - } - - public static boolean unregister(String id) - { - if(id == null) - return false; - - Constructor constructor = allBaseConstructors.remove(id); - if(constructor == null) - return false; - - for(IClientPlayerAPI instance : getAllInstancesList()) - instance.getClientPlayerAPI().detachClientPlayerBase(id); - - beforeLocalConstructingHookTypes.remove(id); - afterLocalConstructingHookTypes.remove(id); - - allBaseBeforeAddExhaustionSuperiors.remove(id); - allBaseBeforeAddExhaustionInferiors.remove(id); - allBaseOverrideAddExhaustionSuperiors.remove(id); - allBaseOverrideAddExhaustionInferiors.remove(id); - allBaseAfterAddExhaustionSuperiors.remove(id); - allBaseAfterAddExhaustionInferiors.remove(id); - - beforeAddExhaustionHookTypes.remove(id); - overrideAddExhaustionHookTypes.remove(id); - afterAddExhaustionHookTypes.remove(id); - - allBaseBeforeAddMovementStatSuperiors.remove(id); - allBaseBeforeAddMovementStatInferiors.remove(id); - allBaseOverrideAddMovementStatSuperiors.remove(id); - allBaseOverrideAddMovementStatInferiors.remove(id); - allBaseAfterAddMovementStatSuperiors.remove(id); - allBaseAfterAddMovementStatInferiors.remove(id); - - beforeAddMovementStatHookTypes.remove(id); - overrideAddMovementStatHookTypes.remove(id); - afterAddMovementStatHookTypes.remove(id); - - allBaseBeforeAddStatSuperiors.remove(id); - allBaseBeforeAddStatInferiors.remove(id); - allBaseOverrideAddStatSuperiors.remove(id); - allBaseOverrideAddStatInferiors.remove(id); - allBaseAfterAddStatSuperiors.remove(id); - allBaseAfterAddStatInferiors.remove(id); - - beforeAddStatHookTypes.remove(id); - overrideAddStatHookTypes.remove(id); - afterAddStatHookTypes.remove(id); - - allBaseBeforeAttackEntityFromSuperiors.remove(id); - allBaseBeforeAttackEntityFromInferiors.remove(id); - allBaseOverrideAttackEntityFromSuperiors.remove(id); - allBaseOverrideAttackEntityFromInferiors.remove(id); - allBaseAfterAttackEntityFromSuperiors.remove(id); - allBaseAfterAttackEntityFromInferiors.remove(id); - - beforeAttackEntityFromHookTypes.remove(id); - overrideAttackEntityFromHookTypes.remove(id); - afterAttackEntityFromHookTypes.remove(id); - - allBaseBeforeAttackTargetEntityWithCurrentItemSuperiors.remove(id); - allBaseBeforeAttackTargetEntityWithCurrentItemInferiors.remove(id); - allBaseOverrideAttackTargetEntityWithCurrentItemSuperiors.remove(id); - allBaseOverrideAttackTargetEntityWithCurrentItemInferiors.remove(id); - allBaseAfterAttackTargetEntityWithCurrentItemSuperiors.remove(id); - allBaseAfterAttackTargetEntityWithCurrentItemInferiors.remove(id); - - beforeAttackTargetEntityWithCurrentItemHookTypes.remove(id); - overrideAttackTargetEntityWithCurrentItemHookTypes.remove(id); - afterAttackTargetEntityWithCurrentItemHookTypes.remove(id); - - allBaseBeforeCanBreatheUnderwaterSuperiors.remove(id); - allBaseBeforeCanBreatheUnderwaterInferiors.remove(id); - allBaseOverrideCanBreatheUnderwaterSuperiors.remove(id); - allBaseOverrideCanBreatheUnderwaterInferiors.remove(id); - allBaseAfterCanBreatheUnderwaterSuperiors.remove(id); - allBaseAfterCanBreatheUnderwaterInferiors.remove(id); - - beforeCanBreatheUnderwaterHookTypes.remove(id); - overrideCanBreatheUnderwaterHookTypes.remove(id); - afterCanBreatheUnderwaterHookTypes.remove(id); - - allBaseBeforeCanHarvestBlockSuperiors.remove(id); - allBaseBeforeCanHarvestBlockInferiors.remove(id); - allBaseOverrideCanHarvestBlockSuperiors.remove(id); - allBaseOverrideCanHarvestBlockInferiors.remove(id); - allBaseAfterCanHarvestBlockSuperiors.remove(id); - allBaseAfterCanHarvestBlockInferiors.remove(id); - - beforeCanHarvestBlockHookTypes.remove(id); - overrideCanHarvestBlockHookTypes.remove(id); - afterCanHarvestBlockHookTypes.remove(id); - - allBaseBeforeCanPlayerEditSuperiors.remove(id); - allBaseBeforeCanPlayerEditInferiors.remove(id); - allBaseOverrideCanPlayerEditSuperiors.remove(id); - allBaseOverrideCanPlayerEditInferiors.remove(id); - allBaseAfterCanPlayerEditSuperiors.remove(id); - allBaseAfterCanPlayerEditInferiors.remove(id); - - beforeCanPlayerEditHookTypes.remove(id); - overrideCanPlayerEditHookTypes.remove(id); - afterCanPlayerEditHookTypes.remove(id); - - allBaseBeforeCanTriggerWalkingSuperiors.remove(id); - allBaseBeforeCanTriggerWalkingInferiors.remove(id); - allBaseOverrideCanTriggerWalkingSuperiors.remove(id); - allBaseOverrideCanTriggerWalkingInferiors.remove(id); - allBaseAfterCanTriggerWalkingSuperiors.remove(id); - allBaseAfterCanTriggerWalkingInferiors.remove(id); - - beforeCanTriggerWalkingHookTypes.remove(id); - overrideCanTriggerWalkingHookTypes.remove(id); - afterCanTriggerWalkingHookTypes.remove(id); - - allBaseBeforeCloseScreenSuperiors.remove(id); - allBaseBeforeCloseScreenInferiors.remove(id); - allBaseOverrideCloseScreenSuperiors.remove(id); - allBaseOverrideCloseScreenInferiors.remove(id); - allBaseAfterCloseScreenSuperiors.remove(id); - allBaseAfterCloseScreenInferiors.remove(id); - - beforeCloseScreenHookTypes.remove(id); - overrideCloseScreenHookTypes.remove(id); - afterCloseScreenHookTypes.remove(id); - - allBaseBeforeDamageEntitySuperiors.remove(id); - allBaseBeforeDamageEntityInferiors.remove(id); - allBaseOverrideDamageEntitySuperiors.remove(id); - allBaseOverrideDamageEntityInferiors.remove(id); - allBaseAfterDamageEntitySuperiors.remove(id); - allBaseAfterDamageEntityInferiors.remove(id); - - beforeDamageEntityHookTypes.remove(id); - overrideDamageEntityHookTypes.remove(id); - afterDamageEntityHookTypes.remove(id); - - allBaseBeforeDisplayGuiSuperiors.remove(id); - allBaseBeforeDisplayGuiInferiors.remove(id); - allBaseOverrideDisplayGuiSuperiors.remove(id); - allBaseOverrideDisplayGuiInferiors.remove(id); - allBaseAfterDisplayGuiSuperiors.remove(id); - allBaseAfterDisplayGuiInferiors.remove(id); - - beforeDisplayGuiHookTypes.remove(id); - overrideDisplayGuiHookTypes.remove(id); - afterDisplayGuiHookTypes.remove(id); - - allBaseBeforeDisplayGUIChestSuperiors.remove(id); - allBaseBeforeDisplayGUIChestInferiors.remove(id); - allBaseOverrideDisplayGUIChestSuperiors.remove(id); - allBaseOverrideDisplayGUIChestInferiors.remove(id); - allBaseAfterDisplayGUIChestSuperiors.remove(id); - allBaseAfterDisplayGUIChestInferiors.remove(id); - - beforeDisplayGUIChestHookTypes.remove(id); - overrideDisplayGUIChestHookTypes.remove(id); - afterDisplayGUIChestHookTypes.remove(id); - - allBaseBeforeDropItemSuperiors.remove(id); - allBaseBeforeDropItemInferiors.remove(id); - allBaseOverrideDropItemSuperiors.remove(id); - allBaseOverrideDropItemInferiors.remove(id); - allBaseAfterDropItemSuperiors.remove(id); - allBaseAfterDropItemInferiors.remove(id); - - beforeDropItemHookTypes.remove(id); - overrideDropItemHookTypes.remove(id); - afterDropItemHookTypes.remove(id); - - allBaseBeforeDropOneItemSuperiors.remove(id); - allBaseBeforeDropOneItemInferiors.remove(id); - allBaseOverrideDropOneItemSuperiors.remove(id); - allBaseOverrideDropOneItemInferiors.remove(id); - allBaseAfterDropOneItemSuperiors.remove(id); - allBaseAfterDropOneItemInferiors.remove(id); - - beforeDropOneItemHookTypes.remove(id); - overrideDropOneItemHookTypes.remove(id); - afterDropOneItemHookTypes.remove(id); - - allBaseBeforeDropPlayerItemWithRandomChoiceSuperiors.remove(id); - allBaseBeforeDropPlayerItemWithRandomChoiceInferiors.remove(id); - allBaseOverrideDropPlayerItemWithRandomChoiceSuperiors.remove(id); - allBaseOverrideDropPlayerItemWithRandomChoiceInferiors.remove(id); - allBaseAfterDropPlayerItemWithRandomChoiceSuperiors.remove(id); - allBaseAfterDropPlayerItemWithRandomChoiceInferiors.remove(id); - - beforeDropPlayerItemWithRandomChoiceHookTypes.remove(id); - overrideDropPlayerItemWithRandomChoiceHookTypes.remove(id); - afterDropPlayerItemWithRandomChoiceHookTypes.remove(id); - - allBaseBeforeFallSuperiors.remove(id); - allBaseBeforeFallInferiors.remove(id); - allBaseOverrideFallSuperiors.remove(id); - allBaseOverrideFallInferiors.remove(id); - allBaseAfterFallSuperiors.remove(id); - allBaseAfterFallInferiors.remove(id); - - beforeFallHookTypes.remove(id); - overrideFallHookTypes.remove(id); - afterFallHookTypes.remove(id); - - allBaseBeforeGetAIMoveSpeedSuperiors.remove(id); - allBaseBeforeGetAIMoveSpeedInferiors.remove(id); - allBaseOverrideGetAIMoveSpeedSuperiors.remove(id); - allBaseOverrideGetAIMoveSpeedInferiors.remove(id); - allBaseAfterGetAIMoveSpeedSuperiors.remove(id); - allBaseAfterGetAIMoveSpeedInferiors.remove(id); - - beforeGetAIMoveSpeedHookTypes.remove(id); - overrideGetAIMoveSpeedHookTypes.remove(id); - afterGetAIMoveSpeedHookTypes.remove(id); - - allBaseBeforeGetBedOrientationInDegreesSuperiors.remove(id); - allBaseBeforeGetBedOrientationInDegreesInferiors.remove(id); - allBaseOverrideGetBedOrientationInDegreesSuperiors.remove(id); - allBaseOverrideGetBedOrientationInDegreesInferiors.remove(id); - allBaseAfterGetBedOrientationInDegreesSuperiors.remove(id); - allBaseAfterGetBedOrientationInDegreesInferiors.remove(id); - - beforeGetBedOrientationInDegreesHookTypes.remove(id); - overrideGetBedOrientationInDegreesHookTypes.remove(id); - afterGetBedOrientationInDegreesHookTypes.remove(id); - - allBaseBeforeGetBrightnessSuperiors.remove(id); - allBaseBeforeGetBrightnessInferiors.remove(id); - allBaseOverrideGetBrightnessSuperiors.remove(id); - allBaseOverrideGetBrightnessInferiors.remove(id); - allBaseAfterGetBrightnessSuperiors.remove(id); - allBaseAfterGetBrightnessInferiors.remove(id); - - beforeGetBrightnessHookTypes.remove(id); - overrideGetBrightnessHookTypes.remove(id); - afterGetBrightnessHookTypes.remove(id); - - allBaseBeforeGetBrightnessForRenderSuperiors.remove(id); - allBaseBeforeGetBrightnessForRenderInferiors.remove(id); - allBaseOverrideGetBrightnessForRenderSuperiors.remove(id); - allBaseOverrideGetBrightnessForRenderInferiors.remove(id); - allBaseAfterGetBrightnessForRenderSuperiors.remove(id); - allBaseAfterGetBrightnessForRenderInferiors.remove(id); - - beforeGetBrightnessForRenderHookTypes.remove(id); - overrideGetBrightnessForRenderHookTypes.remove(id); - afterGetBrightnessForRenderHookTypes.remove(id); - - allBaseBeforeGetBreakSpeedSuperiors.remove(id); - allBaseBeforeGetBreakSpeedInferiors.remove(id); - allBaseOverrideGetBreakSpeedSuperiors.remove(id); - allBaseOverrideGetBreakSpeedInferiors.remove(id); - allBaseAfterGetBreakSpeedSuperiors.remove(id); - allBaseAfterGetBreakSpeedInferiors.remove(id); - - beforeGetBreakSpeedHookTypes.remove(id); - overrideGetBreakSpeedHookTypes.remove(id); - afterGetBreakSpeedHookTypes.remove(id); - - allBaseBeforeGetDistanceSqSuperiors.remove(id); - allBaseBeforeGetDistanceSqInferiors.remove(id); - allBaseOverrideGetDistanceSqSuperiors.remove(id); - allBaseOverrideGetDistanceSqInferiors.remove(id); - allBaseAfterGetDistanceSqSuperiors.remove(id); - allBaseAfterGetDistanceSqInferiors.remove(id); - - beforeGetDistanceSqHookTypes.remove(id); - overrideGetDistanceSqHookTypes.remove(id); - afterGetDistanceSqHookTypes.remove(id); - - allBaseBeforeGetDistanceSqToEntitySuperiors.remove(id); - allBaseBeforeGetDistanceSqToEntityInferiors.remove(id); - allBaseOverrideGetDistanceSqToEntitySuperiors.remove(id); - allBaseOverrideGetDistanceSqToEntityInferiors.remove(id); - allBaseAfterGetDistanceSqToEntitySuperiors.remove(id); - allBaseAfterGetDistanceSqToEntityInferiors.remove(id); - - beforeGetDistanceSqToEntityHookTypes.remove(id); - overrideGetDistanceSqToEntityHookTypes.remove(id); - afterGetDistanceSqToEntityHookTypes.remove(id); - - allBaseBeforeGetFovModifierSuperiors.remove(id); - allBaseBeforeGetFovModifierInferiors.remove(id); - allBaseOverrideGetFovModifierSuperiors.remove(id); - allBaseOverrideGetFovModifierInferiors.remove(id); - allBaseAfterGetFovModifierSuperiors.remove(id); - allBaseAfterGetFovModifierInferiors.remove(id); - - beforeGetFovModifierHookTypes.remove(id); - overrideGetFovModifierHookTypes.remove(id); - afterGetFovModifierHookTypes.remove(id); - - allBaseBeforeGetHurtSoundSuperiors.remove(id); - allBaseBeforeGetHurtSoundInferiors.remove(id); - allBaseOverrideGetHurtSoundSuperiors.remove(id); - allBaseOverrideGetHurtSoundInferiors.remove(id); - allBaseAfterGetHurtSoundSuperiors.remove(id); - allBaseAfterGetHurtSoundInferiors.remove(id); - - beforeGetHurtSoundHookTypes.remove(id); - overrideGetHurtSoundHookTypes.remove(id); - afterGetHurtSoundHookTypes.remove(id); - - allBaseBeforeGetNameSuperiors.remove(id); - allBaseBeforeGetNameInferiors.remove(id); - allBaseOverrideGetNameSuperiors.remove(id); - allBaseOverrideGetNameInferiors.remove(id); - allBaseAfterGetNameSuperiors.remove(id); - allBaseAfterGetNameInferiors.remove(id); - - beforeGetNameHookTypes.remove(id); - overrideGetNameHookTypes.remove(id); - afterGetNameHookTypes.remove(id); - - allBaseBeforeGetSleepTimerSuperiors.remove(id); - allBaseBeforeGetSleepTimerInferiors.remove(id); - allBaseOverrideGetSleepTimerSuperiors.remove(id); - allBaseOverrideGetSleepTimerInferiors.remove(id); - allBaseAfterGetSleepTimerSuperiors.remove(id); - allBaseAfterGetSleepTimerInferiors.remove(id); - - beforeGetSleepTimerHookTypes.remove(id); - overrideGetSleepTimerHookTypes.remove(id); - afterGetSleepTimerHookTypes.remove(id); - - allBaseBeforeHandleWaterMovementSuperiors.remove(id); - allBaseBeforeHandleWaterMovementInferiors.remove(id); - allBaseOverrideHandleWaterMovementSuperiors.remove(id); - allBaseOverrideHandleWaterMovementInferiors.remove(id); - allBaseAfterHandleWaterMovementSuperiors.remove(id); - allBaseAfterHandleWaterMovementInferiors.remove(id); - - beforeHandleWaterMovementHookTypes.remove(id); - overrideHandleWaterMovementHookTypes.remove(id); - afterHandleWaterMovementHookTypes.remove(id); - - allBaseBeforeHealSuperiors.remove(id); - allBaseBeforeHealInferiors.remove(id); - allBaseOverrideHealSuperiors.remove(id); - allBaseOverrideHealInferiors.remove(id); - allBaseAfterHealSuperiors.remove(id); - allBaseAfterHealInferiors.remove(id); - - beforeHealHookTypes.remove(id); - overrideHealHookTypes.remove(id); - afterHealHookTypes.remove(id); - - allBaseBeforeIsEntityInsideOpaqueBlockSuperiors.remove(id); - allBaseBeforeIsEntityInsideOpaqueBlockInferiors.remove(id); - allBaseOverrideIsEntityInsideOpaqueBlockSuperiors.remove(id); - allBaseOverrideIsEntityInsideOpaqueBlockInferiors.remove(id); - allBaseAfterIsEntityInsideOpaqueBlockSuperiors.remove(id); - allBaseAfterIsEntityInsideOpaqueBlockInferiors.remove(id); - - beforeIsEntityInsideOpaqueBlockHookTypes.remove(id); - overrideIsEntityInsideOpaqueBlockHookTypes.remove(id); - afterIsEntityInsideOpaqueBlockHookTypes.remove(id); - - allBaseBeforeIsInWaterSuperiors.remove(id); - allBaseBeforeIsInWaterInferiors.remove(id); - allBaseOverrideIsInWaterSuperiors.remove(id); - allBaseOverrideIsInWaterInferiors.remove(id); - allBaseAfterIsInWaterSuperiors.remove(id); - allBaseAfterIsInWaterInferiors.remove(id); - - beforeIsInWaterHookTypes.remove(id); - overrideIsInWaterHookTypes.remove(id); - afterIsInWaterHookTypes.remove(id); - - allBaseBeforeIsInsideOfMaterialSuperiors.remove(id); - allBaseBeforeIsInsideOfMaterialInferiors.remove(id); - allBaseOverrideIsInsideOfMaterialSuperiors.remove(id); - allBaseOverrideIsInsideOfMaterialInferiors.remove(id); - allBaseAfterIsInsideOfMaterialSuperiors.remove(id); - allBaseAfterIsInsideOfMaterialInferiors.remove(id); - - beforeIsInsideOfMaterialHookTypes.remove(id); - overrideIsInsideOfMaterialHookTypes.remove(id); - afterIsInsideOfMaterialHookTypes.remove(id); - - allBaseBeforeIsOnLadderSuperiors.remove(id); - allBaseBeforeIsOnLadderInferiors.remove(id); - allBaseOverrideIsOnLadderSuperiors.remove(id); - allBaseOverrideIsOnLadderInferiors.remove(id); - allBaseAfterIsOnLadderSuperiors.remove(id); - allBaseAfterIsOnLadderInferiors.remove(id); - - beforeIsOnLadderHookTypes.remove(id); - overrideIsOnLadderHookTypes.remove(id); - afterIsOnLadderHookTypes.remove(id); - - allBaseBeforeIsPlayerSleepingSuperiors.remove(id); - allBaseBeforeIsPlayerSleepingInferiors.remove(id); - allBaseOverrideIsPlayerSleepingSuperiors.remove(id); - allBaseOverrideIsPlayerSleepingInferiors.remove(id); - allBaseAfterIsPlayerSleepingSuperiors.remove(id); - allBaseAfterIsPlayerSleepingInferiors.remove(id); - - beforeIsPlayerSleepingHookTypes.remove(id); - overrideIsPlayerSleepingHookTypes.remove(id); - afterIsPlayerSleepingHookTypes.remove(id); - - allBaseBeforeIsSneakingSuperiors.remove(id); - allBaseBeforeIsSneakingInferiors.remove(id); - allBaseOverrideIsSneakingSuperiors.remove(id); - allBaseOverrideIsSneakingInferiors.remove(id); - allBaseAfterIsSneakingSuperiors.remove(id); - allBaseAfterIsSneakingInferiors.remove(id); - - beforeIsSneakingHookTypes.remove(id); - overrideIsSneakingHookTypes.remove(id); - afterIsSneakingHookTypes.remove(id); - - allBaseBeforeIsSprintingSuperiors.remove(id); - allBaseBeforeIsSprintingInferiors.remove(id); - allBaseOverrideIsSprintingSuperiors.remove(id); - allBaseOverrideIsSprintingInferiors.remove(id); - allBaseAfterIsSprintingSuperiors.remove(id); - allBaseAfterIsSprintingInferiors.remove(id); - - beforeIsSprintingHookTypes.remove(id); - overrideIsSprintingHookTypes.remove(id); - afterIsSprintingHookTypes.remove(id); - - allBaseBeforeJumpSuperiors.remove(id); - allBaseBeforeJumpInferiors.remove(id); - allBaseOverrideJumpSuperiors.remove(id); - allBaseOverrideJumpInferiors.remove(id); - allBaseAfterJumpSuperiors.remove(id); - allBaseAfterJumpInferiors.remove(id); - - beforeJumpHookTypes.remove(id); - overrideJumpHookTypes.remove(id); - afterJumpHookTypes.remove(id); - - allBaseBeforeKnockBackSuperiors.remove(id); - allBaseBeforeKnockBackInferiors.remove(id); - allBaseOverrideKnockBackSuperiors.remove(id); - allBaseOverrideKnockBackInferiors.remove(id); - allBaseAfterKnockBackSuperiors.remove(id); - allBaseAfterKnockBackInferiors.remove(id); - - beforeKnockBackHookTypes.remove(id); - overrideKnockBackHookTypes.remove(id); - afterKnockBackHookTypes.remove(id); - - allBaseBeforeMoveEntitySuperiors.remove(id); - allBaseBeforeMoveEntityInferiors.remove(id); - allBaseOverrideMoveEntitySuperiors.remove(id); - allBaseOverrideMoveEntityInferiors.remove(id); - allBaseAfterMoveEntitySuperiors.remove(id); - allBaseAfterMoveEntityInferiors.remove(id); - - beforeMoveEntityHookTypes.remove(id); - overrideMoveEntityHookTypes.remove(id); - afterMoveEntityHookTypes.remove(id); - - allBaseBeforeMoveEntityWithHeadingSuperiors.remove(id); - allBaseBeforeMoveEntityWithHeadingInferiors.remove(id); - allBaseOverrideMoveEntityWithHeadingSuperiors.remove(id); - allBaseOverrideMoveEntityWithHeadingInferiors.remove(id); - allBaseAfterMoveEntityWithHeadingSuperiors.remove(id); - allBaseAfterMoveEntityWithHeadingInferiors.remove(id); - - beforeMoveEntityWithHeadingHookTypes.remove(id); - overrideMoveEntityWithHeadingHookTypes.remove(id); - afterMoveEntityWithHeadingHookTypes.remove(id); - - allBaseBeforeMoveFlyingSuperiors.remove(id); - allBaseBeforeMoveFlyingInferiors.remove(id); - allBaseOverrideMoveFlyingSuperiors.remove(id); - allBaseOverrideMoveFlyingInferiors.remove(id); - allBaseAfterMoveFlyingSuperiors.remove(id); - allBaseAfterMoveFlyingInferiors.remove(id); - - beforeMoveFlyingHookTypes.remove(id); - overrideMoveFlyingHookTypes.remove(id); - afterMoveFlyingHookTypes.remove(id); - - allBaseBeforeOnDeathSuperiors.remove(id); - allBaseBeforeOnDeathInferiors.remove(id); - allBaseOverrideOnDeathSuperiors.remove(id); - allBaseOverrideOnDeathInferiors.remove(id); - allBaseAfterOnDeathSuperiors.remove(id); - allBaseAfterOnDeathInferiors.remove(id); - - beforeOnDeathHookTypes.remove(id); - overrideOnDeathHookTypes.remove(id); - afterOnDeathHookTypes.remove(id); - - allBaseBeforeOnLivingUpdateSuperiors.remove(id); - allBaseBeforeOnLivingUpdateInferiors.remove(id); - allBaseOverrideOnLivingUpdateSuperiors.remove(id); - allBaseOverrideOnLivingUpdateInferiors.remove(id); - allBaseAfterOnLivingUpdateSuperiors.remove(id); - allBaseAfterOnLivingUpdateInferiors.remove(id); - - beforeOnLivingUpdateHookTypes.remove(id); - overrideOnLivingUpdateHookTypes.remove(id); - afterOnLivingUpdateHookTypes.remove(id); - - allBaseBeforeOnKillEntitySuperiors.remove(id); - allBaseBeforeOnKillEntityInferiors.remove(id); - allBaseOverrideOnKillEntitySuperiors.remove(id); - allBaseOverrideOnKillEntityInferiors.remove(id); - allBaseAfterOnKillEntitySuperiors.remove(id); - allBaseAfterOnKillEntityInferiors.remove(id); - - beforeOnKillEntityHookTypes.remove(id); - overrideOnKillEntityHookTypes.remove(id); - afterOnKillEntityHookTypes.remove(id); - - allBaseBeforeOnStruckByLightningSuperiors.remove(id); - allBaseBeforeOnStruckByLightningInferiors.remove(id); - allBaseOverrideOnStruckByLightningSuperiors.remove(id); - allBaseOverrideOnStruckByLightningInferiors.remove(id); - allBaseAfterOnStruckByLightningSuperiors.remove(id); - allBaseAfterOnStruckByLightningInferiors.remove(id); - - beforeOnStruckByLightningHookTypes.remove(id); - overrideOnStruckByLightningHookTypes.remove(id); - afterOnStruckByLightningHookTypes.remove(id); - - allBaseBeforeOnUpdateSuperiors.remove(id); - allBaseBeforeOnUpdateInferiors.remove(id); - allBaseOverrideOnUpdateSuperiors.remove(id); - allBaseOverrideOnUpdateInferiors.remove(id); - allBaseAfterOnUpdateSuperiors.remove(id); - allBaseAfterOnUpdateInferiors.remove(id); - - beforeOnUpdateHookTypes.remove(id); - overrideOnUpdateHookTypes.remove(id); - afterOnUpdateHookTypes.remove(id); - - allBaseBeforePlayStepSoundSuperiors.remove(id); - allBaseBeforePlayStepSoundInferiors.remove(id); - allBaseOverridePlayStepSoundSuperiors.remove(id); - allBaseOverridePlayStepSoundInferiors.remove(id); - allBaseAfterPlayStepSoundSuperiors.remove(id); - allBaseAfterPlayStepSoundInferiors.remove(id); - - beforePlayStepSoundHookTypes.remove(id); - overridePlayStepSoundHookTypes.remove(id); - afterPlayStepSoundHookTypes.remove(id); - - allBaseBeforePushOutOfBlocksSuperiors.remove(id); - allBaseBeforePushOutOfBlocksInferiors.remove(id); - allBaseOverridePushOutOfBlocksSuperiors.remove(id); - allBaseOverridePushOutOfBlocksInferiors.remove(id); - allBaseAfterPushOutOfBlocksSuperiors.remove(id); - allBaseAfterPushOutOfBlocksInferiors.remove(id); - - beforePushOutOfBlocksHookTypes.remove(id); - overridePushOutOfBlocksHookTypes.remove(id); - afterPushOutOfBlocksHookTypes.remove(id); - - allBaseBeforeRayTraceSuperiors.remove(id); - allBaseBeforeRayTraceInferiors.remove(id); - allBaseOverrideRayTraceSuperiors.remove(id); - allBaseOverrideRayTraceInferiors.remove(id); - allBaseAfterRayTraceSuperiors.remove(id); - allBaseAfterRayTraceInferiors.remove(id); - - beforeRayTraceHookTypes.remove(id); - overrideRayTraceHookTypes.remove(id); - afterRayTraceHookTypes.remove(id); - - allBaseBeforeReadEntityFromNBTSuperiors.remove(id); - allBaseBeforeReadEntityFromNBTInferiors.remove(id); - allBaseOverrideReadEntityFromNBTSuperiors.remove(id); - allBaseOverrideReadEntityFromNBTInferiors.remove(id); - allBaseAfterReadEntityFromNBTSuperiors.remove(id); - allBaseAfterReadEntityFromNBTInferiors.remove(id); - - beforeReadEntityFromNBTHookTypes.remove(id); - overrideReadEntityFromNBTHookTypes.remove(id); - afterReadEntityFromNBTHookTypes.remove(id); - - allBaseBeforeRespawnPlayerSuperiors.remove(id); - allBaseBeforeRespawnPlayerInferiors.remove(id); - allBaseOverrideRespawnPlayerSuperiors.remove(id); - allBaseOverrideRespawnPlayerInferiors.remove(id); - allBaseAfterRespawnPlayerSuperiors.remove(id); - allBaseAfterRespawnPlayerInferiors.remove(id); - - beforeRespawnPlayerHookTypes.remove(id); - overrideRespawnPlayerHookTypes.remove(id); - afterRespawnPlayerHookTypes.remove(id); - - allBaseBeforeSetDeadSuperiors.remove(id); - allBaseBeforeSetDeadInferiors.remove(id); - allBaseOverrideSetDeadSuperiors.remove(id); - allBaseOverrideSetDeadInferiors.remove(id); - allBaseAfterSetDeadSuperiors.remove(id); - allBaseAfterSetDeadInferiors.remove(id); - - beforeSetDeadHookTypes.remove(id); - overrideSetDeadHookTypes.remove(id); - afterSetDeadHookTypes.remove(id); - - allBaseBeforeSetPlayerSPHealthSuperiors.remove(id); - allBaseBeforeSetPlayerSPHealthInferiors.remove(id); - allBaseOverrideSetPlayerSPHealthSuperiors.remove(id); - allBaseOverrideSetPlayerSPHealthInferiors.remove(id); - allBaseAfterSetPlayerSPHealthSuperiors.remove(id); - allBaseAfterSetPlayerSPHealthInferiors.remove(id); - - beforeSetPlayerSPHealthHookTypes.remove(id); - overrideSetPlayerSPHealthHookTypes.remove(id); - afterSetPlayerSPHealthHookTypes.remove(id); - - allBaseBeforeSetPositionAndRotationSuperiors.remove(id); - allBaseBeforeSetPositionAndRotationInferiors.remove(id); - allBaseOverrideSetPositionAndRotationSuperiors.remove(id); - allBaseOverrideSetPositionAndRotationInferiors.remove(id); - allBaseAfterSetPositionAndRotationSuperiors.remove(id); - allBaseAfterSetPositionAndRotationInferiors.remove(id); - - beforeSetPositionAndRotationHookTypes.remove(id); - overrideSetPositionAndRotationHookTypes.remove(id); - afterSetPositionAndRotationHookTypes.remove(id); - - allBaseBeforeSetSneakingSuperiors.remove(id); - allBaseBeforeSetSneakingInferiors.remove(id); - allBaseOverrideSetSneakingSuperiors.remove(id); - allBaseOverrideSetSneakingInferiors.remove(id); - allBaseAfterSetSneakingSuperiors.remove(id); - allBaseAfterSetSneakingInferiors.remove(id); - - beforeSetSneakingHookTypes.remove(id); - overrideSetSneakingHookTypes.remove(id); - afterSetSneakingHookTypes.remove(id); - - allBaseBeforeSetSprintingSuperiors.remove(id); - allBaseBeforeSetSprintingInferiors.remove(id); - allBaseOverrideSetSprintingSuperiors.remove(id); - allBaseOverrideSetSprintingInferiors.remove(id); - allBaseAfterSetSprintingSuperiors.remove(id); - allBaseAfterSetSprintingInferiors.remove(id); - - beforeSetSprintingHookTypes.remove(id); - overrideSetSprintingHookTypes.remove(id); - afterSetSprintingHookTypes.remove(id); - - allBaseBeforeTrySleepSuperiors.remove(id); - allBaseBeforeTrySleepInferiors.remove(id); - allBaseOverrideTrySleepSuperiors.remove(id); - allBaseOverrideTrySleepInferiors.remove(id); - allBaseAfterTrySleepSuperiors.remove(id); - allBaseAfterTrySleepInferiors.remove(id); - - beforeTrySleepHookTypes.remove(id); - overrideTrySleepHookTypes.remove(id); - afterTrySleepHookTypes.remove(id); - - allBaseBeforeSwingItemSuperiors.remove(id); - allBaseBeforeSwingItemInferiors.remove(id); - allBaseOverrideSwingItemSuperiors.remove(id); - allBaseOverrideSwingItemInferiors.remove(id); - allBaseAfterSwingItemSuperiors.remove(id); - allBaseAfterSwingItemInferiors.remove(id); - - beforeSwingItemHookTypes.remove(id); - overrideSwingItemHookTypes.remove(id); - afterSwingItemHookTypes.remove(id); - - allBaseBeforeUpdateEntityActionStateSuperiors.remove(id); - allBaseBeforeUpdateEntityActionStateInferiors.remove(id); - allBaseOverrideUpdateEntityActionStateSuperiors.remove(id); - allBaseOverrideUpdateEntityActionStateInferiors.remove(id); - allBaseAfterUpdateEntityActionStateSuperiors.remove(id); - allBaseAfterUpdateEntityActionStateInferiors.remove(id); - - beforeUpdateEntityActionStateHookTypes.remove(id); - overrideUpdateEntityActionStateHookTypes.remove(id); - afterUpdateEntityActionStateHookTypes.remove(id); - - allBaseBeforeUpdateRiddenSuperiors.remove(id); - allBaseBeforeUpdateRiddenInferiors.remove(id); - allBaseOverrideUpdateRiddenSuperiors.remove(id); - allBaseOverrideUpdateRiddenInferiors.remove(id); - allBaseAfterUpdateRiddenSuperiors.remove(id); - allBaseAfterUpdateRiddenInferiors.remove(id); - - beforeUpdateRiddenHookTypes.remove(id); - overrideUpdateRiddenHookTypes.remove(id); - afterUpdateRiddenHookTypes.remove(id); - - allBaseBeforeWakeUpPlayerSuperiors.remove(id); - allBaseBeforeWakeUpPlayerInferiors.remove(id); - allBaseOverrideWakeUpPlayerSuperiors.remove(id); - allBaseOverrideWakeUpPlayerInferiors.remove(id); - allBaseAfterWakeUpPlayerSuperiors.remove(id); - allBaseAfterWakeUpPlayerInferiors.remove(id); - - beforeWakeUpPlayerHookTypes.remove(id); - overrideWakeUpPlayerHookTypes.remove(id); - afterWakeUpPlayerHookTypes.remove(id); - - allBaseBeforeWriteEntityToNBTSuperiors.remove(id); - allBaseBeforeWriteEntityToNBTInferiors.remove(id); - allBaseOverrideWriteEntityToNBTSuperiors.remove(id); - allBaseOverrideWriteEntityToNBTInferiors.remove(id); - allBaseAfterWriteEntityToNBTSuperiors.remove(id); - allBaseAfterWriteEntityToNBTInferiors.remove(id); - - beforeWriteEntityToNBTHookTypes.remove(id); - overrideWriteEntityToNBTHookTypes.remove(id); - afterWriteEntityToNBTHookTypes.remove(id); - - for(IClientPlayerAPI instance : getAllInstancesList()) - instance.getClientPlayerAPI().updateClientPlayerBases(); - - Iterator 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(beforeDisplayGuiHookTypes, allBaseBeforeDisplayGuiSuperiors, allBaseBeforeDisplayGuiInferiors, "beforeDisplayGui"); - sortBases(overrideDisplayGuiHookTypes, allBaseOverrideDisplayGuiSuperiors, allBaseOverrideDisplayGuiInferiors, "overrideDisplayGui"); - sortBases(afterDisplayGuiHookTypes, allBaseAfterDisplayGuiSuperiors, allBaseAfterDisplayGuiInferiors, "afterDisplayGui"); - - sortBases(beforeDisplayGUIChestHookTypes, allBaseBeforeDisplayGUIChestSuperiors, allBaseBeforeDisplayGUIChestInferiors, "beforeDisplayGUIChest"); - sortBases(overrideDisplayGUIChestHookTypes, allBaseOverrideDisplayGUIChestSuperiors, allBaseOverrideDisplayGUIChestInferiors, "overrideDisplayGUIChest"); - sortBases(afterDisplayGUIChestHookTypes, allBaseAfterDisplayGUIChestSuperiors, allBaseAfterDisplayGUIChestInferiors, "afterDisplayGUIChest"); - - sortBases(beforeDropItemHookTypes, allBaseBeforeDropItemSuperiors, allBaseBeforeDropItemInferiors, "beforeDropItem"); - sortBases(overrideDropItemHookTypes, allBaseOverrideDropItemSuperiors, allBaseOverrideDropItemInferiors, "overrideDropItem"); - sortBases(afterDropItemHookTypes, allBaseAfterDropItemSuperiors, allBaseAfterDropItemInferiors, "afterDropItem"); - - sortBases(beforeDropOneItemHookTypes, allBaseBeforeDropOneItemSuperiors, allBaseBeforeDropOneItemInferiors, "beforeDropOneItem"); - sortBases(overrideDropOneItemHookTypes, allBaseOverrideDropOneItemSuperiors, allBaseOverrideDropOneItemInferiors, "overrideDropOneItem"); - sortBases(afterDropOneItemHookTypes, allBaseAfterDropOneItemSuperiors, allBaseAfterDropOneItemInferiors, "afterDropOneItem"); - - sortBases(beforeDropPlayerItemWithRandomChoiceHookTypes, allBaseBeforeDropPlayerItemWithRandomChoiceSuperiors, allBaseBeforeDropPlayerItemWithRandomChoiceInferiors, "beforeDropPlayerItemWithRandomChoice"); - sortBases(overrideDropPlayerItemWithRandomChoiceHookTypes, allBaseOverrideDropPlayerItemWithRandomChoiceSuperiors, allBaseOverrideDropPlayerItemWithRandomChoiceInferiors, "overrideDropPlayerItemWithRandomChoice"); - sortBases(afterDropPlayerItemWithRandomChoiceHookTypes, allBaseAfterDropPlayerItemWithRandomChoiceSuperiors, allBaseAfterDropPlayerItemWithRandomChoiceInferiors, "afterDropPlayerItemWithRandomChoice"); - - sortBases(beforeFallHookTypes, allBaseBeforeFallSuperiors, allBaseBeforeFallInferiors, "beforeFall"); - sortBases(overrideFallHookTypes, allBaseOverrideFallSuperiors, allBaseOverrideFallInferiors, "overrideFall"); - sortBases(afterFallHookTypes, allBaseAfterFallSuperiors, allBaseAfterFallInferiors, "afterFall"); - - sortBases(beforeGetAIMoveSpeedHookTypes, allBaseBeforeGetAIMoveSpeedSuperiors, allBaseBeforeGetAIMoveSpeedInferiors, "beforeGetAIMoveSpeed"); - sortBases(overrideGetAIMoveSpeedHookTypes, allBaseOverrideGetAIMoveSpeedSuperiors, allBaseOverrideGetAIMoveSpeedInferiors, "overrideGetAIMoveSpeed"); - sortBases(afterGetAIMoveSpeedHookTypes, allBaseAfterGetAIMoveSpeedSuperiors, allBaseAfterGetAIMoveSpeedInferiors, "afterGetAIMoveSpeed"); - - sortBases(beforeGetBedOrientationInDegreesHookTypes, allBaseBeforeGetBedOrientationInDegreesSuperiors, allBaseBeforeGetBedOrientationInDegreesInferiors, "beforeGetBedOrientationInDegrees"); - sortBases(overrideGetBedOrientationInDegreesHookTypes, allBaseOverrideGetBedOrientationInDegreesSuperiors, allBaseOverrideGetBedOrientationInDegreesInferiors, "overrideGetBedOrientationInDegrees"); - sortBases(afterGetBedOrientationInDegreesHookTypes, allBaseAfterGetBedOrientationInDegreesSuperiors, allBaseAfterGetBedOrientationInDegreesInferiors, "afterGetBedOrientationInDegrees"); - - sortBases(beforeGetBrightnessHookTypes, allBaseBeforeGetBrightnessSuperiors, allBaseBeforeGetBrightnessInferiors, "beforeGetBrightness"); - sortBases(overrideGetBrightnessHookTypes, allBaseOverrideGetBrightnessSuperiors, allBaseOverrideGetBrightnessInferiors, "overrideGetBrightness"); - sortBases(afterGetBrightnessHookTypes, allBaseAfterGetBrightnessSuperiors, allBaseAfterGetBrightnessInferiors, "afterGetBrightness"); - - sortBases(beforeGetBrightnessForRenderHookTypes, allBaseBeforeGetBrightnessForRenderSuperiors, allBaseBeforeGetBrightnessForRenderInferiors, "beforeGetBrightnessForRender"); - sortBases(overrideGetBrightnessForRenderHookTypes, allBaseOverrideGetBrightnessForRenderSuperiors, allBaseOverrideGetBrightnessForRenderInferiors, "overrideGetBrightnessForRender"); - sortBases(afterGetBrightnessForRenderHookTypes, allBaseAfterGetBrightnessForRenderSuperiors, allBaseAfterGetBrightnessForRenderInferiors, "afterGetBrightnessForRender"); - - sortBases(beforeGetBreakSpeedHookTypes, allBaseBeforeGetBreakSpeedSuperiors, allBaseBeforeGetBreakSpeedInferiors, "beforeGetBreakSpeed"); - sortBases(overrideGetBreakSpeedHookTypes, allBaseOverrideGetBreakSpeedSuperiors, allBaseOverrideGetBreakSpeedInferiors, "overrideGetBreakSpeed"); - sortBases(afterGetBreakSpeedHookTypes, allBaseAfterGetBreakSpeedSuperiors, allBaseAfterGetBreakSpeedInferiors, "afterGetBreakSpeed"); - - sortBases(beforeGetDistanceSqHookTypes, allBaseBeforeGetDistanceSqSuperiors, allBaseBeforeGetDistanceSqInferiors, "beforeGetDistanceSq"); - sortBases(overrideGetDistanceSqHookTypes, allBaseOverrideGetDistanceSqSuperiors, allBaseOverrideGetDistanceSqInferiors, "overrideGetDistanceSq"); - sortBases(afterGetDistanceSqHookTypes, allBaseAfterGetDistanceSqSuperiors, allBaseAfterGetDistanceSqInferiors, "afterGetDistanceSq"); - - sortBases(beforeGetDistanceSqToEntityHookTypes, allBaseBeforeGetDistanceSqToEntitySuperiors, allBaseBeforeGetDistanceSqToEntityInferiors, "beforeGetDistanceSqToEntity"); - sortBases(overrideGetDistanceSqToEntityHookTypes, allBaseOverrideGetDistanceSqToEntitySuperiors, allBaseOverrideGetDistanceSqToEntityInferiors, "overrideGetDistanceSqToEntity"); - sortBases(afterGetDistanceSqToEntityHookTypes, allBaseAfterGetDistanceSqToEntitySuperiors, allBaseAfterGetDistanceSqToEntityInferiors, "afterGetDistanceSqToEntity"); - - sortBases(beforeGetFovModifierHookTypes, allBaseBeforeGetFovModifierSuperiors, allBaseBeforeGetFovModifierInferiors, "beforeGetFovModifier"); - sortBases(overrideGetFovModifierHookTypes, allBaseOverrideGetFovModifierSuperiors, allBaseOverrideGetFovModifierInferiors, "overrideGetFovModifier"); - sortBases(afterGetFovModifierHookTypes, allBaseAfterGetFovModifierSuperiors, allBaseAfterGetFovModifierInferiors, "afterGetFovModifier"); - - sortBases(beforeGetHurtSoundHookTypes, allBaseBeforeGetHurtSoundSuperiors, allBaseBeforeGetHurtSoundInferiors, "beforeGetHurtSound"); - sortBases(overrideGetHurtSoundHookTypes, allBaseOverrideGetHurtSoundSuperiors, allBaseOverrideGetHurtSoundInferiors, "overrideGetHurtSound"); - sortBases(afterGetHurtSoundHookTypes, allBaseAfterGetHurtSoundSuperiors, allBaseAfterGetHurtSoundInferiors, "afterGetHurtSound"); - - sortBases(beforeGetNameHookTypes, allBaseBeforeGetNameSuperiors, allBaseBeforeGetNameInferiors, "beforeGetName"); - sortBases(overrideGetNameHookTypes, allBaseOverrideGetNameSuperiors, allBaseOverrideGetNameInferiors, "overrideGetName"); - sortBases(afterGetNameHookTypes, allBaseAfterGetNameSuperiors, allBaseAfterGetNameInferiors, "afterGetName"); - - sortBases(beforeGetSleepTimerHookTypes, allBaseBeforeGetSleepTimerSuperiors, allBaseBeforeGetSleepTimerInferiors, "beforeGetSleepTimer"); - sortBases(overrideGetSleepTimerHookTypes, allBaseOverrideGetSleepTimerSuperiors, allBaseOverrideGetSleepTimerInferiors, "overrideGetSleepTimer"); - sortBases(afterGetSleepTimerHookTypes, allBaseAfterGetSleepTimerSuperiors, allBaseAfterGetSleepTimerInferiors, "afterGetSleepTimer"); - - sortBases(beforeHandleWaterMovementHookTypes, allBaseBeforeHandleWaterMovementSuperiors, allBaseBeforeHandleWaterMovementInferiors, "beforeHandleWaterMovement"); - sortBases(overrideHandleWaterMovementHookTypes, allBaseOverrideHandleWaterMovementSuperiors, allBaseOverrideHandleWaterMovementInferiors, "overrideHandleWaterMovement"); - sortBases(afterHandleWaterMovementHookTypes, allBaseAfterHandleWaterMovementSuperiors, allBaseAfterHandleWaterMovementInferiors, "afterHandleWaterMovement"); - - sortBases(beforeHealHookTypes, allBaseBeforeHealSuperiors, allBaseBeforeHealInferiors, "beforeHeal"); - sortBases(overrideHealHookTypes, allBaseOverrideHealSuperiors, allBaseOverrideHealInferiors, "overrideHeal"); - sortBases(afterHealHookTypes, allBaseAfterHealSuperiors, allBaseAfterHealInferiors, "afterHeal"); - - sortBases(beforeIsEntityInsideOpaqueBlockHookTypes, allBaseBeforeIsEntityInsideOpaqueBlockSuperiors, allBaseBeforeIsEntityInsideOpaqueBlockInferiors, "beforeIsEntityInsideOpaqueBlock"); - sortBases(overrideIsEntityInsideOpaqueBlockHookTypes, allBaseOverrideIsEntityInsideOpaqueBlockSuperiors, allBaseOverrideIsEntityInsideOpaqueBlockInferiors, "overrideIsEntityInsideOpaqueBlock"); - sortBases(afterIsEntityInsideOpaqueBlockHookTypes, allBaseAfterIsEntityInsideOpaqueBlockSuperiors, allBaseAfterIsEntityInsideOpaqueBlockInferiors, "afterIsEntityInsideOpaqueBlock"); - - sortBases(beforeIsInWaterHookTypes, allBaseBeforeIsInWaterSuperiors, allBaseBeforeIsInWaterInferiors, "beforeIsInWater"); - sortBases(overrideIsInWaterHookTypes, allBaseOverrideIsInWaterSuperiors, allBaseOverrideIsInWaterInferiors, "overrideIsInWater"); - sortBases(afterIsInWaterHookTypes, allBaseAfterIsInWaterSuperiors, allBaseAfterIsInWaterInferiors, "afterIsInWater"); - - sortBases(beforeIsInsideOfMaterialHookTypes, allBaseBeforeIsInsideOfMaterialSuperiors, allBaseBeforeIsInsideOfMaterialInferiors, "beforeIsInsideOfMaterial"); - sortBases(overrideIsInsideOfMaterialHookTypes, allBaseOverrideIsInsideOfMaterialSuperiors, allBaseOverrideIsInsideOfMaterialInferiors, "overrideIsInsideOfMaterial"); - sortBases(afterIsInsideOfMaterialHookTypes, allBaseAfterIsInsideOfMaterialSuperiors, allBaseAfterIsInsideOfMaterialInferiors, "afterIsInsideOfMaterial"); - - sortBases(beforeIsOnLadderHookTypes, allBaseBeforeIsOnLadderSuperiors, allBaseBeforeIsOnLadderInferiors, "beforeIsOnLadder"); - sortBases(overrideIsOnLadderHookTypes, allBaseOverrideIsOnLadderSuperiors, allBaseOverrideIsOnLadderInferiors, "overrideIsOnLadder"); - sortBases(afterIsOnLadderHookTypes, allBaseAfterIsOnLadderSuperiors, allBaseAfterIsOnLadderInferiors, "afterIsOnLadder"); - - sortBases(beforeIsPlayerSleepingHookTypes, allBaseBeforeIsPlayerSleepingSuperiors, allBaseBeforeIsPlayerSleepingInferiors, "beforeIsPlayerSleeping"); - sortBases(overrideIsPlayerSleepingHookTypes, allBaseOverrideIsPlayerSleepingSuperiors, allBaseOverrideIsPlayerSleepingInferiors, "overrideIsPlayerSleeping"); - sortBases(afterIsPlayerSleepingHookTypes, allBaseAfterIsPlayerSleepingSuperiors, allBaseAfterIsPlayerSleepingInferiors, "afterIsPlayerSleeping"); - - sortBases(beforeIsSneakingHookTypes, allBaseBeforeIsSneakingSuperiors, allBaseBeforeIsSneakingInferiors, "beforeIsSneaking"); - sortBases(overrideIsSneakingHookTypes, allBaseOverrideIsSneakingSuperiors, allBaseOverrideIsSneakingInferiors, "overrideIsSneaking"); - sortBases(afterIsSneakingHookTypes, allBaseAfterIsSneakingSuperiors, allBaseAfterIsSneakingInferiors, "afterIsSneaking"); - - sortBases(beforeIsSprintingHookTypes, allBaseBeforeIsSprintingSuperiors, allBaseBeforeIsSprintingInferiors, "beforeIsSprinting"); - sortBases(overrideIsSprintingHookTypes, allBaseOverrideIsSprintingSuperiors, allBaseOverrideIsSprintingInferiors, "overrideIsSprinting"); - sortBases(afterIsSprintingHookTypes, allBaseAfterIsSprintingSuperiors, allBaseAfterIsSprintingInferiors, "afterIsSprinting"); - - sortBases(beforeJumpHookTypes, allBaseBeforeJumpSuperiors, allBaseBeforeJumpInferiors, "beforeJump"); - sortBases(overrideJumpHookTypes, allBaseOverrideJumpSuperiors, allBaseOverrideJumpInferiors, "overrideJump"); - sortBases(afterJumpHookTypes, allBaseAfterJumpSuperiors, allBaseAfterJumpInferiors, "afterJump"); - - sortBases(beforeKnockBackHookTypes, allBaseBeforeKnockBackSuperiors, allBaseBeforeKnockBackInferiors, "beforeKnockBack"); - sortBases(overrideKnockBackHookTypes, allBaseOverrideKnockBackSuperiors, allBaseOverrideKnockBackInferiors, "overrideKnockBack"); - sortBases(afterKnockBackHookTypes, allBaseAfterKnockBackSuperiors, allBaseAfterKnockBackInferiors, "afterKnockBack"); - - sortBases(beforeMoveEntityHookTypes, allBaseBeforeMoveEntitySuperiors, allBaseBeforeMoveEntityInferiors, "beforeMoveEntity"); - sortBases(overrideMoveEntityHookTypes, allBaseOverrideMoveEntitySuperiors, allBaseOverrideMoveEntityInferiors, "overrideMoveEntity"); - sortBases(afterMoveEntityHookTypes, allBaseAfterMoveEntitySuperiors, allBaseAfterMoveEntityInferiors, "afterMoveEntity"); - - sortBases(beforeMoveEntityWithHeadingHookTypes, allBaseBeforeMoveEntityWithHeadingSuperiors, allBaseBeforeMoveEntityWithHeadingInferiors, "beforeMoveEntityWithHeading"); - sortBases(overrideMoveEntityWithHeadingHookTypes, allBaseOverrideMoveEntityWithHeadingSuperiors, allBaseOverrideMoveEntityWithHeadingInferiors, "overrideMoveEntityWithHeading"); - sortBases(afterMoveEntityWithHeadingHookTypes, allBaseAfterMoveEntityWithHeadingSuperiors, allBaseAfterMoveEntityWithHeadingInferiors, "afterMoveEntityWithHeading"); - - sortBases(beforeMoveFlyingHookTypes, allBaseBeforeMoveFlyingSuperiors, allBaseBeforeMoveFlyingInferiors, "beforeMoveFlying"); - sortBases(overrideMoveFlyingHookTypes, allBaseOverrideMoveFlyingSuperiors, allBaseOverrideMoveFlyingInferiors, "overrideMoveFlying"); - sortBases(afterMoveFlyingHookTypes, allBaseAfterMoveFlyingSuperiors, allBaseAfterMoveFlyingInferiors, "afterMoveFlying"); - - sortBases(beforeOnDeathHookTypes, allBaseBeforeOnDeathSuperiors, allBaseBeforeOnDeathInferiors, "beforeOnDeath"); - sortBases(overrideOnDeathHookTypes, allBaseOverrideOnDeathSuperiors, allBaseOverrideOnDeathInferiors, "overrideOnDeath"); - sortBases(afterOnDeathHookTypes, allBaseAfterOnDeathSuperiors, allBaseAfterOnDeathInferiors, "afterOnDeath"); - - sortBases(beforeOnLivingUpdateHookTypes, allBaseBeforeOnLivingUpdateSuperiors, allBaseBeforeOnLivingUpdateInferiors, "beforeOnLivingUpdate"); - sortBases(overrideOnLivingUpdateHookTypes, allBaseOverrideOnLivingUpdateSuperiors, allBaseOverrideOnLivingUpdateInferiors, "overrideOnLivingUpdate"); - sortBases(afterOnLivingUpdateHookTypes, allBaseAfterOnLivingUpdateSuperiors, allBaseAfterOnLivingUpdateInferiors, "afterOnLivingUpdate"); - - sortBases(beforeOnKillEntityHookTypes, allBaseBeforeOnKillEntitySuperiors, allBaseBeforeOnKillEntityInferiors, "beforeOnKillEntity"); - sortBases(overrideOnKillEntityHookTypes, allBaseOverrideOnKillEntitySuperiors, allBaseOverrideOnKillEntityInferiors, "overrideOnKillEntity"); - sortBases(afterOnKillEntityHookTypes, allBaseAfterOnKillEntitySuperiors, allBaseAfterOnKillEntityInferiors, "afterOnKillEntity"); - - sortBases(beforeOnStruckByLightningHookTypes, allBaseBeforeOnStruckByLightningSuperiors, allBaseBeforeOnStruckByLightningInferiors, "beforeOnStruckByLightning"); - sortBases(overrideOnStruckByLightningHookTypes, allBaseOverrideOnStruckByLightningSuperiors, allBaseOverrideOnStruckByLightningInferiors, "overrideOnStruckByLightning"); - sortBases(afterOnStruckByLightningHookTypes, allBaseAfterOnStruckByLightningSuperiors, allBaseAfterOnStruckByLightningInferiors, "afterOnStruckByLightning"); - - sortBases(beforeOnUpdateHookTypes, allBaseBeforeOnUpdateSuperiors, allBaseBeforeOnUpdateInferiors, "beforeOnUpdate"); - sortBases(overrideOnUpdateHookTypes, allBaseOverrideOnUpdateSuperiors, allBaseOverrideOnUpdateInferiors, "overrideOnUpdate"); - sortBases(afterOnUpdateHookTypes, allBaseAfterOnUpdateSuperiors, allBaseAfterOnUpdateInferiors, "afterOnUpdate"); - - sortBases(beforePlayStepSoundHookTypes, allBaseBeforePlayStepSoundSuperiors, allBaseBeforePlayStepSoundInferiors, "beforePlayStepSound"); - sortBases(overridePlayStepSoundHookTypes, allBaseOverridePlayStepSoundSuperiors, allBaseOverridePlayStepSoundInferiors, "overridePlayStepSound"); - sortBases(afterPlayStepSoundHookTypes, allBaseAfterPlayStepSoundSuperiors, allBaseAfterPlayStepSoundInferiors, "afterPlayStepSound"); - - sortBases(beforePushOutOfBlocksHookTypes, allBaseBeforePushOutOfBlocksSuperiors, allBaseBeforePushOutOfBlocksInferiors, "beforePushOutOfBlocks"); - sortBases(overridePushOutOfBlocksHookTypes, allBaseOverridePushOutOfBlocksSuperiors, allBaseOverridePushOutOfBlocksInferiors, "overridePushOutOfBlocks"); - sortBases(afterPushOutOfBlocksHookTypes, allBaseAfterPushOutOfBlocksSuperiors, allBaseAfterPushOutOfBlocksInferiors, "afterPushOutOfBlocks"); - - sortBases(beforeRayTraceHookTypes, allBaseBeforeRayTraceSuperiors, allBaseBeforeRayTraceInferiors, "beforeRayTrace"); - sortBases(overrideRayTraceHookTypes, allBaseOverrideRayTraceSuperiors, allBaseOverrideRayTraceInferiors, "overrideRayTrace"); - sortBases(afterRayTraceHookTypes, allBaseAfterRayTraceSuperiors, allBaseAfterRayTraceInferiors, "afterRayTrace"); - - sortBases(beforeReadEntityFromNBTHookTypes, allBaseBeforeReadEntityFromNBTSuperiors, allBaseBeforeReadEntityFromNBTInferiors, "beforeReadEntityFromNBT"); - sortBases(overrideReadEntityFromNBTHookTypes, allBaseOverrideReadEntityFromNBTSuperiors, allBaseOverrideReadEntityFromNBTInferiors, "overrideReadEntityFromNBT"); - sortBases(afterReadEntityFromNBTHookTypes, allBaseAfterReadEntityFromNBTSuperiors, allBaseAfterReadEntityFromNBTInferiors, "afterReadEntityFromNBT"); - - sortBases(beforeRespawnPlayerHookTypes, allBaseBeforeRespawnPlayerSuperiors, allBaseBeforeRespawnPlayerInferiors, "beforeRespawnPlayer"); - sortBases(overrideRespawnPlayerHookTypes, allBaseOverrideRespawnPlayerSuperiors, allBaseOverrideRespawnPlayerInferiors, "overrideRespawnPlayer"); - sortBases(afterRespawnPlayerHookTypes, allBaseAfterRespawnPlayerSuperiors, allBaseAfterRespawnPlayerInferiors, "afterRespawnPlayer"); - - sortBases(beforeSetDeadHookTypes, allBaseBeforeSetDeadSuperiors, allBaseBeforeSetDeadInferiors, "beforeSetDead"); - sortBases(overrideSetDeadHookTypes, allBaseOverrideSetDeadSuperiors, allBaseOverrideSetDeadInferiors, "overrideSetDead"); - sortBases(afterSetDeadHookTypes, allBaseAfterSetDeadSuperiors, allBaseAfterSetDeadInferiors, "afterSetDead"); - - sortBases(beforeSetPlayerSPHealthHookTypes, allBaseBeforeSetPlayerSPHealthSuperiors, allBaseBeforeSetPlayerSPHealthInferiors, "beforeSetPlayerSPHealth"); - sortBases(overrideSetPlayerSPHealthHookTypes, allBaseOverrideSetPlayerSPHealthSuperiors, allBaseOverrideSetPlayerSPHealthInferiors, "overrideSetPlayerSPHealth"); - sortBases(afterSetPlayerSPHealthHookTypes, allBaseAfterSetPlayerSPHealthSuperiors, allBaseAfterSetPlayerSPHealthInferiors, "afterSetPlayerSPHealth"); - - sortBases(beforeSetPositionAndRotationHookTypes, allBaseBeforeSetPositionAndRotationSuperiors, allBaseBeforeSetPositionAndRotationInferiors, "beforeSetPositionAndRotation"); - sortBases(overrideSetPositionAndRotationHookTypes, allBaseOverrideSetPositionAndRotationSuperiors, allBaseOverrideSetPositionAndRotationInferiors, "overrideSetPositionAndRotation"); - sortBases(afterSetPositionAndRotationHookTypes, allBaseAfterSetPositionAndRotationSuperiors, allBaseAfterSetPositionAndRotationInferiors, "afterSetPositionAndRotation"); - - sortBases(beforeSetSneakingHookTypes, allBaseBeforeSetSneakingSuperiors, allBaseBeforeSetSneakingInferiors, "beforeSetSneaking"); - sortBases(overrideSetSneakingHookTypes, allBaseOverrideSetSneakingSuperiors, allBaseOverrideSetSneakingInferiors, "overrideSetSneaking"); - sortBases(afterSetSneakingHookTypes, allBaseAfterSetSneakingSuperiors, allBaseAfterSetSneakingInferiors, "afterSetSneaking"); - - sortBases(beforeSetSprintingHookTypes, allBaseBeforeSetSprintingSuperiors, allBaseBeforeSetSprintingInferiors, "beforeSetSprinting"); - sortBases(overrideSetSprintingHookTypes, allBaseOverrideSetSprintingSuperiors, allBaseOverrideSetSprintingInferiors, "overrideSetSprinting"); - sortBases(afterSetSprintingHookTypes, allBaseAfterSetSprintingSuperiors, allBaseAfterSetSprintingInferiors, "afterSetSprinting"); - - sortBases(beforeTrySleepHookTypes, allBaseBeforeTrySleepSuperiors, allBaseBeforeTrySleepInferiors, "beforeTrySleep"); - sortBases(overrideTrySleepHookTypes, allBaseOverrideTrySleepSuperiors, allBaseOverrideTrySleepInferiors, "overrideTrySleep"); - sortBases(afterTrySleepHookTypes, allBaseAfterTrySleepSuperiors, allBaseAfterTrySleepInferiors, "afterTrySleep"); - - sortBases(beforeSwingItemHookTypes, allBaseBeforeSwingItemSuperiors, allBaseBeforeSwingItemInferiors, "beforeSwingItem"); - sortBases(overrideSwingItemHookTypes, allBaseOverrideSwingItemSuperiors, allBaseOverrideSwingItemInferiors, "overrideSwingItem"); - sortBases(afterSwingItemHookTypes, allBaseAfterSwingItemSuperiors, allBaseAfterSwingItemInferiors, "afterSwingItem"); - - sortBases(beforeUpdateEntityActionStateHookTypes, allBaseBeforeUpdateEntityActionStateSuperiors, allBaseBeforeUpdateEntityActionStateInferiors, "beforeUpdateEntityActionState"); - sortBases(overrideUpdateEntityActionStateHookTypes, allBaseOverrideUpdateEntityActionStateSuperiors, allBaseOverrideUpdateEntityActionStateInferiors, "overrideUpdateEntityActionState"); - sortBases(afterUpdateEntityActionStateHookTypes, allBaseAfterUpdateEntityActionStateSuperiors, allBaseAfterUpdateEntityActionStateInferiors, "afterUpdateEntityActionState"); - - sortBases(beforeUpdateRiddenHookTypes, allBaseBeforeUpdateRiddenSuperiors, allBaseBeforeUpdateRiddenInferiors, "beforeUpdateRidden"); - sortBases(overrideUpdateRiddenHookTypes, allBaseOverrideUpdateRiddenSuperiors, allBaseOverrideUpdateRiddenInferiors, "overrideUpdateRidden"); - sortBases(afterUpdateRiddenHookTypes, allBaseAfterUpdateRiddenSuperiors, allBaseAfterUpdateRiddenInferiors, "afterUpdateRidden"); - - sortBases(beforeWakeUpPlayerHookTypes, allBaseBeforeWakeUpPlayerSuperiors, allBaseBeforeWakeUpPlayerInferiors, "beforeWakeUpPlayer"); - sortBases(overrideWakeUpPlayerHookTypes, allBaseOverrideWakeUpPlayerSuperiors, allBaseOverrideWakeUpPlayerInferiors, "overrideWakeUpPlayer"); - sortBases(afterWakeUpPlayerHookTypes, allBaseAfterWakeUpPlayerSuperiors, allBaseAfterWakeUpPlayerInferiors, "afterWakeUpPlayer"); - - sortBases(beforeWriteEntityToNBTHookTypes, allBaseBeforeWriteEntityToNBTSuperiors, allBaseBeforeWriteEntityToNBTInferiors, "beforeWriteEntityToNBT"); - sortBases(overrideWriteEntityToNBTHookTypes, allBaseOverrideWriteEntityToNBTSuperiors, allBaseOverrideWriteEntityToNBTInferiors, "overrideWriteEntityToNBT"); - sortBases(afterWriteEntityToNBTHookTypes, allBaseAfterWriteEntityToNBTSuperiors, allBaseAfterWriteEntityToNBTInferiors, "afterWriteEntityToNBT"); - - initialized = true; - } - - private static List 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.client.network.NetHandlerPlayClient paramNetHandlerPlayClient, net.minecraft.stats.StatFileWriter paramStatFileWriter) - { - ClientPlayerAPI clientPlayerAPI = clientPlayer.getClientPlayerAPI(); - if(clientPlayerAPI != null) - clientPlayerAPI.load(); - - if(clientPlayerAPI != null) - clientPlayerAPI.beforeLocalConstructing(paramMinecraft, paramWorld, paramNetHandlerPlayClient, paramStatFileWriter); - } - - public static void afterLocalConstructing(IClientPlayerAPI clientPlayer, net.minecraft.client.Minecraft paramMinecraft, net.minecraft.world.World paramWorld, net.minecraft.client.network.NetHandlerPlayClient paramNetHandlerPlayClient, net.minecraft.stats.StatFileWriter paramStatFileWriter) - { - ClientPlayerAPI clientPlayerAPI = clientPlayer.getClientPlayerAPI(); - if(clientPlayerAPI != null) - clientPlayerAPI.afterLocalConstructing(paramMinecraft, paramWorld, paramNetHandlerPlayClient, paramStatFileWriter); - } - - public static ClientPlayerBase getClientPlayerBase(IClientPlayerAPI clientPlayer, String baseId) - { - ClientPlayerAPI clientPlayerAPI = clientPlayer.getClientPlayerAPI(); - if(clientPlayerAPI != null) - return clientPlayerAPI.getClientPlayerBase(baseId); - return null; - } - - public static Set 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; - - beforeDisplayGuiHooks = create(beforeDisplayGuiHookTypes); - overrideDisplayGuiHooks = create(overrideDisplayGuiHookTypes); - afterDisplayGuiHooks = create(afterDisplayGuiHookTypes); - isDisplayGuiModded = - beforeDisplayGuiHooks != null || - overrideDisplayGuiHooks != null || - afterDisplayGuiHooks != null; - - beforeDisplayGUIChestHooks = create(beforeDisplayGUIChestHookTypes); - overrideDisplayGUIChestHooks = create(overrideDisplayGUIChestHookTypes); - afterDisplayGUIChestHooks = create(afterDisplayGUIChestHookTypes); - isDisplayGUIChestModded = - beforeDisplayGUIChestHooks != null || - overrideDisplayGUIChestHooks != null || - afterDisplayGUIChestHooks != null; - - beforeDropItemHooks = create(beforeDropItemHookTypes); - overrideDropItemHooks = create(overrideDropItemHookTypes); - afterDropItemHooks = create(afterDropItemHookTypes); - isDropItemModded = - beforeDropItemHooks != null || - overrideDropItemHooks != null || - afterDropItemHooks != null; - - beforeDropOneItemHooks = create(beforeDropOneItemHookTypes); - overrideDropOneItemHooks = create(overrideDropOneItemHookTypes); - afterDropOneItemHooks = create(afterDropOneItemHookTypes); - isDropOneItemModded = - beforeDropOneItemHooks != null || - overrideDropOneItemHooks != null || - afterDropOneItemHooks != null; - - beforeDropPlayerItemWithRandomChoiceHooks = create(beforeDropPlayerItemWithRandomChoiceHookTypes); - overrideDropPlayerItemWithRandomChoiceHooks = create(overrideDropPlayerItemWithRandomChoiceHookTypes); - afterDropPlayerItemWithRandomChoiceHooks = create(afterDropPlayerItemWithRandomChoiceHookTypes); - isDropPlayerItemWithRandomChoiceModded = - beforeDropPlayerItemWithRandomChoiceHooks != null || - overrideDropPlayerItemWithRandomChoiceHooks != null || - afterDropPlayerItemWithRandomChoiceHooks != null; - - beforeFallHooks = create(beforeFallHookTypes); - overrideFallHooks = create(overrideFallHookTypes); - afterFallHooks = create(afterFallHookTypes); - isFallModded = - beforeFallHooks != null || - overrideFallHooks != null || - afterFallHooks != null; - - beforeGetAIMoveSpeedHooks = create(beforeGetAIMoveSpeedHookTypes); - overrideGetAIMoveSpeedHooks = create(overrideGetAIMoveSpeedHookTypes); - afterGetAIMoveSpeedHooks = create(afterGetAIMoveSpeedHookTypes); - isGetAIMoveSpeedModded = - beforeGetAIMoveSpeedHooks != null || - overrideGetAIMoveSpeedHooks != null || - afterGetAIMoveSpeedHooks != null; - - beforeGetBedOrientationInDegreesHooks = create(beforeGetBedOrientationInDegreesHookTypes); - overrideGetBedOrientationInDegreesHooks = create(overrideGetBedOrientationInDegreesHookTypes); - afterGetBedOrientationInDegreesHooks = create(afterGetBedOrientationInDegreesHookTypes); - isGetBedOrientationInDegreesModded = - beforeGetBedOrientationInDegreesHooks != null || - overrideGetBedOrientationInDegreesHooks != null || - afterGetBedOrientationInDegreesHooks != null; - - beforeGetBrightnessHooks = create(beforeGetBrightnessHookTypes); - overrideGetBrightnessHooks = create(overrideGetBrightnessHookTypes); - afterGetBrightnessHooks = create(afterGetBrightnessHookTypes); - isGetBrightnessModded = - beforeGetBrightnessHooks != null || - overrideGetBrightnessHooks != null || - afterGetBrightnessHooks != null; - - beforeGetBrightnessForRenderHooks = create(beforeGetBrightnessForRenderHookTypes); - overrideGetBrightnessForRenderHooks = create(overrideGetBrightnessForRenderHookTypes); - afterGetBrightnessForRenderHooks = create(afterGetBrightnessForRenderHookTypes); - isGetBrightnessForRenderModded = - beforeGetBrightnessForRenderHooks != null || - overrideGetBrightnessForRenderHooks != null || - afterGetBrightnessForRenderHooks != null; - - beforeGetBreakSpeedHooks = create(beforeGetBreakSpeedHookTypes); - overrideGetBreakSpeedHooks = create(overrideGetBreakSpeedHookTypes); - afterGetBreakSpeedHooks = create(afterGetBreakSpeedHookTypes); - isGetBreakSpeedModded = - beforeGetBreakSpeedHooks != null || - overrideGetBreakSpeedHooks != null || - afterGetBreakSpeedHooks != null; - - beforeGetDistanceSqHooks = create(beforeGetDistanceSqHookTypes); - overrideGetDistanceSqHooks = create(overrideGetDistanceSqHookTypes); - afterGetDistanceSqHooks = create(afterGetDistanceSqHookTypes); - isGetDistanceSqModded = - beforeGetDistanceSqHooks != null || - overrideGetDistanceSqHooks != null || - afterGetDistanceSqHooks != null; - - beforeGetDistanceSqToEntityHooks = create(beforeGetDistanceSqToEntityHookTypes); - overrideGetDistanceSqToEntityHooks = create(overrideGetDistanceSqToEntityHookTypes); - afterGetDistanceSqToEntityHooks = create(afterGetDistanceSqToEntityHookTypes); - isGetDistanceSqToEntityModded = - beforeGetDistanceSqToEntityHooks != null || - overrideGetDistanceSqToEntityHooks != null || - afterGetDistanceSqToEntityHooks != null; - - beforeGetFovModifierHooks = create(beforeGetFovModifierHookTypes); - overrideGetFovModifierHooks = create(overrideGetFovModifierHookTypes); - afterGetFovModifierHooks = create(afterGetFovModifierHookTypes); - isGetFovModifierModded = - beforeGetFovModifierHooks != null || - overrideGetFovModifierHooks != null || - afterGetFovModifierHooks != null; - - beforeGetHurtSoundHooks = create(beforeGetHurtSoundHookTypes); - overrideGetHurtSoundHooks = create(overrideGetHurtSoundHookTypes); - afterGetHurtSoundHooks = create(afterGetHurtSoundHookTypes); - isGetHurtSoundModded = - beforeGetHurtSoundHooks != null || - overrideGetHurtSoundHooks != null || - afterGetHurtSoundHooks != null; - - beforeGetNameHooks = create(beforeGetNameHookTypes); - overrideGetNameHooks = create(overrideGetNameHookTypes); - afterGetNameHooks = create(afterGetNameHookTypes); - isGetNameModded = - beforeGetNameHooks != null || - overrideGetNameHooks != null || - afterGetNameHooks != null; - - beforeGetSleepTimerHooks = create(beforeGetSleepTimerHookTypes); - overrideGetSleepTimerHooks = create(overrideGetSleepTimerHookTypes); - afterGetSleepTimerHooks = create(afterGetSleepTimerHookTypes); - isGetSleepTimerModded = - beforeGetSleepTimerHooks != null || - overrideGetSleepTimerHooks != null || - afterGetSleepTimerHooks != null; - - beforeHandleWaterMovementHooks = create(beforeHandleWaterMovementHookTypes); - overrideHandleWaterMovementHooks = create(overrideHandleWaterMovementHookTypes); - afterHandleWaterMovementHooks = create(afterHandleWaterMovementHookTypes); - isHandleWaterMovementModded = - beforeHandleWaterMovementHooks != null || - overrideHandleWaterMovementHooks != null || - afterHandleWaterMovementHooks != null; - - beforeHealHooks = create(beforeHealHookTypes); - overrideHealHooks = create(overrideHealHookTypes); - afterHealHooks = create(afterHealHookTypes); - isHealModded = - beforeHealHooks != null || - overrideHealHooks != null || - afterHealHooks != null; - - beforeIsEntityInsideOpaqueBlockHooks = create(beforeIsEntityInsideOpaqueBlockHookTypes); - overrideIsEntityInsideOpaqueBlockHooks = create(overrideIsEntityInsideOpaqueBlockHookTypes); - afterIsEntityInsideOpaqueBlockHooks = create(afterIsEntityInsideOpaqueBlockHookTypes); - isIsEntityInsideOpaqueBlockModded = - beforeIsEntityInsideOpaqueBlockHooks != null || - overrideIsEntityInsideOpaqueBlockHooks != null || - afterIsEntityInsideOpaqueBlockHooks != null; - - beforeIsInWaterHooks = create(beforeIsInWaterHookTypes); - overrideIsInWaterHooks = create(overrideIsInWaterHookTypes); - afterIsInWaterHooks = create(afterIsInWaterHookTypes); - isIsInWaterModded = - beforeIsInWaterHooks != null || - overrideIsInWaterHooks != null || - afterIsInWaterHooks != null; - - beforeIsInsideOfMaterialHooks = create(beforeIsInsideOfMaterialHookTypes); - overrideIsInsideOfMaterialHooks = create(overrideIsInsideOfMaterialHookTypes); - afterIsInsideOfMaterialHooks = create(afterIsInsideOfMaterialHookTypes); - isIsInsideOfMaterialModded = - beforeIsInsideOfMaterialHooks != null || - overrideIsInsideOfMaterialHooks != null || - afterIsInsideOfMaterialHooks != null; - - beforeIsOnLadderHooks = create(beforeIsOnLadderHookTypes); - overrideIsOnLadderHooks = create(overrideIsOnLadderHookTypes); - afterIsOnLadderHooks = create(afterIsOnLadderHookTypes); - isIsOnLadderModded = - beforeIsOnLadderHooks != null || - overrideIsOnLadderHooks != null || - afterIsOnLadderHooks != null; - - beforeIsPlayerSleepingHooks = create(beforeIsPlayerSleepingHookTypes); - overrideIsPlayerSleepingHooks = create(overrideIsPlayerSleepingHookTypes); - afterIsPlayerSleepingHooks = create(afterIsPlayerSleepingHookTypes); - isIsPlayerSleepingModded = - beforeIsPlayerSleepingHooks != null || - overrideIsPlayerSleepingHooks != null || - afterIsPlayerSleepingHooks != null; - - beforeIsSneakingHooks = create(beforeIsSneakingHookTypes); - overrideIsSneakingHooks = create(overrideIsSneakingHookTypes); - afterIsSneakingHooks = create(afterIsSneakingHookTypes); - isIsSneakingModded = - beforeIsSneakingHooks != null || - overrideIsSneakingHooks != null || - afterIsSneakingHooks != null; - - beforeIsSprintingHooks = create(beforeIsSprintingHookTypes); - overrideIsSprintingHooks = create(overrideIsSprintingHookTypes); - afterIsSprintingHooks = create(afterIsSprintingHookTypes); - isIsSprintingModded = - beforeIsSprintingHooks != null || - overrideIsSprintingHooks != null || - afterIsSprintingHooks != null; - - beforeJumpHooks = create(beforeJumpHookTypes); - overrideJumpHooks = create(overrideJumpHookTypes); - afterJumpHooks = create(afterJumpHookTypes); - isJumpModded = - beforeJumpHooks != null || - overrideJumpHooks != null || - afterJumpHooks != null; - - beforeKnockBackHooks = create(beforeKnockBackHookTypes); - overrideKnockBackHooks = create(overrideKnockBackHookTypes); - afterKnockBackHooks = create(afterKnockBackHookTypes); - isKnockBackModded = - beforeKnockBackHooks != null || - overrideKnockBackHooks != null || - afterKnockBackHooks != null; - - beforeMoveEntityHooks = create(beforeMoveEntityHookTypes); - overrideMoveEntityHooks = create(overrideMoveEntityHookTypes); - afterMoveEntityHooks = create(afterMoveEntityHookTypes); - isMoveEntityModded = - beforeMoveEntityHooks != null || - overrideMoveEntityHooks != null || - afterMoveEntityHooks != null; - - beforeMoveEntityWithHeadingHooks = create(beforeMoveEntityWithHeadingHookTypes); - overrideMoveEntityWithHeadingHooks = create(overrideMoveEntityWithHeadingHookTypes); - afterMoveEntityWithHeadingHooks = create(afterMoveEntityWithHeadingHookTypes); - isMoveEntityWithHeadingModded = - beforeMoveEntityWithHeadingHooks != null || - overrideMoveEntityWithHeadingHooks != null || - afterMoveEntityWithHeadingHooks != null; - - beforeMoveFlyingHooks = create(beforeMoveFlyingHookTypes); - overrideMoveFlyingHooks = create(overrideMoveFlyingHookTypes); - afterMoveFlyingHooks = create(afterMoveFlyingHookTypes); - isMoveFlyingModded = - beforeMoveFlyingHooks != null || - overrideMoveFlyingHooks != null || - afterMoveFlyingHooks != null; - - beforeOnDeathHooks = create(beforeOnDeathHookTypes); - overrideOnDeathHooks = create(overrideOnDeathHookTypes); - afterOnDeathHooks = create(afterOnDeathHookTypes); - isOnDeathModded = - beforeOnDeathHooks != null || - overrideOnDeathHooks != null || - afterOnDeathHooks != null; - - beforeOnLivingUpdateHooks = create(beforeOnLivingUpdateHookTypes); - overrideOnLivingUpdateHooks = create(overrideOnLivingUpdateHookTypes); - afterOnLivingUpdateHooks = create(afterOnLivingUpdateHookTypes); - isOnLivingUpdateModded = - beforeOnLivingUpdateHooks != null || - overrideOnLivingUpdateHooks != null || - afterOnLivingUpdateHooks != null; - - beforeOnKillEntityHooks = create(beforeOnKillEntityHookTypes); - overrideOnKillEntityHooks = create(overrideOnKillEntityHookTypes); - afterOnKillEntityHooks = create(afterOnKillEntityHookTypes); - isOnKillEntityModded = - beforeOnKillEntityHooks != null || - overrideOnKillEntityHooks != null || - afterOnKillEntityHooks != null; - - beforeOnStruckByLightningHooks = create(beforeOnStruckByLightningHookTypes); - overrideOnStruckByLightningHooks = create(overrideOnStruckByLightningHookTypes); - afterOnStruckByLightningHooks = create(afterOnStruckByLightningHookTypes); - isOnStruckByLightningModded = - beforeOnStruckByLightningHooks != null || - overrideOnStruckByLightningHooks != null || - afterOnStruckByLightningHooks != null; - - beforeOnUpdateHooks = create(beforeOnUpdateHookTypes); - overrideOnUpdateHooks = create(overrideOnUpdateHookTypes); - afterOnUpdateHooks = create(afterOnUpdateHookTypes); - isOnUpdateModded = - beforeOnUpdateHooks != null || - overrideOnUpdateHooks != null || - afterOnUpdateHooks != null; - - beforePlayStepSoundHooks = create(beforePlayStepSoundHookTypes); - overridePlayStepSoundHooks = create(overridePlayStepSoundHookTypes); - afterPlayStepSoundHooks = create(afterPlayStepSoundHookTypes); - isPlayStepSoundModded = - beforePlayStepSoundHooks != null || - overridePlayStepSoundHooks != null || - afterPlayStepSoundHooks != null; - - beforePushOutOfBlocksHooks = create(beforePushOutOfBlocksHookTypes); - overridePushOutOfBlocksHooks = create(overridePushOutOfBlocksHookTypes); - afterPushOutOfBlocksHooks = create(afterPushOutOfBlocksHookTypes); - isPushOutOfBlocksModded = - beforePushOutOfBlocksHooks != null || - overridePushOutOfBlocksHooks != null || - afterPushOutOfBlocksHooks != null; - - beforeRayTraceHooks = create(beforeRayTraceHookTypes); - overrideRayTraceHooks = create(overrideRayTraceHookTypes); - afterRayTraceHooks = create(afterRayTraceHookTypes); - isRayTraceModded = - beforeRayTraceHooks != null || - overrideRayTraceHooks != null || - afterRayTraceHooks != null; - - beforeReadEntityFromNBTHooks = create(beforeReadEntityFromNBTHookTypes); - overrideReadEntityFromNBTHooks = create(overrideReadEntityFromNBTHookTypes); - afterReadEntityFromNBTHooks = create(afterReadEntityFromNBTHookTypes); - isReadEntityFromNBTModded = - beforeReadEntityFromNBTHooks != null || - overrideReadEntityFromNBTHooks != null || - afterReadEntityFromNBTHooks != null; - - beforeRespawnPlayerHooks = create(beforeRespawnPlayerHookTypes); - overrideRespawnPlayerHooks = create(overrideRespawnPlayerHookTypes); - afterRespawnPlayerHooks = create(afterRespawnPlayerHookTypes); - isRespawnPlayerModded = - beforeRespawnPlayerHooks != null || - overrideRespawnPlayerHooks != null || - afterRespawnPlayerHooks != null; - - beforeSetDeadHooks = create(beforeSetDeadHookTypes); - overrideSetDeadHooks = create(overrideSetDeadHookTypes); - afterSetDeadHooks = create(afterSetDeadHookTypes); - isSetDeadModded = - beforeSetDeadHooks != null || - overrideSetDeadHooks != null || - afterSetDeadHooks != null; - - beforeSetPlayerSPHealthHooks = create(beforeSetPlayerSPHealthHookTypes); - overrideSetPlayerSPHealthHooks = create(overrideSetPlayerSPHealthHookTypes); - afterSetPlayerSPHealthHooks = create(afterSetPlayerSPHealthHookTypes); - isSetPlayerSPHealthModded = - beforeSetPlayerSPHealthHooks != null || - overrideSetPlayerSPHealthHooks != null || - afterSetPlayerSPHealthHooks != null; - - beforeSetPositionAndRotationHooks = create(beforeSetPositionAndRotationHookTypes); - overrideSetPositionAndRotationHooks = create(overrideSetPositionAndRotationHookTypes); - afterSetPositionAndRotationHooks = create(afterSetPositionAndRotationHookTypes); - isSetPositionAndRotationModded = - beforeSetPositionAndRotationHooks != null || - overrideSetPositionAndRotationHooks != null || - afterSetPositionAndRotationHooks != null; - - beforeSetSneakingHooks = create(beforeSetSneakingHookTypes); - overrideSetSneakingHooks = create(overrideSetSneakingHookTypes); - afterSetSneakingHooks = create(afterSetSneakingHookTypes); - isSetSneakingModded = - beforeSetSneakingHooks != null || - overrideSetSneakingHooks != null || - afterSetSneakingHooks != null; - - beforeSetSprintingHooks = create(beforeSetSprintingHookTypes); - overrideSetSprintingHooks = create(overrideSetSprintingHookTypes); - afterSetSprintingHooks = create(afterSetSprintingHookTypes); - isSetSprintingModded = - beforeSetSprintingHooks != null || - overrideSetSprintingHooks != null || - afterSetSprintingHooks != null; - - beforeTrySleepHooks = create(beforeTrySleepHookTypes); - overrideTrySleepHooks = create(overrideTrySleepHookTypes); - afterTrySleepHooks = create(afterTrySleepHookTypes); - isTrySleepModded = - beforeTrySleepHooks != null || - overrideTrySleepHooks != null || - afterTrySleepHooks != null; - - beforeSwingItemHooks = create(beforeSwingItemHookTypes); - overrideSwingItemHooks = create(overrideSwingItemHookTypes); - afterSwingItemHooks = create(afterSwingItemHookTypes); - isSwingItemModded = - beforeSwingItemHooks != null || - overrideSwingItemHooks != null || - afterSwingItemHooks != null; - - beforeUpdateEntityActionStateHooks = create(beforeUpdateEntityActionStateHookTypes); - overrideUpdateEntityActionStateHooks = create(overrideUpdateEntityActionStateHookTypes); - afterUpdateEntityActionStateHooks = create(afterUpdateEntityActionStateHookTypes); - isUpdateEntityActionStateModded = - beforeUpdateEntityActionStateHooks != null || - overrideUpdateEntityActionStateHooks != null || - afterUpdateEntityActionStateHooks != null; - - beforeUpdateRiddenHooks = create(beforeUpdateRiddenHookTypes); - overrideUpdateRiddenHooks = create(overrideUpdateRiddenHookTypes); - afterUpdateRiddenHooks = create(afterUpdateRiddenHookTypes); - isUpdateRiddenModded = - beforeUpdateRiddenHooks != null || - overrideUpdateRiddenHooks != null || - afterUpdateRiddenHooks != null; - - beforeWakeUpPlayerHooks = create(beforeWakeUpPlayerHookTypes); - overrideWakeUpPlayerHooks = create(overrideWakeUpPlayerHookTypes); - afterWakeUpPlayerHooks = create(afterWakeUpPlayerHookTypes); - isWakeUpPlayerModded = - beforeWakeUpPlayerHooks != null || - overrideWakeUpPlayerHooks != null || - afterWakeUpPlayerHooks != null; - - beforeWriteEntityToNBTHooks = create(beforeWriteEntityToNBTHookTypes); - overrideWriteEntityToNBTHooks = create(overrideWriteEntityToNBTHookTypes); - afterWriteEntityToNBTHooks = create(afterWriteEntityToNBTHookTypes); - isWriteEntityToNBTModded = - beforeWriteEntityToNBTHooks != null || - overrideWriteEntityToNBTHooks != null || - afterWriteEntityToNBTHooks != null; - - } - - private void attachClientPlayerBase(String id) - { - ClientPlayerBase toAttach = createClientPlayerBase(id); - toAttach.beforeBaseAttach(true); - allBaseObjects.put(id, toAttach); - updateClientPlayerBases(); - toAttach.afterBaseAttach(true); - } - - private void detachClientPlayerBase(String id) - { - ClientPlayerBase toDetach = allBaseObjects.get(id); - toDetach.beforeBaseDetach(true); - allBaseObjects.remove(id); - toDetach.afterBaseDetach(true); - } - - private ClientPlayerBase[] create(List types) - { - if(types.isEmpty()) - return null; - - ClientPlayerBase[] result = new ClientPlayerBase[types.size()]; - for(int i = 0; i < result.length; i++) - result[i] = getClientPlayerBase(types.get(i)); - return result; - } - - private void beforeLocalConstructing(net.minecraft.client.Minecraft paramMinecraft, net.minecraft.world.World paramWorld, net.minecraft.client.network.NetHandlerPlayClient paramNetHandlerPlayClient, net.minecraft.stats.StatFileWriter paramStatFileWriter) - { - if(beforeLocalConstructingHooks != null) - for(int i = beforeLocalConstructingHooks.length - 1; i >= 0 ; i--) - beforeLocalConstructingHooks[i].beforeLocalConstructing(paramMinecraft, paramWorld, paramNetHandlerPlayClient, paramStatFileWriter); - beforeLocalConstructingHooks = null; - } - - private void afterLocalConstructing(net.minecraft.client.Minecraft paramMinecraft, net.minecraft.world.World paramWorld, net.minecraft.client.network.NetHandlerPlayClient paramNetHandlerPlayClient, net.minecraft.stats.StatFileWriter paramStatFileWriter) - { - if(afterLocalConstructingHooks != null) - for(int i = 0; i < afterLocalConstructingHooks.length; i++) - afterLocalConstructingHooks[i].afterLocalConstructing(paramMinecraft, paramWorld, paramNetHandlerPlayClient, paramStatFileWriter); - afterLocalConstructingHooks = null; - } - - public ClientPlayerBase getClientPlayerBase(String id) - { - return allBaseObjects.get(id); - } - - public Set 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, net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack) - { - boolean _result; - ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); - if(clientPlayerAPI != null && clientPlayerAPI.isCanPlayerEditModded) - _result = clientPlayerAPI.canPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - else - _result = target.localCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - return _result; - } - - private boolean canPlayerEdit(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack) - { - if(beforeCanPlayerEditHooks != null) - for(int i = beforeCanPlayerEditHooks.length - 1; i >= 0 ; i--) - beforeCanPlayerEditHooks[i].beforeCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - - boolean _result; - if(overrideCanPlayerEditHooks != null) - _result = overrideCanPlayerEditHooks[overrideCanPlayerEditHooks.length - 1].canPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - else - _result = player.localCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - - if(afterCanPlayerEditHooks != null) - for(int i = 0; i < afterCanPlayerEditHooks.length; i++) - afterCanPlayerEditHooks[i].afterCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - - return _result; - } - - protected ClientPlayerBase GetOverwrittenCanPlayerEdit(ClientPlayerBase overWriter) - { - if (overrideCanPlayerEditHooks == null) - return overWriter; - - for(int i = 0; i < overrideCanPlayerEditHooks.length; i++) - if(overrideCanPlayerEditHooks[i] == overWriter) - if(i == 0) - return null; - else - return overrideCanPlayerEditHooks[i - 1]; - - return overWriter; - } - - private final static List 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 displayGui(IClientPlayerAPI target, net.minecraft.world.IInteractionObject paramIInteractionObject) - { - ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); - if(clientPlayerAPI != null && clientPlayerAPI.isDisplayGuiModded) - clientPlayerAPI.displayGui(paramIInteractionObject); - else - target.localDisplayGui(paramIInteractionObject); - } - - private void displayGui(net.minecraft.world.IInteractionObject paramIInteractionObject) - { - if(beforeDisplayGuiHooks != null) - for(int i = beforeDisplayGuiHooks.length - 1; i >= 0 ; i--) - beforeDisplayGuiHooks[i].beforeDisplayGui(paramIInteractionObject); - - if(overrideDisplayGuiHooks != null) - overrideDisplayGuiHooks[overrideDisplayGuiHooks.length - 1].displayGui(paramIInteractionObject); - else - player.localDisplayGui(paramIInteractionObject); - - if(afterDisplayGuiHooks != null) - for(int i = 0; i < afterDisplayGuiHooks.length; i++) - afterDisplayGuiHooks[i].afterDisplayGui(paramIInteractionObject); - - } - - protected ClientPlayerBase GetOverwrittenDisplayGui(ClientPlayerBase overWriter) - { - if (overrideDisplayGuiHooks == null) - return overWriter; - - for(int i = 0; i < overrideDisplayGuiHooks.length; i++) - if(overrideDisplayGuiHooks[i] == overWriter) - if(i == 0) - return null; - else - return overrideDisplayGuiHooks[i - 1]; - - return overWriter; - } - - private final static List beforeDisplayGuiHookTypes = new LinkedList(); - private final static List overrideDisplayGuiHookTypes = new LinkedList(); - private final static List afterDisplayGuiHookTypes = new LinkedList(); - - private ClientPlayerBase[] beforeDisplayGuiHooks; - private ClientPlayerBase[] overrideDisplayGuiHooks; - private ClientPlayerBase[] afterDisplayGuiHooks; - - public boolean isDisplayGuiModded; - - private static final Map allBaseBeforeDisplayGuiSuperiors = new Hashtable(0); - private static final Map allBaseBeforeDisplayGuiInferiors = new Hashtable(0); - private static final Map allBaseOverrideDisplayGuiSuperiors = new Hashtable(0); - private static final Map allBaseOverrideDisplayGuiInferiors = new Hashtable(0); - private static final Map allBaseAfterDisplayGuiSuperiors = new Hashtable(0); - private static final Map allBaseAfterDisplayGuiInferiors = 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 net.minecraft.entity.item.EntityItem dropItem(IClientPlayerAPI target, net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2) - { - net.minecraft.entity.item.EntityItem _result; - ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); - if(clientPlayerAPI != null && clientPlayerAPI.isDropItemModded) - _result = clientPlayerAPI.dropItem(paramItemStack, paramBoolean1, paramBoolean2); - else - _result = target.localDropItem(paramItemStack, paramBoolean1, paramBoolean2); - return _result; - } - - private net.minecraft.entity.item.EntityItem dropItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2) - { - if(beforeDropItemHooks != null) - for(int i = beforeDropItemHooks.length - 1; i >= 0 ; i--) - beforeDropItemHooks[i].beforeDropItem(paramItemStack, paramBoolean1, paramBoolean2); - - net.minecraft.entity.item.EntityItem _result; - if(overrideDropItemHooks != null) - _result = overrideDropItemHooks[overrideDropItemHooks.length - 1].dropItem(paramItemStack, paramBoolean1, paramBoolean2); - else - _result = player.localDropItem(paramItemStack, paramBoolean1, paramBoolean2); - - if(afterDropItemHooks != null) - for(int i = 0; i < afterDropItemHooks.length; i++) - afterDropItemHooks[i].afterDropItem(paramItemStack, paramBoolean1, paramBoolean2); - - return _result; - } - - protected ClientPlayerBase GetOverwrittenDropItem(ClientPlayerBase overWriter) - { - if (overrideDropItemHooks == null) - return overWriter; - - for(int i = 0; i < overrideDropItemHooks.length; i++) - if(overrideDropItemHooks[i] == overWriter) - if(i == 0) - return null; - else - return overrideDropItemHooks[i - 1]; - - return overWriter; - } - - private final static List beforeDropItemHookTypes = new LinkedList(); - private final static List overrideDropItemHookTypes = new LinkedList(); - private final static List afterDropItemHookTypes = new LinkedList(); - - private ClientPlayerBase[] beforeDropItemHooks; - private ClientPlayerBase[] overrideDropItemHooks; - private ClientPlayerBase[] afterDropItemHooks; - - public boolean isDropItemModded; - - private static final Map allBaseBeforeDropItemSuperiors = new Hashtable(0); - private static final Map allBaseBeforeDropItemInferiors = new Hashtable(0); - private static final Map allBaseOverrideDropItemSuperiors = new Hashtable(0); - private static final Map allBaseOverrideDropItemInferiors = new Hashtable(0); - private static final Map allBaseAfterDropItemSuperiors = new Hashtable(0); - private static final Map allBaseAfterDropItemInferiors = 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 dropPlayerItemWithRandomChoice(IClientPlayerAPI target, net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) - { - net.minecraft.entity.item.EntityItem _result; - ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); - if(clientPlayerAPI != null && clientPlayerAPI.isDropPlayerItemWithRandomChoiceModded) - _result = clientPlayerAPI.dropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - else - _result = target.localDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - return _result; - } - - private net.minecraft.entity.item.EntityItem dropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) - { - if(beforeDropPlayerItemWithRandomChoiceHooks != null) - for(int i = beforeDropPlayerItemWithRandomChoiceHooks.length - 1; i >= 0 ; i--) - beforeDropPlayerItemWithRandomChoiceHooks[i].beforeDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - - net.minecraft.entity.item.EntityItem _result; - if(overrideDropPlayerItemWithRandomChoiceHooks != null) - _result = overrideDropPlayerItemWithRandomChoiceHooks[overrideDropPlayerItemWithRandomChoiceHooks.length - 1].dropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - else - _result = player.localDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - - if(afterDropPlayerItemWithRandomChoiceHooks != null) - for(int i = 0; i < afterDropPlayerItemWithRandomChoiceHooks.length; i++) - afterDropPlayerItemWithRandomChoiceHooks[i].afterDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - - return _result; - } - - protected ClientPlayerBase GetOverwrittenDropPlayerItemWithRandomChoice(ClientPlayerBase overWriter) - { - if (overrideDropPlayerItemWithRandomChoiceHooks == null) - return overWriter; - - for(int i = 0; i < overrideDropPlayerItemWithRandomChoiceHooks.length; i++) - if(overrideDropPlayerItemWithRandomChoiceHooks[i] == overWriter) - if(i == 0) - return null; - else - return overrideDropPlayerItemWithRandomChoiceHooks[i - 1]; - - return overWriter; - } - - private final static List 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 paramFloat1, float paramFloat2) - { - ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); - if(clientPlayerAPI != null && clientPlayerAPI.isFallModded) - clientPlayerAPI.fall(paramFloat1, paramFloat2); - else - target.localFall(paramFloat1, paramFloat2); - } - - private void fall(float paramFloat1, float paramFloat2) - { - if(beforeFallHooks != null) - for(int i = beforeFallHooks.length - 1; i >= 0 ; i--) - beforeFallHooks[i].beforeFall(paramFloat1, paramFloat2); - - if(overrideFallHooks != null) - overrideFallHooks[overrideFallHooks.length - 1].fall(paramFloat1, paramFloat2); - else - player.localFall(paramFloat1, paramFloat2); - - if(afterFallHooks != null) - for(int i = 0; i < afterFallHooks.length; i++) - afterFallHooks[i].afterFall(paramFloat1, paramFloat2); - - } - - protected ClientPlayerBase GetOverwrittenFall(ClientPlayerBase overWriter) - { - if (overrideFallHooks == null) - return overWriter; - - for(int i = 0; i < overrideFallHooks.length; i++) - if(overrideFallHooks[i] == overWriter) - if(i == 0) - return null; - else - return overrideFallHooks[i - 1]; - - return overWriter; - } - - private final static List 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 getBreakSpeed(IClientPlayerAPI target, net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos) - { - float _result; - ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); - if(clientPlayerAPI != null && clientPlayerAPI.isGetBreakSpeedModded) - _result = clientPlayerAPI.getBreakSpeed(paramIBlockState, paramBlockPos); - else - _result = target.localGetBreakSpeed(paramIBlockState, paramBlockPos); - return _result; - } - - private float getBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos) - { - if(beforeGetBreakSpeedHooks != null) - for(int i = beforeGetBreakSpeedHooks.length - 1; i >= 0 ; i--) - beforeGetBreakSpeedHooks[i].beforeGetBreakSpeed(paramIBlockState, paramBlockPos); - - float _result; - if(overrideGetBreakSpeedHooks != null) - _result = overrideGetBreakSpeedHooks[overrideGetBreakSpeedHooks.length - 1].getBreakSpeed(paramIBlockState, paramBlockPos); - else - _result = player.localGetBreakSpeed(paramIBlockState, paramBlockPos); - - if(afterGetBreakSpeedHooks != null) - for(int i = 0; i < afterGetBreakSpeedHooks.length; i++) - afterGetBreakSpeedHooks[i].afterGetBreakSpeed(paramIBlockState, paramBlockPos); - - return _result; - } - - protected ClientPlayerBase GetOverwrittenGetBreakSpeed(ClientPlayerBase overWriter) - { - if (overrideGetBreakSpeedHooks == null) - return overWriter; - - for(int i = 0; i < overrideGetBreakSpeedHooks.length; i++) - if(overrideGetBreakSpeedHooks[i] == overWriter) - if(i == 0) - return null; - else - return overrideGetBreakSpeedHooks[i - 1]; - - return overWriter; - } - - private final static List beforeGetBreakSpeedHookTypes = new LinkedList(); - private final static List overrideGetBreakSpeedHookTypes = new LinkedList(); - private final static List afterGetBreakSpeedHookTypes = new LinkedList(); - - private ClientPlayerBase[] beforeGetBreakSpeedHooks; - private ClientPlayerBase[] overrideGetBreakSpeedHooks; - private ClientPlayerBase[] afterGetBreakSpeedHooks; - - public boolean isGetBreakSpeedModded; - - private static final Map allBaseBeforeGetBreakSpeedSuperiors = new Hashtable(0); - private static final Map allBaseBeforeGetBreakSpeedInferiors = new Hashtable(0); - private static final Map allBaseOverrideGetBreakSpeedSuperiors = new Hashtable(0); - private static final Map allBaseOverrideGetBreakSpeedInferiors = new Hashtable(0); - private static final Map allBaseAfterGetBreakSpeedSuperiors = new Hashtable(0); - private static final Map allBaseAfterGetBreakSpeedInferiors = 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 getFovModifier(IClientPlayerAPI target) - { - float _result; - ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); - if(clientPlayerAPI != null && clientPlayerAPI.isGetFovModifierModded) - _result = clientPlayerAPI.getFovModifier(); - else - _result = target.localGetFovModifier(); - return _result; - } - - private float getFovModifier() - { - if(beforeGetFovModifierHooks != null) - for(int i = beforeGetFovModifierHooks.length - 1; i >= 0 ; i--) - beforeGetFovModifierHooks[i].beforeGetFovModifier(); - - float _result; - if(overrideGetFovModifierHooks != null) - _result = overrideGetFovModifierHooks[overrideGetFovModifierHooks.length - 1].getFovModifier(); - else - _result = player.localGetFovModifier(); - - if(afterGetFovModifierHooks != null) - for(int i = 0; i < afterGetFovModifierHooks.length; i++) - afterGetFovModifierHooks[i].afterGetFovModifier(); - - return _result; - } - - protected ClientPlayerBase GetOverwrittenGetFovModifier(ClientPlayerBase overWriter) - { - if (overrideGetFovModifierHooks == null) - return overWriter; - - for(int i = 0; i < overrideGetFovModifierHooks.length; i++) - if(overrideGetFovModifierHooks[i] == overWriter) - if(i == 0) - return null; - else - return overrideGetFovModifierHooks[i - 1]; - - return overWriter; - } - - private final static List beforeGetFovModifierHookTypes = new LinkedList(); - private final static List overrideGetFovModifierHookTypes = new LinkedList(); - private final static List afterGetFovModifierHookTypes = new LinkedList(); - - private ClientPlayerBase[] beforeGetFovModifierHooks; - private ClientPlayerBase[] overrideGetFovModifierHooks; - private ClientPlayerBase[] afterGetFovModifierHooks; - - public boolean isGetFovModifierModded; - - private static final Map allBaseBeforeGetFovModifierSuperiors = new Hashtable(0); - private static final Map allBaseBeforeGetFovModifierInferiors = new Hashtable(0); - private static final Map allBaseOverrideGetFovModifierSuperiors = new Hashtable(0); - private static final Map allBaseOverrideGetFovModifierInferiors = new Hashtable(0); - private static final Map allBaseAfterGetFovModifierSuperiors = new Hashtable(0); - private static final Map allBaseAfterGetFovModifierInferiors = 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 java.lang.String getName(IClientPlayerAPI target) - { - java.lang.String _result; - ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); - if(clientPlayerAPI != null && clientPlayerAPI.isGetNameModded) - _result = clientPlayerAPI.getName(); - else - _result = target.localGetName(); - return _result; - } - - private java.lang.String getName() - { - if(beforeGetNameHooks != null) - for(int i = beforeGetNameHooks.length - 1; i >= 0 ; i--) - beforeGetNameHooks[i].beforeGetName(); - - java.lang.String _result; - if(overrideGetNameHooks != null) - _result = overrideGetNameHooks[overrideGetNameHooks.length - 1].getName(); - else - _result = player.localGetName(); - - if(afterGetNameHooks != null) - for(int i = 0; i < afterGetNameHooks.length; i++) - afterGetNameHooks[i].afterGetName(); - - return _result; - } - - protected ClientPlayerBase GetOverwrittenGetName(ClientPlayerBase overWriter) - { - if (overrideGetNameHooks == null) - return overWriter; - - for(int i = 0; i < overrideGetNameHooks.length; i++) - if(overrideGetNameHooks[i] == overWriter) - if(i == 0) - return null; - else - return overrideGetNameHooks[i - 1]; - - return overWriter; - } - - private final static List beforeGetNameHookTypes = new LinkedList(); - private final static List overrideGetNameHookTypes = new LinkedList(); - private final static List afterGetNameHookTypes = new LinkedList(); - - private ClientPlayerBase[] beforeGetNameHooks; - private ClientPlayerBase[] overrideGetNameHooks; - private ClientPlayerBase[] afterGetNameHooks; - - public boolean isGetNameModded; - - private static final Map allBaseBeforeGetNameSuperiors = new Hashtable(0); - private static final Map allBaseBeforeGetNameInferiors = new Hashtable(0); - private static final Map allBaseOverrideGetNameSuperiors = new Hashtable(0); - private static final Map allBaseOverrideGetNameInferiors = new Hashtable(0); - private static final Map allBaseAfterGetNameSuperiors = new Hashtable(0); - private static final Map allBaseAfterGetNameInferiors = 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 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, net.minecraft.util.BlockPos paramBlockPos, net.minecraft.block.Block paramBlock) - { - ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); - if(clientPlayerAPI != null && clientPlayerAPI.isPlayStepSoundModded) - clientPlayerAPI.playStepSound(paramBlockPos, paramBlock); - else - target.localPlayStepSound(paramBlockPos, paramBlock); - } - - private void playStepSound(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.block.Block paramBlock) - { - if(beforePlayStepSoundHooks != null) - for(int i = beforePlayStepSoundHooks.length - 1; i >= 0 ; i--) - beforePlayStepSoundHooks[i].beforePlayStepSound(paramBlockPos, paramBlock); - - if(overridePlayStepSoundHooks != null) - overridePlayStepSoundHooks[overridePlayStepSoundHooks.length - 1].playStepSound(paramBlockPos, paramBlock); - else - player.localPlayStepSound(paramBlockPos, paramBlock); - - if(afterPlayStepSoundHooks != null) - for(int i = 0; i < afterPlayStepSoundHooks.length; i++) - afterPlayStepSoundHooks[i].afterPlayStepSound(paramBlockPos, paramBlock); - - } - - protected ClientPlayerBase GetOverwrittenPlayStepSound(ClientPlayerBase overWriter) - { - if (overridePlayStepSoundHooks == null) - return overWriter; - - for(int i = 0; i < overridePlayStepSoundHooks.length; i++) - if(overridePlayStepSoundHooks[i] == overWriter) - if(i == 0) - return null; - else - return overridePlayStepSoundHooks[i - 1]; - - return overWriter; - } - - private final static List 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 trySleep(IClientPlayerAPI target, net.minecraft.util.BlockPos paramBlockPos) - { - net.minecraft.entity.player.EntityPlayer.EnumStatus _result; - ClientPlayerAPI clientPlayerAPI = target.getClientPlayerAPI(); - if(clientPlayerAPI != null && clientPlayerAPI.isTrySleepModded) - _result = clientPlayerAPI.trySleep(paramBlockPos); - else - _result = target.localTrySleep(paramBlockPos); - return _result; - } - - private net.minecraft.entity.player.EntityPlayer.EnumStatus trySleep(net.minecraft.util.BlockPos paramBlockPos) - { - if(beforeTrySleepHooks != null) - for(int i = beforeTrySleepHooks.length - 1; i >= 0 ; i--) - beforeTrySleepHooks[i].beforeTrySleep(paramBlockPos); - - net.minecraft.entity.player.EntityPlayer.EnumStatus _result; - if(overrideTrySleepHooks != null) - _result = overrideTrySleepHooks[overrideTrySleepHooks.length - 1].trySleep(paramBlockPos); - else - _result = player.localTrySleep(paramBlockPos); - - if(afterTrySleepHooks != null) - for(int i = 0; i < afterTrySleepHooks.length; i++) - afterTrySleepHooks[i].afterTrySleep(paramBlockPos); - - return _result; - } - - protected ClientPlayerBase GetOverwrittenTrySleep(ClientPlayerBase overWriter) - { - if (overrideTrySleepHooks == null) - return overWriter; - - for(int i = 0; i < overrideTrySleepHooks.length; i++) - if(overrideTrySleepHooks[i] == overWriter) - if(i == 0) - return null; - else - return overrideTrySleepHooks[i - 1]; - - return overWriter; - } - - private final static List beforeTrySleepHookTypes = new LinkedList(); - private final static List overrideTrySleepHookTypes = new LinkedList(); - private final static List afterTrySleepHookTypes = new LinkedList(); - - private ClientPlayerBase[] beforeTrySleepHooks; - private ClientPlayerBase[] overrideTrySleepHooks; - private ClientPlayerBase[] afterTrySleepHooks; - - public boolean isTrySleepModded; - - private static final Map allBaseBeforeTrySleepSuperiors = new Hashtable(0); - private static final Map allBaseBeforeTrySleepInferiors = new Hashtable(0); - private static final Map allBaseOverrideTrySleepSuperiors = new Hashtable(0); - private static final Map allBaseOverrideTrySleepInferiors = new Hashtable(0); - private static final Map allBaseAfterTrySleepSuperiors = new Hashtable(0); - private static final Map allBaseAfterTrySleepInferiors = 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/dependencies/main/java/api/player/client/ClientPlayerBase.java b/dependencies/main/java/api/player/client/ClientPlayerBase.java deleted file mode 100644 index be2e75f267..0000000000 --- a/dependencies/main/java/api/player/client/ClientPlayerBase.java +++ /dev/null @@ -1,1384 +0,0 @@ -// ================================================================== -// 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.client.network.NetHandlerPlayClient paramNetHandlerPlayClient, net.minecraft.stats.StatFileWriter paramStatFileWriter) - { - } - - public void afterLocalConstructing(net.minecraft.client.Minecraft paramMinecraft, net.minecraft.world.World paramWorld, net.minecraft.client.network.NetHandlerPlayClient paramNetHandlerPlayClient, net.minecraft.stats.StatFileWriter paramStatFileWriter) - { - } - - 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(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack) - { - } - - public boolean canPlayerEdit(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack) - { - ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenCanPlayerEdit(this); - - boolean _result; - if(overwritten == null) - _result = playerAPI.localCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - else if(overwritten != this) - _result = overwritten.canPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - else - _result = false; - - return _result; - } - - public void afterCanPlayerEdit(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, 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 beforeDisplayGui(net.minecraft.world.IInteractionObject paramIInteractionObject) - { - } - - public void displayGui(net.minecraft.world.IInteractionObject paramIInteractionObject) - { - ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDisplayGui(this); - - if(overwritten == null) - playerAPI.localDisplayGui(paramIInteractionObject); - else if(overwritten != this) - overwritten.displayGui(paramIInteractionObject); - - } - - public void afterDisplayGui(net.minecraft.world.IInteractionObject paramIInteractionObject) - { - } - - 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 beforeDropItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2) - { - } - - public net.minecraft.entity.item.EntityItem dropItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2) - { - ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDropItem(this); - - net.minecraft.entity.item.EntityItem _result; - if(overwritten == null) - _result = playerAPI.localDropItem(paramItemStack, paramBoolean1, paramBoolean2); - else if(overwritten != this) - _result = overwritten.dropItem(paramItemStack, paramBoolean1, paramBoolean2); - else - _result = null; - - return _result; - } - - public void afterDropItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2) - { - } - - 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 beforeDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) - { - } - - public net.minecraft.entity.item.EntityItem dropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) - { - ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenDropPlayerItemWithRandomChoice(this); - - net.minecraft.entity.item.EntityItem _result; - if(overwritten == null) - _result = playerAPI.localDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - else if(overwritten != this) - _result = overwritten.dropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - else - _result = null; - - return _result; - } - - public void afterDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) - { - } - - public void beforeFall(float paramFloat1, float paramFloat2) - { - } - - public void fall(float paramFloat1, float paramFloat2) - { - ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenFall(this); - - if(overwritten == null) - playerAPI.localFall(paramFloat1, paramFloat2); - else if(overwritten != this) - overwritten.fall(paramFloat1, paramFloat2); - - } - - public void afterFall(float paramFloat1, float paramFloat2) - { - } - - 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 beforeGetBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos) - { - } - - public float getBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos) - { - ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetBreakSpeed(this); - - float _result; - if(overwritten == null) - _result = playerAPI.localGetBreakSpeed(paramIBlockState, paramBlockPos); - else if(overwritten != this) - _result = overwritten.getBreakSpeed(paramIBlockState, paramBlockPos); - else - _result = 0; - - return _result; - } - - public void afterGetBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos) - { - } - - 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 beforeGetFovModifier() - { - } - - public float getFovModifier() - { - ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetFovModifier(this); - - float _result; - if(overwritten == null) - _result = playerAPI.localGetFovModifier(); - else if(overwritten != this) - _result = overwritten.getFovModifier(); - else - _result = 0; - - return _result; - } - - public void afterGetFovModifier() - { - } - - 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 beforeGetName() - { - } - - public java.lang.String getName() - { - ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenGetName(this); - - java.lang.String _result; - if(overwritten == null) - _result = playerAPI.localGetName(); - else if(overwritten != this) - _result = overwritten.getName(); - else - _result = null; - - return _result; - } - - public void afterGetName() - { - } - - 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 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(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.block.Block paramBlock) - { - } - - public void playStepSound(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.block.Block paramBlock) - { - ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenPlayStepSound(this); - - if(overwritten == null) - playerAPI.localPlayStepSound(paramBlockPos, paramBlock); - else if(overwritten != this) - overwritten.playStepSound(paramBlockPos, paramBlock); - - } - - public void afterPlayStepSound(net.minecraft.util.BlockPos paramBlockPos, 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 beforeTrySleep(net.minecraft.util.BlockPos paramBlockPos) - { - } - - public net.minecraft.entity.player.EntityPlayer.EnumStatus trySleep(net.minecraft.util.BlockPos paramBlockPos) - { - ClientPlayerBase overwritten = internalClientPlayerAPI.GetOverwrittenTrySleep(this); - - net.minecraft.entity.player.EntityPlayer.EnumStatus _result; - if(overwritten == null) - _result = playerAPI.localTrySleep(paramBlockPos); - else if(overwritten != this) - _result = overwritten.trySleep(paramBlockPos); - else - _result = null; - - return _result; - } - - public void afterTrySleep(net.minecraft.util.BlockPos paramBlockPos) - { - } - - 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/dependencies/main/java/api/player/client/ClientPlayerBaseSorter.java b/dependencies/main/java/api/player/client/ClientPlayerBaseSorter.java deleted file mode 100644 index 68bc9ada07..0000000000 --- a/dependencies/main/java/api/player/client/ClientPlayerBaseSorter.java +++ /dev/null @@ -1,259 +0,0 @@ -// ================================================================== -// 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/dependencies/main/java/api/player/client/ClientPlayerBaseSorting.java b/dependencies/main/java/api/player/client/ClientPlayerBaseSorting.java deleted file mode 100644 index 49ffcbbced..0000000000 --- a/dependencies/main/java/api/player/client/ClientPlayerBaseSorting.java +++ /dev/null @@ -1,4378 +0,0 @@ -// ================================================================== -// 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[] beforeDisplayGuiSuperiors = null; - private String[] beforeDisplayGuiInferiors = null; - private String[] overrideDisplayGuiSuperiors = null; - private String[] overrideDisplayGuiInferiors = null; - private String[] afterDisplayGuiSuperiors = null; - private String[] afterDisplayGuiInferiors = 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[] beforeDropItemSuperiors = null; - private String[] beforeDropItemInferiors = null; - private String[] overrideDropItemSuperiors = null; - private String[] overrideDropItemInferiors = null; - private String[] afterDropItemSuperiors = null; - private String[] afterDropItemInferiors = 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[] 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[] beforeGetBreakSpeedSuperiors = null; - private String[] beforeGetBreakSpeedInferiors = null; - private String[] overrideGetBreakSpeedSuperiors = null; - private String[] overrideGetBreakSpeedInferiors = null; - private String[] afterGetBreakSpeedSuperiors = null; - private String[] afterGetBreakSpeedInferiors = 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[] beforeGetFovModifierSuperiors = null; - private String[] beforeGetFovModifierInferiors = null; - private String[] overrideGetFovModifierSuperiors = null; - private String[] overrideGetFovModifierInferiors = null; - private String[] afterGetFovModifierSuperiors = null; - private String[] afterGetFovModifierInferiors = 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[] beforeGetNameSuperiors = null; - private String[] beforeGetNameInferiors = null; - private String[] overrideGetNameSuperiors = null; - private String[] overrideGetNameInferiors = null; - private String[] afterGetNameSuperiors = null; - private String[] afterGetNameInferiors = 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[] 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[] beforeTrySleepSuperiors = null; - private String[] beforeTrySleepInferiors = null; - private String[] overrideTrySleepSuperiors = null; - private String[] overrideTrySleepInferiors = null; - private String[] afterTrySleepSuperiors = null; - private String[] afterTrySleepInferiors = 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[] getBeforeDisplayGuiSuperiors() - { - return beforeDisplayGuiSuperiors; - } - - public String[] getBeforeDisplayGuiInferiors() - { - return beforeDisplayGuiInferiors; - } - - public String[] getOverrideDisplayGuiSuperiors() - { - return overrideDisplayGuiSuperiors; - } - - public String[] getOverrideDisplayGuiInferiors() - { - return overrideDisplayGuiInferiors; - } - - public String[] getAfterDisplayGuiSuperiors() - { - return afterDisplayGuiSuperiors; - } - - public String[] getAfterDisplayGuiInferiors() - { - return afterDisplayGuiInferiors; - } - - public void setBeforeDisplayGuiSuperiors(String[] value) - { - beforeDisplayGuiSuperiors = value; - } - - public void setBeforeDisplayGuiInferiors(String[] value) - { - beforeDisplayGuiInferiors = value; - } - - public void setOverrideDisplayGuiSuperiors(String[] value) - { - overrideDisplayGuiSuperiors = value; - } - - public void setOverrideDisplayGuiInferiors(String[] value) - { - overrideDisplayGuiInferiors = value; - } - - public void setAfterDisplayGuiSuperiors(String[] value) - { - afterDisplayGuiSuperiors = value; - } - - public void setAfterDisplayGuiInferiors(String[] value) - { - afterDisplayGuiInferiors = 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[] getBeforeDropItemSuperiors() - { - return beforeDropItemSuperiors; - } - - public String[] getBeforeDropItemInferiors() - { - return beforeDropItemInferiors; - } - - public String[] getOverrideDropItemSuperiors() - { - return overrideDropItemSuperiors; - } - - public String[] getOverrideDropItemInferiors() - { - return overrideDropItemInferiors; - } - - public String[] getAfterDropItemSuperiors() - { - return afterDropItemSuperiors; - } - - public String[] getAfterDropItemInferiors() - { - return afterDropItemInferiors; - } - - public void setBeforeDropItemSuperiors(String[] value) - { - beforeDropItemSuperiors = value; - } - - public void setBeforeDropItemInferiors(String[] value) - { - beforeDropItemInferiors = value; - } - - public void setOverrideDropItemSuperiors(String[] value) - { - overrideDropItemSuperiors = value; - } - - public void setOverrideDropItemInferiors(String[] value) - { - overrideDropItemInferiors = value; - } - - public void setAfterDropItemSuperiors(String[] value) - { - afterDropItemSuperiors = value; - } - - public void setAfterDropItemInferiors(String[] value) - { - afterDropItemInferiors = 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[] 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[] getBeforeGetBreakSpeedSuperiors() - { - return beforeGetBreakSpeedSuperiors; - } - - public String[] getBeforeGetBreakSpeedInferiors() - { - return beforeGetBreakSpeedInferiors; - } - - public String[] getOverrideGetBreakSpeedSuperiors() - { - return overrideGetBreakSpeedSuperiors; - } - - public String[] getOverrideGetBreakSpeedInferiors() - { - return overrideGetBreakSpeedInferiors; - } - - public String[] getAfterGetBreakSpeedSuperiors() - { - return afterGetBreakSpeedSuperiors; - } - - public String[] getAfterGetBreakSpeedInferiors() - { - return afterGetBreakSpeedInferiors; - } - - public void setBeforeGetBreakSpeedSuperiors(String[] value) - { - beforeGetBreakSpeedSuperiors = value; - } - - public void setBeforeGetBreakSpeedInferiors(String[] value) - { - beforeGetBreakSpeedInferiors = value; - } - - public void setOverrideGetBreakSpeedSuperiors(String[] value) - { - overrideGetBreakSpeedSuperiors = value; - } - - public void setOverrideGetBreakSpeedInferiors(String[] value) - { - overrideGetBreakSpeedInferiors = value; - } - - public void setAfterGetBreakSpeedSuperiors(String[] value) - { - afterGetBreakSpeedSuperiors = value; - } - - public void setAfterGetBreakSpeedInferiors(String[] value) - { - afterGetBreakSpeedInferiors = 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[] getBeforeGetFovModifierSuperiors() - { - return beforeGetFovModifierSuperiors; - } - - public String[] getBeforeGetFovModifierInferiors() - { - return beforeGetFovModifierInferiors; - } - - public String[] getOverrideGetFovModifierSuperiors() - { - return overrideGetFovModifierSuperiors; - } - - public String[] getOverrideGetFovModifierInferiors() - { - return overrideGetFovModifierInferiors; - } - - public String[] getAfterGetFovModifierSuperiors() - { - return afterGetFovModifierSuperiors; - } - - public String[] getAfterGetFovModifierInferiors() - { - return afterGetFovModifierInferiors; - } - - public void setBeforeGetFovModifierSuperiors(String[] value) - { - beforeGetFovModifierSuperiors = value; - } - - public void setBeforeGetFovModifierInferiors(String[] value) - { - beforeGetFovModifierInferiors = value; - } - - public void setOverrideGetFovModifierSuperiors(String[] value) - { - overrideGetFovModifierSuperiors = value; - } - - public void setOverrideGetFovModifierInferiors(String[] value) - { - overrideGetFovModifierInferiors = value; - } - - public void setAfterGetFovModifierSuperiors(String[] value) - { - afterGetFovModifierSuperiors = value; - } - - public void setAfterGetFovModifierInferiors(String[] value) - { - afterGetFovModifierInferiors = 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[] getBeforeGetNameSuperiors() - { - return beforeGetNameSuperiors; - } - - public String[] getBeforeGetNameInferiors() - { - return beforeGetNameInferiors; - } - - public String[] getOverrideGetNameSuperiors() - { - return overrideGetNameSuperiors; - } - - public String[] getOverrideGetNameInferiors() - { - return overrideGetNameInferiors; - } - - public String[] getAfterGetNameSuperiors() - { - return afterGetNameSuperiors; - } - - public String[] getAfterGetNameInferiors() - { - return afterGetNameInferiors; - } - - public void setBeforeGetNameSuperiors(String[] value) - { - beforeGetNameSuperiors = value; - } - - public void setBeforeGetNameInferiors(String[] value) - { - beforeGetNameInferiors = value; - } - - public void setOverrideGetNameSuperiors(String[] value) - { - overrideGetNameSuperiors = value; - } - - public void setOverrideGetNameInferiors(String[] value) - { - overrideGetNameInferiors = value; - } - - public void setAfterGetNameSuperiors(String[] value) - { - afterGetNameSuperiors = value; - } - - public void setAfterGetNameInferiors(String[] value) - { - afterGetNameInferiors = 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[] 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[] getBeforeTrySleepSuperiors() - { - return beforeTrySleepSuperiors; - } - - public String[] getBeforeTrySleepInferiors() - { - return beforeTrySleepInferiors; - } - - public String[] getOverrideTrySleepSuperiors() - { - return overrideTrySleepSuperiors; - } - - public String[] getOverrideTrySleepInferiors() - { - return overrideTrySleepInferiors; - } - - public String[] getAfterTrySleepSuperiors() - { - return afterTrySleepSuperiors; - } - - public String[] getAfterTrySleepInferiors() - { - return afterTrySleepInferiors; - } - - public void setBeforeTrySleepSuperiors(String[] value) - { - beforeTrySleepSuperiors = value; - } - - public void setBeforeTrySleepInferiors(String[] value) - { - beforeTrySleepInferiors = value; - } - - public void setOverrideTrySleepSuperiors(String[] value) - { - overrideTrySleepSuperiors = value; - } - - public void setOverrideTrySleepInferiors(String[] value) - { - overrideTrySleepInferiors = value; - } - - public void setAfterTrySleepSuperiors(String[] value) - { - afterTrySleepSuperiors = value; - } - - public void setAfterTrySleepInferiors(String[] value) - { - afterTrySleepInferiors = 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/dependencies/main/java/api/player/client/ClientPlayerClassVisitor.java b/dependencies/main/java/api/player/client/ClientPlayerClassVisitor.java deleted file mode 100644 index 3534bf5256..0000000000 --- a/dependencies/main/java/api/player/client/ClientPlayerClassVisitor.java +++ /dev/null @@ -1,5124 +0,0 @@ -// ================================================================== -// 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 hadLocalDisplayGui; - private boolean hadLocalDisplayGUIChest; - private boolean hadLocalDropItem; - private boolean hadLocalDropOneItem; - private boolean hadLocalDropPlayerItemWithRandomChoice; - private boolean hadLocalFall; - private boolean hadLocalGetAIMoveSpeed; - private boolean hadLocalGetBedOrientationInDegrees; - private boolean hadLocalGetBrightness; - private boolean hadLocalGetBrightnessForRender; - private boolean hadLocalGetBreakSpeed; - private boolean hadLocalGetDistanceSq; - private boolean hadLocalGetDistanceSqToEntity; - private boolean hadLocalGetFovModifier; - private boolean hadLocalGetHurtSound; - private boolean hadLocalGetName; - private boolean hadLocalGetSleepTimer; - 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 hadLocalTrySleep; - 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; - } - - @Override - 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 ? "(Lmw;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 ? "(Low;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 ? "f" : "attackEntityPlayerSPEntityWithCurrentItem") && desc.equals(isObfuscated ? "(Lpk;)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 ? "aY" : "canBreatheUnderwater") && desc.equals("()Z")) - { - hadLocalCanBreatheUnderwater = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanBreatheUnderwater", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "b" : "canHarvestBlock") && desc.equals(isObfuscated ? "(Lafh;)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 ? "(Lcj;Lcq;Lzx;)Z" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z")) - { - hadLocalCanPlayerEdit = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanPlayerEdit", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "s_" : "canTriggerWalking") && desc.equals("()Z")) - { - hadLocalCanTriggerWalking = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanTriggerWalking", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "n" : "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 ? "(Low;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" : "displayGui") && desc.equals(isObfuscated ? "(Lol;)V" : "(Lnet/minecraft/world/IInteractionObject;)V")) - { - hadLocalDisplayGui = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGui", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "a" : "displayGUIChest") && desc.equals(isObfuscated ? "(Log;)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" : "dropItem") && desc.equals(isObfuscated ? "(Lzx;ZZ)Luz;" : "(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem;")) - { - hadLocalDropItem = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropItem", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "a" : "dropOneItem") && desc.equals(isObfuscated ? "(Z)Luz;" : "(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 ? "(Lzx;Z)Luz;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;")) - { - hadLocalDropPlayerItemWithRandomChoice = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropPlayerItemWithRandomChoice", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "e" : "fall") && desc.equals("(FF)V")) - { - hadLocalFall = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localFall", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "bI" : "getAIMoveSpeed") && desc.equals("()F")) - { - hadLocalGetAIMoveSpeed = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetAIMoveSpeed", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "ce" : "getBedOrientationInDegrees") && desc.equals("()F")) - { - hadLocalGetBedOrientationInDegrees = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBedOrientationInDegrees", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "c" : "getBrightness") && desc.equals("(F)F")) - { - hadLocalGetBrightness = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBrightness", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "b" : "getBrightnessForRender") && desc.equals("(F)I")) - { - hadLocalGetBrightnessForRender = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBrightnessForRender", desc, signature, exceptions); - } - - if(name.equals("getBreakSpeed") && desc.equals(isObfuscated ? "(Lalz;Lcj;)F" : "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F")) - { - hadLocalGetBreakSpeed = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBreakSpeed", 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 ? "h" : "getDistanceSqToEntity") && desc.equals(isObfuscated ? "(Lpk;)D" : "(Lnet/minecraft/entity/Entity;)D")) - { - hadLocalGetDistanceSqToEntity = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetDistanceSqToEntity", desc, signature, exceptions); - } - - if(name.equals("getFovModifier") && desc.equals("()F")) - { - hadLocalGetFovModifier = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetFovModifier", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "bo" : "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 ? "e_" : "getName") && desc.equals("()Ljava/lang/String;")) - { - hadLocalGetName = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetName", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "cg" : "getSleepTimer") && desc.equals("()I")) - { - hadLocalGetSleepTimer = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetSleepTimer", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "W" : "handleWaterMovement") && desc.equals("()Z")) - { - hadLocalHandleWaterMovement = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localHandleWaterMovement", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "h" : "heal") && desc.equals("(F)V")) - { - hadLocalHeal = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localHeal", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "aj" : "isEntityInsideOpaqueBlock") && desc.equals("()Z")) - { - hadLocalIsEntityInsideOpaqueBlock = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsEntityInsideOpaqueBlock", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "V" : "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 ? "(Larm;)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 ? "k_" : "isOnLadder") && desc.equals("()Z")) - { - hadLocalIsOnLadder = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsOnLadder", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "bJ" : "isPlayerSleeping") && desc.equals("()Z")) - { - hadLocalIsPlayerSleeping = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsPlayerSleeping", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "av" : "isSneaking") && desc.equals("()Z")) - { - hadLocalIsSneaking = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsSneaking", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "aw" : "isSprinting") && desc.equals("()Z")) - { - hadLocalIsSprinting = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsSprinting", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "bF" : "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 ? "(Lpk;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 ? "g" : "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 ? "(Low;)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 ? "m" : "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 ? "(Lpr;)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 ? "(Luv;)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 ? "t_" : "onUpdate") && desc.equals("()V")) - { - hadLocalOnUpdate = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnUpdate", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "a" : "playStepSound") && desc.equals(isObfuscated ? "(Lcj;Lafh;)V" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V")) - { - hadLocalPlayStepSound = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localPlayStepSound", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "j" : "pushOutOfBlocks") && 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)Lauh;" : "(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 ? "(Ldn;)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 ? "cb" : "respawnPlayer") && desc.equals("()V")) - { - hadLocalRespawnPlayer = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localRespawnPlayer", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "J" : "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 ? "c" : "setSneaking") && desc.equals("(Z)V")) - { - hadLocalSetSneaking = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetSneaking", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "d" : "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" : "trySleep") && desc.equals(isObfuscated ? "(Lcj;)Lwn$a;" : "(Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;")) - { - hadLocalTrySleep = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localTrySleep", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "bw" : "swingItem") && desc.equals("()V")) - { - hadLocalSwingItem = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSwingItem", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "bK" : "updateEntityActionState") && desc.equals("()V")) - { - hadLocalUpdateEntityActionState = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdateEntityActionState", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "ak" : "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 ? "(Ldn;)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); - } - - @Override - 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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "addExhaustion", "(F)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "addExhaustion", "(F)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "addExhaustion", "(F)V", false); - 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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "k" : "addMovementStat", "(DDD)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "k" : "addMovementStat", "(DDD)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "k" : "addMovementStat", "(DDD)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "addStat", "" + (isObfuscated ? "(Lmw;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;Lnet/minecraft/stats/StatBase;I)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAddStat", "(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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "addStat", "" + (isObfuscated ? "(Lmw;I)V" : "(Lnet/minecraft/stats/StatBase;I)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAddStat", "(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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "addStat", "" + (isObfuscated ? "(Lmw;I)V" : "(Lnet/minecraft/stats/StatBase;I)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalAddStat) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAddStat", "(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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "addStat", "" + (isObfuscated ? "(Lmw;I)V" : "(Lnet/minecraft/stats/StatBase;I)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Low;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;Lnet/minecraft/util/DamageSource;F)Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAttackEntityFrom", "(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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Low;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAttackEntityFrom", "(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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Low;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalAttackEntityFrom) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAttackEntityFrom", "(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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Low;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "f" : "attackEntityPlayerSPEntityWithCurrentItem", "" + (isObfuscated ? "(Lpk;)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;Lnet/minecraft/entity/Entity;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAttackTargetEntityWithCurrentItem", "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "f" : "attackEntityPlayerSPEntityWithCurrentItem", "" + (isObfuscated ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAttackTargetEntityWithCurrentItem", "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "f" : "attackEntityPlayerSPEntityWithCurrentItem", "" + (isObfuscated ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalAttackTargetEntityWithCurrentItem) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAttackTargetEntityWithCurrentItem", "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "f" : "attackEntityPlayerSPEntityWithCurrentItem", "" + (isObfuscated ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "aY" : "canBreatheUnderwater", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "canBreatheUnderwater", "(Lapi/player/client/IClientPlayerAPI;)Z", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aY" : "canBreatheUnderwater", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "aY" : "canBreatheUnderwater", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "aY" : "canBreatheUnderwater", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "canHarvestBlock", "" + (isObfuscated ? "(Lafh;)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;Lnet/minecraft/block/Block;)Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCanHarvestBlock", "(Lnet/minecraft/block/Block;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "b" : "canHarvestBlock", "" + (isObfuscated ? "(Lafh;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCanHarvestBlock", "(Lnet/minecraft/block/Block;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "canHarvestBlock", "" + (isObfuscated ? "(Lafh;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalCanHarvestBlock) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanHarvestBlock", "(Lnet/minecraft/block/Block;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "canHarvestBlock", "" + (isObfuscated ? "(Lafh;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(Lcj;Lcq;Lzx;)Z" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitVarInsn(Opcodes.ALOAD, 3); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "canPlayerEdit", "(Lapi/player/client/IClientPlayerAPI;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCanPlayerEdit", "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitVarInsn(Opcodes.ALOAD, 3); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(Lcj;Lcq;Lzx;)Z" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCanPlayerEdit", "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitVarInsn(Opcodes.ALOAD, 3); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(Lcj;Lcq;Lzx;)Z" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalCanPlayerEdit) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanPlayerEdit", "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitVarInsn(Opcodes.ALOAD, 3); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(Lcj;Lcq;Lzx;)Z" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "s_" : "canTriggerWalking", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "canTriggerWalking", "(Lapi/player/client/IClientPlayerAPI;)Z", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "s_" : "canTriggerWalking", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "s_" : "canTriggerWalking", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "s_" : "canTriggerWalking", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "n" : "closeScreen", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "closeScreen", "(Lapi/player/client/IClientPlayerAPI;)V", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "n" : "closeScreen", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "n" : "closeScreen", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "n" : "closeScreen", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Low;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;Lnet/minecraft/util/DamageSource;F)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDamageEntity", "(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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Low;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDamageEntity", "(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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Low;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalDamageEntity) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDamageEntity", "(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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Low;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "displayGui", "" + (isObfuscated ? "(Lol;)V" : "(Lnet/minecraft/world/IInteractionObject;)V") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "displayGui", "(Lapi/player/client/IClientPlayerAPI;Lnet/minecraft/world/IInteractionObject;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGui", "(Lnet/minecraft/world/IInteractionObject;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "displayGui", "" + (isObfuscated ? "(Lol;)V" : "(Lnet/minecraft/world/IInteractionObject;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGui", "(Lnet/minecraft/world/IInteractionObject;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "displayGui", "" + (isObfuscated ? "(Lol;)V" : "(Lnet/minecraft/world/IInteractionObject;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalDisplayGui) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGui", "(Lnet/minecraft/world/IInteractionObject;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "displayGui", "" + (isObfuscated ? "(Lol;)V" : "(Lnet/minecraft/world/IInteractionObject;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Log;)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;Lnet/minecraft/inventory/IInventory;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIChest", "(Lnet/minecraft/inventory/IInventory;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Log;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIChest", "(Lnet/minecraft/inventory/IInventory;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Log;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalDisplayGUIChest) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIChest", "(Lnet/minecraft/inventory/IInventory;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Log;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "dropItem", "" + (isObfuscated ? "(Lzx;ZZ)Luz;" : "(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", "dropItem", "(Lapi/player/client/IClientPlayerAPI;Lnet/minecraft/item/ItemStack;ZZ)" + (isObfuscated ? "Luz;" : "Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDropItem", "(Lnet/minecraft/item/ItemStack;ZZ)" + (isObfuscated ? "Luz;" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "dropItem", "" + (isObfuscated ? "(Lzx;ZZ)Luz;" : "(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDropItem", "(Lnet/minecraft/item/ItemStack;ZZ)" + (isObfuscated ? "Luz;" : "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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "dropItem", "" + (isObfuscated ? "(Lzx;ZZ)Luz;" : "(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalDropItem) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropItem", "(Lnet/minecraft/item/ItemStack;ZZ)" + (isObfuscated ? "Luz;" : "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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "dropItem", "" + (isObfuscated ? "(Lzx;ZZ)Luz;" : "(Lnet/minecraft/item/ItemStack;ZZ)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Luz;" : "(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 ? "Luz;" : "Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDropOneItem", "(Z)" + (isObfuscated ? "Luz;" : "Lnet/minecraft/entity/item/EntityItem;") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Luz;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDropOneItem", "(Z)" + (isObfuscated ? "Luz;" : "Lnet/minecraft/entity/item/EntityItem;") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Luz;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalDropOneItem) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropOneItem", "(Z)" + (isObfuscated ? "Luz;" : "Lnet/minecraft/entity/item/EntityItem;") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Luz;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Lzx;Z)Luz;" : "(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", "dropPlayerItemWithRandomChoice", "(Lapi/player/client/IClientPlayerAPI;Lnet/minecraft/item/ItemStack;Z)" + (isObfuscated ? "Luz;" : "Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDropPlayerItemWithRandomChoice", "(Lnet/minecraft/item/ItemStack;Z)" + (isObfuscated ? "Luz;" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Lzx;Z)Luz;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDropPlayerItemWithRandomChoice", "(Lnet/minecraft/item/ItemStack;Z)" + (isObfuscated ? "Luz;" : "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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Lzx;Z)Luz;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalDropPlayerItemWithRandomChoice) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropPlayerItemWithRandomChoice", "(Lnet/minecraft/item/ItemStack;Z)" + (isObfuscated ? "Luz;" : "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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Lzx;Z)Luz;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "e" : "fall", "(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", "fall", "(Lapi/player/client/IClientPlayerAPI;FF)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realFall", "(FF)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitVarInsn(Opcodes.FLOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "e" : "fall", "(FF)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superFall", "(FF)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitVarInsn(Opcodes.FLOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "e" : "fall", "(FF)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalFall) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localFall", "(FF)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitVarInsn(Opcodes.FLOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "e" : "fall", "(FF)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bI" : "getAIMoveSpeed", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getAIMoveSpeed", "(Lapi/player/client/IClientPlayerAPI;)F", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bI" : "getAIMoveSpeed", "()F", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bI" : "getAIMoveSpeed", "()F", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bI" : "getAIMoveSpeed", "()F", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "ce" : "getBedOrientationInDegrees", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getBedOrientationInDegrees", "(Lapi/player/client/IClientPlayerAPI;)F", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ce" : "getBedOrientationInDegrees", "()F", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "ce" : "getBedOrientationInDegrees", "()F", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "ce" : "getBedOrientationInDegrees", "()F", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "c" : "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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "c" : "getBrightness", "(F)F", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "c" : "getBrightness", "(F)F", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "c" : "getBrightness", "(F)F", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "b" : "getBrightnessForRender", "(F)I", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "getBrightnessForRender", "(F)I", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "getBrightnessForRender", "(F)I", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, "getBreakSpeed", "" + (isObfuscated ? "(Lalz;Lcj;)F" : "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F") + "", 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", "getBreakSpeed", "(Lapi/player/client/IClientPlayerAPI;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetBreakSpeed", "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", "getBreakSpeed", "" + (isObfuscated ? "(Lalz;Lcj;)F" : "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F") + "", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetBreakSpeed", "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", "getBreakSpeed", "" + (isObfuscated ? "(Lalz;Lcj;)F" : "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F") + "", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalGetBreakSpeed) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBreakSpeed", "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", "getBreakSpeed", "" + (isObfuscated ? "(Lalz;Lcj;)F" : "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F") + "", false); - 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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "e" : "getDistanceSq", "(DDD)D", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "e" : "getDistanceSq", "(DDD)D", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "e" : "getDistanceSq", "(DDD)D", false); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "h" : "getDistanceSqToEntity", "" + (isObfuscated ? "(Lpk;)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;Lnet/minecraft/entity/Entity;)D", false); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetDistanceSqToEntity", "(Lnet/minecraft/entity/Entity;)D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "h" : "getDistanceSqToEntity", "" + (isObfuscated ? "(Lpk;)D" : "(Lnet/minecraft/entity/Entity;)D") + "", false); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetDistanceSqToEntity", "(Lnet/minecraft/entity/Entity;)D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "h" : "getDistanceSqToEntity", "" + (isObfuscated ? "(Lpk;)D" : "(Lnet/minecraft/entity/Entity;)D") + "", false); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalGetDistanceSqToEntity) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetDistanceSqToEntity", "(Lnet/minecraft/entity/Entity;)D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "h" : "getDistanceSqToEntity", "" + (isObfuscated ? "(Lpk;)D" : "(Lnet/minecraft/entity/Entity;)D") + "", false); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, "getFovModifier", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getFovModifier", "(Lapi/player/client/IClientPlayerAPI;)F", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetFovModifier", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", "getFovModifier", "()F", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetFovModifier", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", "getFovModifier", "()F", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalGetFovModifier) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetFovModifier", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", "getFovModifier", "()F", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bo" : "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;", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bo" : "getHurtSound", "()Ljava/lang/String;", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bo" : "getHurtSound", "()Ljava/lang/String;", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bo" : "getHurtSound", "()Ljava/lang/String;", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "e_" : "getName", "()Ljava/lang/String;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getName", "(Lapi/player/client/IClientPlayerAPI;)Ljava/lang/String;", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetName", "()Ljava/lang/String;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "e_" : "getName", "()Ljava/lang/String;", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetName", "()Ljava/lang/String;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "e_" : "getName", "()Ljava/lang/String;", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalGetName) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetName", "()Ljava/lang/String;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "e_" : "getName", "()Ljava/lang/String;", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "cg" : "getSleepTimer", "()I", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "getSleepTimer", "(Lapi/player/client/IClientPlayerAPI;)I", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "cg" : "getSleepTimer", "()I", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "cg" : "getSleepTimer", "()I", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "cg" : "getSleepTimer", "()I", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "W" : "handleWaterMovement", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "handleWaterMovement", "(Lapi/player/client/IClientPlayerAPI;)Z", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "W" : "handleWaterMovement", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "W" : "handleWaterMovement", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "W" : "handleWaterMovement", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "h" : "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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "h" : "heal", "(F)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "h" : "heal", "(F)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "h" : "heal", "(F)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "aj" : "isEntityInsideOpaqueBlock", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isEntityInsideOpaqueBlock", "(Lapi/player/client/IClientPlayerAPI;)Z", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aj" : "isEntityInsideOpaqueBlock", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "aj" : "isEntityInsideOpaqueBlock", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "aj" : "isEntityInsideOpaqueBlock", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "V" : "isInWater", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isInWater", "(Lapi/player/client/IClientPlayerAPI;)Z", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "V" : "isInWater", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "V" : "isInWater", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "V" : "isInWater", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Larm;)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;Lnet/minecraft/block/material/Material;)Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsInsideOfMaterial", "(Lnet/minecraft/block/material/Material;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Larm;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsInsideOfMaterial", "(Lnet/minecraft/block/material/Material;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Larm;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalIsInsideOfMaterial) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsInsideOfMaterial", "(Lnet/minecraft/block/material/Material;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Larm;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "k_" : "isOnLadder", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isOnLadder", "(Lapi/player/client/IClientPlayerAPI;)Z", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "k_" : "isOnLadder", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "k_" : "isOnLadder", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "k_" : "isOnLadder", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bJ" : "isPlayerSleeping", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isPlayerSleeping", "(Lapi/player/client/IClientPlayerAPI;)Z", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bJ" : "isPlayerSleeping", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bJ" : "isPlayerSleeping", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bJ" : "isPlayerSleeping", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "av" : "isSneaking", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isSneaking", "(Lapi/player/client/IClientPlayerAPI;)Z", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "av" : "isSneaking", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "av" : "isSneaking", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "av" : "isSneaking", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "aw" : "isSprinting", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "isSprinting", "(Lapi/player/client/IClientPlayerAPI;)Z", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aw" : "isSprinting", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "aw" : "isSprinting", "()Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "aw" : "isSprinting", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bF" : "jump", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "jump", "(Lapi/player/client/IClientPlayerAPI;)V", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bF" : "jump", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bF" : "jump", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bF" : "jump", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lpk;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;Lnet/minecraft/entity/Entity;FDD)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realKnockBack", "(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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lpk;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superKnockBack", "(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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lpk;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalKnockBack) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localKnockBack", "(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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lpk;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", false); - 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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "d" : "moveEntity", "(DDD)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "d" : "moveEntity", "(DDD)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "d" : "moveEntity", "(DDD)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "g" : "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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "g" : "moveEntityWithHeading", "(FF)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "g" : "moveEntityWithHeading", "(FF)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "g" : "moveEntityWithHeading", "(FF)V", false); - 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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "moveFlying", "(FFF)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "moveFlying", "(FFF)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "moveFlying", "(FFF)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Low;)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;Lnet/minecraft/util/DamageSource;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnDeath", "(Lnet/minecraft/util/DamageSource;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Low;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnDeath", "(Lnet/minecraft/util/DamageSource;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Low;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalOnDeath) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnDeath", "(Lnet/minecraft/util/DamageSource;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Low;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "m" : "onLivingUpdate", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "onLivingUpdate", "(Lapi/player/client/IClientPlayerAPI;)V", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "m" : "onLivingUpdate", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "m" : "onLivingUpdate", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "m" : "onLivingUpdate", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lpr;)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;Lnet/minecraft/entity/EntityLivingBase;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnKillEntity", "(Lnet/minecraft/entity/EntityLivingBase;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lpr;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnKillEntity", "(Lnet/minecraft/entity/EntityLivingBase;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lpr;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalOnKillEntity) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnKillEntity", "(Lnet/minecraft/entity/EntityLivingBase;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lpr;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Luv;)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;Lnet/minecraft/entity/effect/EntityLightningBolt;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnStruckByLightning", "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Luv;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnStruckByLightning", "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Luv;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalOnStruckByLightning) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnStruckByLightning", "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Luv;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "t_" : "onUpdate", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "onUpdate", "(Lapi/player/client/IClientPlayerAPI;)V", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "t_" : "onUpdate", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "t_" : "onUpdate", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "t_" : "onUpdate", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "playStepSound", "" + (isObfuscated ? "(Lcj;Lafh;)V" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V") + "", 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", "playStepSound", "(Lapi/player/client/IClientPlayerAPI;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realPlayStepSound", "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "playStepSound", "" + (isObfuscated ? "(Lcj;Lafh;)V" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superPlayStepSound", "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "playStepSound", "" + (isObfuscated ? "(Lcj;Lafh;)V" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalPlayStepSound) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localPlayStepSound", "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "playStepSound", "" + (isObfuscated ? "(Lcj;Lafh;)V" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/Block;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "j" : "pushOutOfBlocks", "(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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "j" : "pushOutOfBlocks", "(DDD)Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "j" : "pushOutOfBlocks", "(DDD)Z", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "j" : "pushOutOfBlocks", "(DDD)Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "rayTrace", "" + (isObfuscated ? "(DF)Lauh;" : "(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 ? "Lauh;" : "Lnet/minecraft/util/MovingObjectPosition;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realRayTrace", "(DF)" + (isObfuscated ? "Lauh;" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "rayTrace", "" + (isObfuscated ? "(DF)Lauh;" : "(DF)Lnet/minecraft/util/MovingObjectPosition;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superRayTrace", "(DF)" + (isObfuscated ? "Lauh;" : "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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "rayTrace", "" + (isObfuscated ? "(DF)Lauh;" : "(DF)Lnet/minecraft/util/MovingObjectPosition;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalRayTrace) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localRayTrace", "(DF)" + (isObfuscated ? "Lauh;" : "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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "rayTrace", "" + (isObfuscated ? "(DF)Lauh;" : "(DF)Lnet/minecraft/util/MovingObjectPosition;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldn;)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;Lnet/minecraft/nbt/NBTTagCompound;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realReadEntityFromNBT", "(Lnet/minecraft/nbt/NBTTagCompound;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldn;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superReadEntityFromNBT", "(Lnet/minecraft/nbt/NBTTagCompound;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldn;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalReadEntityFromNBT) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localReadEntityFromNBT", "(Lnet/minecraft/nbt/NBTTagCompound;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldn;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "cb" : "respawnPlayer", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "respawnPlayer", "(Lapi/player/client/IClientPlayerAPI;)V", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "cb" : "respawnPlayer", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "cb" : "respawnPlayer", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "cb" : "respawnPlayer", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "J" : "setDead", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "setDead", "(Lapi/player/client/IClientPlayerAPI;)V", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "J" : "setDead", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "J" : "setDead", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "J" : "setDead", "()V", false); - 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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "n" : "setPlayerSPHealth", "(F)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "n" : "setPlayerSPHealth", "(F)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "n" : "setPlayerSPHealth", "(F)V", false); - 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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "setPositionAndRotation", "(DDDFF)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "setPositionAndRotation", "(DDDFF)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "setPositionAndRotation", "(DDDFF)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "c" : "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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "c" : "setSneaking", "(Z)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "c" : "setSneaking", "(Z)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "c" : "setSneaking", "(Z)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "d" : "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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "d" : "setSprinting", "(Z)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "d" : "setSprinting", "(Z)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "d" : "setSprinting", "(Z)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "trySleep", "" + (isObfuscated ? "(Lcj;)Lwn$a;" : "(Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "trySleep", "(Lapi/player/client/IClientPlayerAPI;Lnet/minecraft/util/BlockPos;)" + (isObfuscated ? "Lwn$a;" : "Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realTrySleep", "(Lnet/minecraft/util/BlockPos;)" + (isObfuscated ? "Lwn$a;" : "Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "trySleep", "" + (isObfuscated ? "(Lcj;)Lwn$a;" : "(Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superTrySleep", "(Lnet/minecraft/util/BlockPos;)" + (isObfuscated ? "Lwn$a;" : "Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "trySleep", "" + (isObfuscated ? "(Lcj;)Lwn$a;" : "(Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalTrySleep) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localTrySleep", "(Lnet/minecraft/util/BlockPos;)" + (isObfuscated ? "Lwn$a;" : "Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "trySleep", "" + (isObfuscated ? "(Lcj;)Lwn$a;" : "(Lnet/minecraft/util/BlockPos;)Lnet/minecraft/entity/player/EntityPlayer$EnumStatus;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bw" : "swingItem", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "swingItem", "(Lapi/player/client/IClientPlayerAPI;)V", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bw" : "swingItem", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bw" : "swingItem", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bw" : "swingItem", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bK" : "updateEntityActionState", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "updateEntityActionState", "(Lapi/player/client/IClientPlayerAPI;)V", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bK" : "updateEntityActionState", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bK" : "updateEntityActionState", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "bK" : "updateEntityActionState", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "ak" : "updateRidden", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "updateRidden", "(Lapi/player/client/IClientPlayerAPI;)V", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ak" : "updateRidden", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "ak" : "updateRidden", "()V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "ak" : "updateRidden", "()V", false); - 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", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V", false); - 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 ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldn;)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;Lnet/minecraft/nbt/NBTTagCompound;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realWriteEntityToNBT", "(Lnet/minecraft/nbt/NBTTagCompound;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldn;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superWriteEntityToNBT", "(Lnet/minecraft/nbt/NBTTagCompound;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldn;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalWriteEntityToNBT) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localWriteEntityToNBT", "(Lnet/minecraft/nbt/NBTTagCompound;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "bet" : "net/minecraft/client/entity/AbstractClientPlayer", isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldn;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", false); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ad" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ad" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "at" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "at" : "arrowHitTimer", "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aw" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aw" : "attackedAtYaw", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getAttackingPlayerField", isObfuscated ? "()Lwn;" : "()Lnet/minecraft/entity/player/EntityPlayer;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aN" : "attackingPlayer", isObfuscated ? "Lwn;" : "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 ? "(Lwn;)V" : "(Lnet/minecraft/entity/player/EntityPlayer;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aN" : "attackingPlayer", isObfuscated ? "Lwn;" : "Lnet/minecraft/entity/player/EntityPlayer;"); - mv.visitInsn(Opcodes.RETURN); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aF" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aF" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bo" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bo" : "cameraYaw", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getCapabilitiesField", isObfuscated ? "()Lwl;" : "()Lnet/minecraft/entity/player/PlayerCapabilities;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bA" : "capabilities", isObfuscated ? "Lwl;" : "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 ? "(Lwl;)V" : "(Lnet/minecraft/entity/player/PlayerCapabilities;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bA" : "capabilities", isObfuscated ? "Lwl;" : "Lnet/minecraft/entity/player/PlayerCapabilities;"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChasingPosXField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bt" : "chasingPosX", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChasingPosXField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bt" : "chasingPosX", "D"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChasingPosYField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bu" : "chasingPosY", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChasingPosYField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bu" : "chasingPosY", "D"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChasingPosZField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bv" : "chasingPosZ", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChasingPosZField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bv" : "chasingPosZ", "D"); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ae" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ae" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "af" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "af" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ag" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ag" : "chunkCoordZ", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getClientBrandField", "()Ljava/lang/String;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bT" : "clientBrand", "Ljava/lang/String;"); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setClientBrandField", "(Ljava/lang/String;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bT" : "clientBrand", "Ljava/lang/String;"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDataWatcherField", isObfuscated ? "()Lpz;" : "()Lnet/minecraft/entity/DataWatcher;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ac" : "dataWatcher", isObfuscated ? "Lpz;" : "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 ? "(Lpz;)V" : "(Lnet/minecraft/entity/DataWatcher;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ac" : "dataWatcher", isObfuscated ? "Lpz;" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aP" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aP" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ax" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ax" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "am" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "am" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "M" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "M" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "N" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "N" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aQ" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aQ" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "U" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "U" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aq" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aq" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bD" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bD" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bB" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bB" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bC" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bC" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "O" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "O" : "fallDistance", "F"); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "X" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "X" : "fireResistance", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFirstUpdateField", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aa" : "firstUpdate", "Z"); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setFirstUpdateField", "(Z)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aa" : "firstUpdate", "Z"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFishEntityField", isObfuscated ? "()Lur;" : "()Lnet/minecraft/entity/projectile/EntityFishHook;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bG" : "fishEntity", isObfuscated ? "Lur;" : "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 ? "(Lur;)V" : "(Lnet/minecraft/entity/projectile/EntityFishHook;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bG" : "fishEntity", isObfuscated ? "Lur;" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bm" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bm" : "flyToggleTimer", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFoodStatsField", isObfuscated ? "()Lxg;" : "()Lnet/minecraft/util/FoodStats;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bl" : "foodStats", isObfuscated ? "Lxg;" : "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 ? "(Lxg;)V" : "(Lnet/minecraft/util/FoodStats;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bl" : "foodStats", isObfuscated ? "Lxg;" : "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 ? "bew" : "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 ? "bew" : "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, "getHasValidHealthField", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bS" : "hasValidHealth", "Z"); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setHasValidHealthField", "(Z)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bS" : "hasValidHealth", "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "K" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "K" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bV" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bV" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bU" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bU" : "horseJumpPowerCounter", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getHundredEightyField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aV" : "field_70741_aB", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setHundredEightyField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aV" : "field_70741_aB", "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "Z" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "Z" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "au" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "au" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ah" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ah" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ak" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ak" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "Y" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "Y" : "inWater", "Z"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getInventoryField", isObfuscated ? "()Lwm;" : "()Lnet/minecraft/entity/player/InventoryPlayer;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bi" : "inventory", isObfuscated ? "Lwm;" : "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 ? "(Lwm;)V" : "(Lnet/minecraft/entity/player/InventoryPlayer;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bi" : "inventory", isObfuscated ? "Lwm;" : "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 ? "()Lxi;" : "()Lnet/minecraft/inventory/Container;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bj" : "inventoryContainer", isObfuscated ? "Lxi;" : "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 ? "(Lxi;)V" : "(Lnet/minecraft/inventory/Container;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bj" : "inventoryContainer", isObfuscated ? "Lxi;" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ai" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ai" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "F" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "F" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "D" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "D" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "E" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "E" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "I" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "I" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ab" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ab" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "H" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "H" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aY" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aY" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ar" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ar" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aM" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aM" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aX" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aX" : "lastDamage", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastPortalPosField", isObfuscated ? "()Lcj;" : "()Lnet/minecraft/util/BlockPos;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "an" : "field_181016_an", isObfuscated ? "Lcj;" : "Lnet/minecraft/util/BlockPos;"); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastPortalPosField", isObfuscated ? "(Lcj;)V" : "(Lnet/minecraft/util/BlockPos;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "an" : "field_181016_an", isObfuscated ? "Lcj;" : "Lnet/minecraft/util/BlockPos;"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastPortalVecField", isObfuscated ? "()Laui;" : "()Lnet/minecraft/util/Vec3;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ao" : "field_181017_ao", isObfuscated ? "Laui;" : "Lnet/minecraft/util/Vec3;"); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastPortalVecField", isObfuscated ? "(Laui;)V" : "(Lnet/minecraft/util/Vec3;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ao" : "field_181017_ao", isObfuscated ? "Laui;" : "Lnet/minecraft/util/Vec3;"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastReportedPitchField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bO" : "lastReportedPitch", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastReportedPitchField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bO" : "lastReportedPitch", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastReportedPosXField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bK" : "lastReportedPosX", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastReportedPosXField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bK" : "lastReportedPosX", "D"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastReportedPosYField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bL" : "lastReportedPosY", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastReportedPosYField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bL" : "lastReportedPosY", "D"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastReportedPosZField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bM" : "lastReportedPosZ", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastReportedPosZField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bM" : "lastReportedPosZ", "D"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastReportedYawField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bN" : "lastReportedYaw", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastReportedYawField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bN" : "lastReportedYaw", "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "P" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "P" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "Q" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "Q" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "R" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "R" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aC" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aC" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aB" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aB" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aD" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aD" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "av" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "av" : "maxHurtTime", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMcField", isObfuscated ? "()Lave;" : "()Lnet/minecraft/client/Minecraft;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "c" : "mc", isObfuscated ? "Lave;" : "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 ? "(Lave;)V" : "(Lnet/minecraft/client/Minecraft;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "c" : "mc", isObfuscated ? "Lave;" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ba" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ba" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aZ" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aZ" : "moveStrafing", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMovedDistanceField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aT" : "movedDistance", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMovedDistanceField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aT" : "movedDistance", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMovementInputField", isObfuscated ? "()Lbeu;" : "()Lnet/minecraft/util/MovementInput;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "b" : "movementInput", isObfuscated ? "Lbeu;" : "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 ? "(Lbeu;)V" : "(Lnet/minecraft/util/MovementInput;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "b" : "movementInput", isObfuscated ? "Lbeu;" : "Lnet/minecraft/util/MovementInput;"); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bc" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bc" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bd" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bd" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "be" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "be" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bf" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bf" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bh" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bh" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bg" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bg" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "T" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "T" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "C" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "C" : "onGround", "Z"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getOnGroundSpeedFactorField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aS" : "onGroundSpeedFactor", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setOnGroundSpeedFactorField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aS" : "onGroundSpeedFactor", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getOpenContainerField", isObfuscated ? "()Lxi;" : "()Lnet/minecraft/inventory/Container;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bk" : "openContainer", isObfuscated ? "Lxi;" : "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 ? "(Lxi;)V" : "(Lnet/minecraft/inventory/Container;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bk" : "openContainer", isObfuscated ? "Lxi;" : "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 ? "()Lcj;" : "()Lnet/minecraft/util/BlockPos;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bx" : "playerLocation", isObfuscated ? "Lcj;" : "Lnet/minecraft/util/BlockPos;"); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPlayerLocationField", isObfuscated ? "(Lcj;)V" : "(Lnet/minecraft/util/BlockPos;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bx" : "playerLocation", isObfuscated ? "Lcj;" : "Lnet/minecraft/util/BlockPos;"); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "al" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "al" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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, "getPositionUpdateTicksField", "()I", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bR" : "positionUpdateTicks", "I"); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPositionUpdateTicksField", "(I)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bR" : "positionUpdateTicks", "I"); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aE" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aE" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bn" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bn" : "prevCameraYaw", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevChasingPosXField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bq" : "prevChasingPosX", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevChasingPosXField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bq" : "prevChasingPosX", "D"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevChasingPosYField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "br" : "prevChasingPosY", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevChasingPosYField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "br" : "prevChasingPosY", "D"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevChasingPosZField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bs" : "prevChasingPosZ", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevChasingPosZField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bs" : "prevChasingPosZ", "D"); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "L" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "L" : "prevDistanceWalkedModified", "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aA" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aA" : "prevLimbSwingAmount", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevMovedDistanceField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aU" : "prevMovedDistance", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevMovedDistanceField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aU" : "prevMovedDistance", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevOnGroundSpeedFactorField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aR" : "prevOnGroundSpeedFactor", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevOnGroundSpeedFactorField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aR" : "prevOnGroundSpeedFactor", "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "i" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "i" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "h" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "h" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aJ" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aJ" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aL" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aL" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ay" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ay" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bI" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bI" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "V" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "V" : "rand", "Ljava/util/Random;"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRandomNumberBetweenOneHundredthAndTwoHundredthField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aH" : "field_70770_ap", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRandomNumberBetweenOneHundredthAndTwoHundredthField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aH" : "field_70770_ap", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRandomNumberBetweenZeroAndTwelveThousandThreeHundredNinetyEightField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aG" : "field_70769_ao", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRandomNumberBetweenZeroAndTwelveThousandThreeHundredNinetyEightField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aG" : "field_70769_ao", "F"); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bb" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bb" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aO" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aO" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "g" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "g" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "f" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "f" : "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 ? "bew" : "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 ? "bew" : "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, "getRenderOffsetXField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "by" : "renderOffsetX", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRenderOffsetXField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "by" : "renderOffsetX", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRenderOffsetYField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bZ" : "renderOffsetY", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRenderOffsetYField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bZ" : "renderOffsetY", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRenderOffsetZField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bz" : "renderOffsetZ", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRenderOffsetZField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bz" : "renderOffsetZ", "F"); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aI" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aI" : "renderYawOffset", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRiddenByEntityField", isObfuscated ? "()Lpk;" : "()Lnet/minecraft/entity/Entity;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "l" : "riddenByEntity", isObfuscated ? "Lpk;" : "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 ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "l" : "riddenByEntity", isObfuscated ? "Lpk;" : "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 ? "()Lpk;" : "()Lnet/minecraft/entity/Entity;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "m" : "ridingEntity", isObfuscated ? "Lpk;" : "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 ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "m" : "ridingEntity", isObfuscated ? "Lpk;" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aK" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aK" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aW" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aW" : "scoreValue", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSendQueueField", isObfuscated ? "()Lbcy;" : "()Lnet/minecraft/client/network/NetHandlerPlayClient;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "a" : "sendQueue", isObfuscated ? "Lbcy;" : "Lnet/minecraft/client/network/NetHandlerPlayClient;"); - mv.visitInsn(Opcodes.ARETURN); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bW" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bW" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bX" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bX" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bY" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bY" : "serverPosZ", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getServerSneakStateField", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bP" : "serverSneakState", "Z"); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setServerSneakStateField", "(Z)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bP" : "serverSneakState", "Z"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getServerSprintStateField", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bQ" : "serverSprintState", "Z"); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setServerSprintStateField", "(Z)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bQ" : "serverSprintState", "Z"); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bw" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bw" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bF" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bF" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bE" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bE" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "d" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "d" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "e" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "e" : "sprintingTicksLeft", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getStatWriterField", isObfuscated ? "()Lnb;" : "()Lnet/minecraft/stats/StatFileWriter;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bJ" : "statWriter", isObfuscated ? "Lnb;" : "Lnet/minecraft/stats/StatFileWriter;"); - mv.visitInsn(Opcodes.ARETURN); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "S" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "S" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "az" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "az" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "as" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "as" : "swingProgressInt", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getTeleportDirectionField", isObfuscated ? "()Lcq;" : "()Lnet/minecraft/util/EnumFacing;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ap" : "field_181018_ap", isObfuscated ? "Lcq;" : "Lnet/minecraft/util/EnumFacing;"); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setTeleportDirectionField", isObfuscated ? "(Lcq;)V" : "(Lnet/minecraft/util/EnumFacing;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "ap" : "field_181018_ap", isObfuscated ? "Lcq;" : "Lnet/minecraft/util/EnumFacing;"); - 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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "W" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "W" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bH" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bH" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aj" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "aj" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "G" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "G" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "J" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "J" : "width", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getWorldObjField", isObfuscated ? "()Ladm;" : "()Lnet/minecraft/world/World;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "o" : "worldObj", isObfuscated ? "Ladm;" : "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 ? "(Ladm;)V" : "(Lnet/minecraft/world/World;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "o" : "worldObj", isObfuscated ? "Ladm;" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bp" : "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 ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", isObfuscated ? "bp" : "xpCooldown", "I"); - 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;", false); - 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;", false); - 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;", false); - 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 ? "bew" : "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 ? "()Lbew;" : "()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/dependencies/main/java/api/player/client/ClientPlayerConstructorVisitor.java b/dependencies/main/java/api/player/client/ClientPlayerConstructorVisitor.java deleted file mode 100644 index 5ef093d61f..0000000000 --- a/dependencies/main/java/api/player/client/ClientPlayerConstructorVisitor.java +++ /dev/null @@ -1,66 +0,0 @@ -// ================================================================== -// 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; - } - - @Override - public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) - { - super.visitMethodInsn(opcode, owner, name, desc, itf); - if(name.equals("") && owner.equals(isObfuscated ? "bet" : "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;", false); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "bew" : "net/minecraft/client/entity/EntityPlayerSP", "clientPlayerAPI", "Lapi/player/client/ClientPlayerAPI;"); - - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitVarInsn(Opcodes.ALOAD, 3); - mv.visitVarInsn(Opcodes.ALOAD, 4); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "beforeLocalConstructing", "(Lapi/player/client/IClientPlayerAPI;Lnet/minecraft/client/Minecraft;Lnet/minecraft/world/World;Lnet/minecraft/client/network/NetHandlerPlayClient;Lnet/minecraft/stats/StatFileWriter;)V", false); - } - } - - public void visitInsn(int opcode) - { - if(opcode == Opcodes.RETURN) - { - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitVarInsn(Opcodes.ALOAD, 3); - mv.visitVarInsn(Opcodes.ALOAD, 4); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/client/ClientPlayerAPI", "afterLocalConstructing", "(Lapi/player/client/IClientPlayerAPI;Lnet/minecraft/client/Minecraft;Lnet/minecraft/world/World;Lnet/minecraft/client/network/NetHandlerPlayClient;Lnet/minecraft/stats/StatFileWriter;)V", false); - } - super.visitInsn(opcode); - } -} diff --git a/dependencies/main/java/api/player/client/IClientPlayer.java b/dependencies/main/java/api/player/client/IClientPlayer.java deleted file mode 100644 index 3cf9fdc050..0000000000 --- a/dependencies/main/java/api/player/client/IClientPlayer.java +++ /dev/null @@ -1,1025 +0,0 @@ -// ================================================================== -// 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(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack); - - boolean superCanPlayerEdit(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack); - - boolean localCanPlayerEdit(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, 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 realDisplayGui(net.minecraft.world.IInteractionObject paramIInteractionObject); - - void superDisplayGui(net.minecraft.world.IInteractionObject paramIInteractionObject); - - void localDisplayGui(net.minecraft.world.IInteractionObject paramIInteractionObject); - - void realDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory); - - void superDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory); - - void localDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory); - - net.minecraft.entity.item.EntityItem realDropItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2); - - net.minecraft.entity.item.EntityItem superDropItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2); - - net.minecraft.entity.item.EntityItem localDropItem(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean1, boolean paramBoolean2); - - 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 realDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean); - - net.minecraft.entity.item.EntityItem superDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean); - - net.minecraft.entity.item.EntityItem localDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean); - - void realFall(float paramFloat1, float paramFloat2); - - void superFall(float paramFloat1, float paramFloat2); - - void localFall(float paramFloat1, float paramFloat2); - - 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 realGetBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos); - - float superGetBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos); - - float localGetBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos); - - 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 realGetFovModifier(); - - float superGetFovModifier(); - - float localGetFovModifier(); - - java.lang.String realGetHurtSound(); - - java.lang.String superGetHurtSound(); - - java.lang.String localGetHurtSound(); - - java.lang.String realGetName(); - - java.lang.String superGetName(); - - java.lang.String localGetName(); - - int realGetSleepTimer(); - - int superGetSleepTimer(); - - int localGetSleepTimer(); - - 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(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.block.Block paramBlock); - - void superPlayStepSound(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.block.Block paramBlock); - - void localPlayStepSound(net.minecraft.util.BlockPos paramBlockPos, 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 realTrySleep(net.minecraft.util.BlockPos paramBlockPos); - - net.minecraft.entity.player.EntityPlayer.EnumStatus superTrySleep(net.minecraft.util.BlockPos paramBlockPos); - - net.minecraft.entity.player.EntityPlayer.EnumStatus localTrySleep(net.minecraft.util.BlockPos paramBlockPos); - - 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); - - float getAttackedAtYawField(); - - void setAttackedAtYawField(float attackedAtYaw); - - net.minecraft.entity.player.EntityPlayer getAttackingPlayerField(); - - void setAttackingPlayerField(net.minecraft.entity.player.EntityPlayer attackingPlayer); - - 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); - - double getChasingPosXField(); - - void setChasingPosXField(double chasingPosX); - - double getChasingPosYField(); - - void setChasingPosYField(double chasingPosY); - - double getChasingPosZField(); - - void setChasingPosZField(double chasingPosZ); - - int getChunkCoordXField(); - - void setChunkCoordXField(int chunkCoordX); - - int getChunkCoordYField(); - - void setChunkCoordYField(int chunkCoordY); - - int getChunkCoordZField(); - - void setChunkCoordZField(int chunkCoordZ); - - java.lang.String getClientBrandField(); - - void setClientBrandField(java.lang.String clientBrand); - - 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); - - int getFireResistanceField(); - - void setFireResistanceField(int fireResistance); - - boolean getFirstUpdateField(); - - void setFirstUpdateField(boolean firstUpdate); - - 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); - - boolean getHasValidHealthField(); - - void setHasValidHealthField(boolean hasValidHealth); - - float getHeightField(); - - void setHeightField(float height); - - float getHorseJumpPowerField(); - - void setHorseJumpPowerField(float horseJumpPower); - - int getHorseJumpPowerCounterField(); - - void setHorseJumpPowerCounterField(int horseJumpPowerCounter); - - float getHundredEightyField(); - - void setHundredEightyField(float hundredEighty); - - 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); - - net.minecraft.util.BlockPos getLastPortalPosField(); - - void setLastPortalPosField(net.minecraft.util.BlockPos lastPortalPos); - - net.minecraft.util.Vec3 getLastPortalVecField(); - - void setLastPortalVecField(net.minecraft.util.Vec3 lastPortalVec); - - float getLastReportedPitchField(); - - void setLastReportedPitchField(float lastReportedPitch); - - double getLastReportedPosXField(); - - void setLastReportedPosXField(double lastReportedPosX); - - double getLastReportedPosYField(); - - void setLastReportedPosYField(double lastReportedPosY); - - double getLastReportedPosZField(); - - void setLastReportedPosZField(double lastReportedPosZ); - - float getLastReportedYawField(); - - void setLastReportedYawField(float lastReportedYaw); - - 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); - - float getMovedDistanceField(); - - void setMovedDistanceField(float movedDistance); - - net.minecraft.util.MovementInput getMovementInputField(); - - void setMovementInputField(net.minecraft.util.MovementInput movementInput); - - 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); - - float getOnGroundSpeedFactorField(); - - void setOnGroundSpeedFactorField(float onGroundSpeedFactor); - - net.minecraft.inventory.Container getOpenContainerField(); - - void setOpenContainerField(net.minecraft.inventory.Container openContainer); - - net.minecraft.util.BlockPos getPlayerLocationField(); - - void setPlayerLocationField(net.minecraft.util.BlockPos 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); - - int getPositionUpdateTicksField(); - - void setPositionUpdateTicksField(int positionUpdateTicks); - - float getPrevCameraPitchField(); - - void setPrevCameraPitchField(float prevCameraPitch); - - float getPrevCameraYawField(); - - void setPrevCameraYawField(float prevCameraYaw); - - double getPrevChasingPosXField(); - - void setPrevChasingPosXField(double prevChasingPosX); - - double getPrevChasingPosYField(); - - void setPrevChasingPosYField(double prevChasingPosY); - - double getPrevChasingPosZField(); - - void setPrevChasingPosZField(double prevChasingPosZ); - - float getPrevDistanceWalkedModifiedField(); - - void setPrevDistanceWalkedModifiedField(float prevDistanceWalkedModified); - - float getPrevLimbSwingAmountField(); - - void setPrevLimbSwingAmountField(float prevLimbSwingAmount); - - float getPrevMovedDistanceField(); - - void setPrevMovedDistanceField(float prevMovedDistance); - - float getPrevOnGroundSpeedFactorField(); - - void setPrevOnGroundSpeedFactorField(float prevOnGroundSpeedFactor); - - 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 getRandomNumberBetweenOneHundredthAndTwoHundredthField(); - - void setRandomNumberBetweenOneHundredthAndTwoHundredthField(float randomNumberBetweenOneHundredthAndTwoHundredth); - - float getRandomNumberBetweenZeroAndTwelveThousandThreeHundredNinetyEightField(); - - void setRandomNumberBetweenZeroAndTwelveThousandThreeHundredNinetyEightField(float randomNumberBetweenZeroAndTwelveThousandThreeHundredNinetyEight); - - 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 getRenderOffsetXField(); - - void setRenderOffsetXField(float renderOffsetX); - - float getRenderOffsetYField(); - - void setRenderOffsetYField(float renderOffsetY); - - float getRenderOffsetZField(); - - void setRenderOffsetZField(float renderOffsetZ); - - 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); - - net.minecraft.client.network.NetHandlerPlayClient getSendQueueField(); - - int getServerPosXField(); - - void setServerPosXField(int serverPosX); - - int getServerPosYField(); - - void setServerPosYField(int serverPosY); - - int getServerPosZField(); - - void setServerPosZField(int serverPosZ); - - boolean getServerSneakStateField(); - - void setServerSneakStateField(boolean serverSneakState); - - boolean getServerSprintStateField(); - - void setServerSprintStateField(boolean serverSprintState); - - 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); - - net.minecraft.stats.StatFileWriter getStatWriterField(); - - float getStepHeightField(); - - void setStepHeightField(float stepHeight); - - float getSwingProgressField(); - - void setSwingProgressField(float swingProgress); - - int getSwingProgressIntField(); - - void setSwingProgressIntField(int swingProgressInt); - - net.minecraft.util.EnumFacing getTeleportDirectionField(); - - void setTeleportDirectionField(net.minecraft.util.EnumFacing 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); - -} diff --git a/dependencies/main/java/api/player/client/IClientPlayerAPI.java b/dependencies/main/java/api/player/client/IClientPlayerAPI.java deleted file mode 100644 index 5c2235ae6e..0000000000 --- a/dependencies/main/java/api/player/client/IClientPlayerAPI.java +++ /dev/null @@ -1,26 +0,0 @@ -// ================================================================== -// 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/dependencies/main/java/api/player/forge/PlayerAPIContainer.java b/dependencies/main/java/api/player/forge/PlayerAPIContainer.java deleted file mode 100644 index 884a223405..0000000000 --- a/dependencies/main/java/api/player/forge/PlayerAPIContainer.java +++ /dev/null @@ -1,51 +0,0 @@ -// ================================================================== -// 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 net.minecraftforge.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; - } -} diff --git a/dependencies/main/java/api/player/forge/PlayerAPIPlugin.java b/dependencies/main/java/api/player/forge/PlayerAPIPlugin.java deleted file mode 100644 index 0da6b495be..0000000000 --- a/dependencies/main/java/api/player/forge/PlayerAPIPlugin.java +++ /dev/null @@ -1,57 +0,0 @@ -// ================================================================== -// 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 net.minecraftforge.fml.relauncher.*; - -@IFMLLoadingPlugin.MCVersion("1.8.9") -@IFMLLoadingPlugin.TransformerExclusions("api.player.forge") -public class PlayerAPIPlugin implements IFMLLoadingPlugin -{ - public static String Version = "1.0"; - - 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/dependencies/main/java/api/player/forge/PlayerAPITransformer.java b/dependencies/main/java/api/player/forge/PlayerAPITransformer.java deleted file mode 100644 index 31bd9f48f1..0000000000 --- a/dependencies/main/java/api/player/forge/PlayerAPITransformer.java +++ /dev/null @@ -1,37 +0,0 @@ -// ================================================================== -// 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/dependencies/main/java/api/player/server/IServerPlayer.java b/dependencies/main/java/api/player/server/IServerPlayer.java deleted file mode 100644 index 91b69f530b..0000000000 --- a/dependencies/main/java/api/player/server/IServerPlayer.java +++ /dev/null @@ -1,955 +0,0 @@ -// ================================================================== -// 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(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack); - - boolean superCanPlayerEdit(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack); - - boolean localCanPlayerEdit(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, 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 realDisplayGui(net.minecraft.world.IInteractionObject paramIInteractionObject); - - void superDisplayGui(net.minecraft.world.IInteractionObject paramIInteractionObject); - - void localDisplayGui(net.minecraft.world.IInteractionObject paramIInteractionObject); - - void realDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory); - - void superDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory); - - void localDisplayGUIChest(net.minecraft.inventory.IInventory paramIInventory); - - 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 realDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean); - - net.minecraft.entity.item.EntityItem superDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean); - - net.minecraft.entity.item.EntityItem localDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean); - - void realFall(float paramFloat1, float paramFloat2); - - void superFall(float paramFloat1, float paramFloat2); - - void localFall(float paramFloat1, float paramFloat2); - - float realGetAIMoveSpeed(); - - float superGetAIMoveSpeed(); - - float localGetAIMoveSpeed(); - - float realGetBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos); - - float superGetBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos); - - float localGetBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos); - - 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); - - float getAttackedAtYawField(); - - void setAttackedAtYawField(float attackedAtYaw); - - net.minecraft.entity.player.EntityPlayer getAttackingPlayerField(); - - void setAttackingPlayerField(net.minecraft.entity.player.EntityPlayer attackingPlayer); - - 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); - - double getChasingPosXField(); - - void setChasingPosXField(double chasingPosX); - - double getChasingPosYField(); - - void setChasingPosYField(double chasingPosY); - - double getChasingPosZField(); - - void setChasingPosZField(double chasingPosZ); - - 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); - - float getCombinedHealthField(); - - void setCombinedHealthField(float combinedHealth); - - 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); - - int getFireResistanceField(); - - void setFireResistanceField(int fireResistance); - - boolean getFirstUpdateField(); - - void setFirstUpdateField(boolean firstUpdate); - - 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 getHundredEightyField(); - - void setHundredEightyField(float hundredEighty); - - 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); - - net.minecraft.util.BlockPos getLastPortalPosField(); - - void setLastPortalPosField(net.minecraft.util.BlockPos lastPortalPos); - - net.minecraft.util.Vec3 getLastPortalVecField(); - - void setLastPortalVecField(net.minecraft.util.Vec3 lastPortalVec); - - 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); - - float getMovedDistanceField(); - - void setMovedDistanceField(float movedDistance); - - 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); - - float getOnGroundSpeedFactorField(); - - void setOnGroundSpeedFactorField(float onGroundSpeedFactor); - - net.minecraft.inventory.Container getOpenContainerField(); - - void setOpenContainerField(net.minecraft.inventory.Container openContainer); - - int getPingField(); - - void setPingField(int ping); - - boolean getPlayerConqueredTheEndField(); - - void setPlayerConqueredTheEndField(boolean playerConqueredTheEnd); - - long getPlayerLastActiveTimeField(); - - void setPlayerLastActiveTimeField(long playerLastActiveTime); - - net.minecraft.util.BlockPos getPlayerLocationField(); - - void setPlayerLocationField(net.minecraft.util.BlockPos 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); - - double getPrevChasingPosXField(); - - void setPrevChasingPosXField(double prevChasingPosX); - - double getPrevChasingPosYField(); - - void setPrevChasingPosYField(double prevChasingPosY); - - double getPrevChasingPosZField(); - - void setPrevChasingPosZField(double prevChasingPosZ); - - float getPrevDistanceWalkedModifiedField(); - - void setPrevDistanceWalkedModifiedField(float prevDistanceWalkedModified); - - float getPrevLimbSwingAmountField(); - - void setPrevLimbSwingAmountField(float prevLimbSwingAmount); - - float getPrevMovedDistanceField(); - - void setPrevMovedDistanceField(float prevMovedDistance); - - float getPrevOnGroundSpeedFactorField(); - - void setPrevOnGroundSpeedFactorField(float prevOnGroundSpeedFactor); - - 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 getRandomNumberBetweenOneHundredthAndTwoHundredthField(); - - void setRandomNumberBetweenOneHundredthAndTwoHundredthField(float randomNumberBetweenOneHundredthAndTwoHundredth); - - float getRandomNumberBetweenZeroAndTwelveThousandThreeHundredNinetyEightField(); - - void setRandomNumberBetweenZeroAndTwelveThousandThreeHundredNinetyEightField(float randomNumberBetweenZeroAndTwelveThousandThreeHundredNinetyEight); - - float getRandomYawVelocityField(); - - void setRandomYawVelocityField(float randomYawVelocity); - - int getRecentlyHitField(); - - void setRecentlyHitField(int recentlyHit); - - double getRenderDistanceWeightField(); - - void setRenderDistanceWeightField(double renderDistanceWeight); - - float getRenderOffsetXField(); - - void setRenderOffsetXField(float renderOffsetX); - - float getRenderOffsetYField(); - - void setRenderOffsetYField(float renderOffsetY); - - float getRenderOffsetZField(); - - void setRenderOffsetZField(float renderOffsetZ); - - float getRenderYawOffsetField(); - - void setRenderYawOffsetField(float renderYawOffset); - - int getRespawnInvulnerabilityTicksField(); - - void setRespawnInvulnerabilityTicksField(int respawnInvulnerabilityTicks); - - 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); - - net.minecraft.entity.Entity getSpectatingEntityField(); - - void setSpectatingEntityField(net.minecraft.entity.Entity spectatingEntity); - - float getSpeedInAirField(); - - void setSpeedInAirField(float speedInAir); - - float getSpeedOnGroundField(); - - void setSpeedOnGroundField(float speedOnGround); - - net.minecraft.stats.StatisticsFile getStatsFileField(); - - float getStepHeightField(); - - void setStepHeightField(float stepHeight); - - float getSwingProgressField(); - - void setSwingProgressField(float swingProgress); - - int getSwingProgressIntField(); - - void setSwingProgressIntField(int swingProgressInt); - - net.minecraft.util.EnumFacing getTeleportDirectionField(); - - void setTeleportDirectionField(net.minecraft.util.EnumFacing 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); - -} diff --git a/dependencies/main/java/api/player/server/IServerPlayerAPI.java b/dependencies/main/java/api/player/server/IServerPlayerAPI.java deleted file mode 100644 index 29a4cf6a49..0000000000 --- a/dependencies/main/java/api/player/server/IServerPlayerAPI.java +++ /dev/null @@ -1,26 +0,0 @@ -// ================================================================== -// 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/dependencies/main/java/api/player/server/ServerPlayerAPI.java b/dependencies/main/java/api/player/server/ServerPlayerAPI.java deleted file mode 100644 index 070a8a9f45..0000000000 --- a/dependencies/main/java/api/player/server/ServerPlayerAPI.java +++ /dev/null @@ -1,5737 +0,0 @@ -// ================================================================== -// 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, allBaseBeforeDisplayGuiSuperiors, baseSorting.getBeforeDisplayGuiSuperiors()); - addSorting(id, allBaseBeforeDisplayGuiInferiors, baseSorting.getBeforeDisplayGuiInferiors()); - addSorting(id, allBaseOverrideDisplayGuiSuperiors, baseSorting.getOverrideDisplayGuiSuperiors()); - addSorting(id, allBaseOverrideDisplayGuiInferiors, baseSorting.getOverrideDisplayGuiInferiors()); - addSorting(id, allBaseAfterDisplayGuiSuperiors, baseSorting.getAfterDisplayGuiSuperiors()); - addSorting(id, allBaseAfterDisplayGuiInferiors, baseSorting.getAfterDisplayGuiInferiors()); - - addSorting(id, allBaseBeforeDisplayGUIChestSuperiors, baseSorting.getBeforeDisplayGUIChestSuperiors()); - addSorting(id, allBaseBeforeDisplayGUIChestInferiors, baseSorting.getBeforeDisplayGUIChestInferiors()); - addSorting(id, allBaseOverrideDisplayGUIChestSuperiors, baseSorting.getOverrideDisplayGUIChestSuperiors()); - addSorting(id, allBaseOverrideDisplayGUIChestInferiors, baseSorting.getOverrideDisplayGUIChestInferiors()); - addSorting(id, allBaseAfterDisplayGUIChestSuperiors, baseSorting.getAfterDisplayGUIChestSuperiors()); - addSorting(id, allBaseAfterDisplayGUIChestInferiors, baseSorting.getAfterDisplayGUIChestInferiors()); - - addSorting(id, allBaseBeforeDropOneItemSuperiors, baseSorting.getBeforeDropOneItemSuperiors()); - addSorting(id, allBaseBeforeDropOneItemInferiors, baseSorting.getBeforeDropOneItemInferiors()); - addSorting(id, allBaseOverrideDropOneItemSuperiors, baseSorting.getOverrideDropOneItemSuperiors()); - addSorting(id, allBaseOverrideDropOneItemInferiors, baseSorting.getOverrideDropOneItemInferiors()); - addSorting(id, allBaseAfterDropOneItemSuperiors, baseSorting.getAfterDropOneItemSuperiors()); - addSorting(id, allBaseAfterDropOneItemInferiors, baseSorting.getAfterDropOneItemInferiors()); - - addSorting(id, allBaseBeforeDropPlayerItemWithRandomChoiceSuperiors, baseSorting.getBeforeDropPlayerItemWithRandomChoiceSuperiors()); - addSorting(id, allBaseBeforeDropPlayerItemWithRandomChoiceInferiors, baseSorting.getBeforeDropPlayerItemWithRandomChoiceInferiors()); - addSorting(id, allBaseOverrideDropPlayerItemWithRandomChoiceSuperiors, baseSorting.getOverrideDropPlayerItemWithRandomChoiceSuperiors()); - addSorting(id, allBaseOverrideDropPlayerItemWithRandomChoiceInferiors, baseSorting.getOverrideDropPlayerItemWithRandomChoiceInferiors()); - addSorting(id, allBaseAfterDropPlayerItemWithRandomChoiceSuperiors, baseSorting.getAfterDropPlayerItemWithRandomChoiceSuperiors()); - addSorting(id, allBaseAfterDropPlayerItemWithRandomChoiceInferiors, baseSorting.getAfterDropPlayerItemWithRandomChoiceInferiors()); - - addSorting(id, allBaseBeforeFallSuperiors, baseSorting.getBeforeFallSuperiors()); - addSorting(id, allBaseBeforeFallInferiors, baseSorting.getBeforeFallInferiors()); - addSorting(id, allBaseOverrideFallSuperiors, baseSorting.getOverrideFallSuperiors()); - addSorting(id, allBaseOverrideFallInferiors, baseSorting.getOverrideFallInferiors()); - addSorting(id, allBaseAfterFallSuperiors, baseSorting.getAfterFallSuperiors()); - addSorting(id, allBaseAfterFallInferiors, baseSorting.getAfterFallInferiors()); - - addSorting(id, allBaseBeforeGetAIMoveSpeedSuperiors, baseSorting.getBeforeGetAIMoveSpeedSuperiors()); - addSorting(id, allBaseBeforeGetAIMoveSpeedInferiors, baseSorting.getBeforeGetAIMoveSpeedInferiors()); - addSorting(id, allBaseOverrideGetAIMoveSpeedSuperiors, baseSorting.getOverrideGetAIMoveSpeedSuperiors()); - addSorting(id, allBaseOverrideGetAIMoveSpeedInferiors, baseSorting.getOverrideGetAIMoveSpeedInferiors()); - addSorting(id, allBaseAfterGetAIMoveSpeedSuperiors, baseSorting.getAfterGetAIMoveSpeedSuperiors()); - addSorting(id, allBaseAfterGetAIMoveSpeedInferiors, baseSorting.getAfterGetAIMoveSpeedInferiors()); - - addSorting(id, allBaseBeforeGetBreakSpeedSuperiors, baseSorting.getBeforeGetBreakSpeedSuperiors()); - addSorting(id, allBaseBeforeGetBreakSpeedInferiors, baseSorting.getBeforeGetBreakSpeedInferiors()); - addSorting(id, allBaseOverrideGetBreakSpeedSuperiors, baseSorting.getOverrideGetBreakSpeedSuperiors()); - addSorting(id, allBaseOverrideGetBreakSpeedInferiors, baseSorting.getOverrideGetBreakSpeedInferiors()); - addSorting(id, allBaseAfterGetBreakSpeedSuperiors, baseSorting.getAfterGetBreakSpeedSuperiors()); - addSorting(id, allBaseAfterGetBreakSpeedInferiors, baseSorting.getAfterGetBreakSpeedInferiors()); - - addSorting(id, allBaseBeforeGetDistanceSqSuperiors, baseSorting.getBeforeGetDistanceSqSuperiors()); - addSorting(id, allBaseBeforeGetDistanceSqInferiors, baseSorting.getBeforeGetDistanceSqInferiors()); - addSorting(id, allBaseOverrideGetDistanceSqSuperiors, baseSorting.getOverrideGetDistanceSqSuperiors()); - addSorting(id, allBaseOverrideGetDistanceSqInferiors, baseSorting.getOverrideGetDistanceSqInferiors()); - addSorting(id, allBaseAfterGetDistanceSqSuperiors, baseSorting.getAfterGetDistanceSqSuperiors()); - addSorting(id, allBaseAfterGetDistanceSqInferiors, baseSorting.getAfterGetDistanceSqInferiors()); - - addSorting(id, 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", net.minecraft.util.BlockPos.class, net.minecraft.util.EnumFacing.class, net.minecraft.item.ItemStack.class); - addMethod(id, baseClass, overrideCanPlayerEditHookTypes, "canPlayerEdit", net.minecraft.util.BlockPos.class, net.minecraft.util.EnumFacing.class, net.minecraft.item.ItemStack.class); - addMethod(id, baseClass, afterCanPlayerEditHookTypes, "afterCanPlayerEdit", net.minecraft.util.BlockPos.class, net.minecraft.util.EnumFacing.class, net.minecraft.item.ItemStack.class); - - addMethod(id, baseClass, beforeCanTriggerWalkingHookTypes, "beforeCanTriggerWalking"); - addMethod(id, baseClass, overrideCanTriggerWalkingHookTypes, "canTriggerWalking"); - addMethod(id, baseClass, afterCanTriggerWalkingHookTypes, "afterCanTriggerWalking"); - - addMethod(id, baseClass, 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, beforeDisplayGuiHookTypes, "beforeDisplayGui", net.minecraft.world.IInteractionObject.class); - addMethod(id, baseClass, overrideDisplayGuiHookTypes, "displayGui", net.minecraft.world.IInteractionObject.class); - addMethod(id, baseClass, afterDisplayGuiHookTypes, "afterDisplayGui", net.minecraft.world.IInteractionObject.class); - - addMethod(id, baseClass, beforeDisplayGUIChestHookTypes, "beforeDisplayGUIChest", net.minecraft.inventory.IInventory.class); - addMethod(id, baseClass, overrideDisplayGUIChestHookTypes, "displayGUIChest", net.minecraft.inventory.IInventory.class); - addMethod(id, baseClass, afterDisplayGUIChestHookTypes, "afterDisplayGUIChest", net.minecraft.inventory.IInventory.class); - - addMethod(id, baseClass, beforeDropOneItemHookTypes, "beforeDropOneItem", boolean.class); - addMethod(id, baseClass, overrideDropOneItemHookTypes, "dropOneItem", boolean.class); - addMethod(id, baseClass, afterDropOneItemHookTypes, "afterDropOneItem", boolean.class); - - addMethod(id, baseClass, beforeDropPlayerItemWithRandomChoiceHookTypes, "beforeDropPlayerItemWithRandomChoice", net.minecraft.item.ItemStack.class, boolean.class); - addMethod(id, baseClass, overrideDropPlayerItemWithRandomChoiceHookTypes, "dropPlayerItemWithRandomChoice", net.minecraft.item.ItemStack.class, boolean.class); - addMethod(id, baseClass, afterDropPlayerItemWithRandomChoiceHookTypes, "afterDropPlayerItemWithRandomChoice", net.minecraft.item.ItemStack.class, boolean.class); - - addMethod(id, baseClass, beforeFallHookTypes, "beforeFall", float.class, float.class); - addMethod(id, baseClass, overrideFallHookTypes, "fall", float.class, float.class); - addMethod(id, baseClass, afterFallHookTypes, "afterFall", float.class, float.class); - - addMethod(id, baseClass, beforeGetAIMoveSpeedHookTypes, "beforeGetAIMoveSpeed"); - addMethod(id, baseClass, overrideGetAIMoveSpeedHookTypes, "getAIMoveSpeed"); - addMethod(id, baseClass, afterGetAIMoveSpeedHookTypes, "afterGetAIMoveSpeed"); - - addMethod(id, baseClass, beforeGetBreakSpeedHookTypes, "beforeGetBreakSpeed", net.minecraft.block.state.IBlockState.class, net.minecraft.util.BlockPos.class); - addMethod(id, baseClass, overrideGetBreakSpeedHookTypes, "getBreakSpeed", net.minecraft.block.state.IBlockState.class, net.minecraft.util.BlockPos.class); - addMethod(id, baseClass, afterGetBreakSpeedHookTypes, "afterGetBreakSpeed", net.minecraft.block.state.IBlockState.class, net.minecraft.util.BlockPos.class); - - addMethod(id, baseClass, beforeGetDistanceSqHookTypes, "beforeGetDistanceSq", double.class, double.class, double.class); - addMethod(id, baseClass, overrideGetDistanceSqHookTypes, "getDistanceSq", double.class, double.class, double.class); - addMethod(id, baseClass, afterGetDistanceSqHookTypes, "afterGetDistanceSq", double.class, double.class, double.class); - - addMethod(id, baseClass, 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); - - allBaseBeforeDisplayGuiSuperiors.remove(id); - allBaseBeforeDisplayGuiInferiors.remove(id); - allBaseOverrideDisplayGuiSuperiors.remove(id); - allBaseOverrideDisplayGuiInferiors.remove(id); - allBaseAfterDisplayGuiSuperiors.remove(id); - allBaseAfterDisplayGuiInferiors.remove(id); - - beforeDisplayGuiHookTypes.remove(id); - overrideDisplayGuiHookTypes.remove(id); - afterDisplayGuiHookTypes.remove(id); - - allBaseBeforeDisplayGUIChestSuperiors.remove(id); - allBaseBeforeDisplayGUIChestInferiors.remove(id); - allBaseOverrideDisplayGUIChestSuperiors.remove(id); - allBaseOverrideDisplayGUIChestInferiors.remove(id); - allBaseAfterDisplayGUIChestSuperiors.remove(id); - allBaseAfterDisplayGUIChestInferiors.remove(id); - - beforeDisplayGUIChestHookTypes.remove(id); - overrideDisplayGUIChestHookTypes.remove(id); - afterDisplayGUIChestHookTypes.remove(id); - - allBaseBeforeDropOneItemSuperiors.remove(id); - allBaseBeforeDropOneItemInferiors.remove(id); - allBaseOverrideDropOneItemSuperiors.remove(id); - allBaseOverrideDropOneItemInferiors.remove(id); - allBaseAfterDropOneItemSuperiors.remove(id); - allBaseAfterDropOneItemInferiors.remove(id); - - beforeDropOneItemHookTypes.remove(id); - overrideDropOneItemHookTypes.remove(id); - afterDropOneItemHookTypes.remove(id); - - allBaseBeforeDropPlayerItemWithRandomChoiceSuperiors.remove(id); - allBaseBeforeDropPlayerItemWithRandomChoiceInferiors.remove(id); - allBaseOverrideDropPlayerItemWithRandomChoiceSuperiors.remove(id); - allBaseOverrideDropPlayerItemWithRandomChoiceInferiors.remove(id); - allBaseAfterDropPlayerItemWithRandomChoiceSuperiors.remove(id); - allBaseAfterDropPlayerItemWithRandomChoiceInferiors.remove(id); - - beforeDropPlayerItemWithRandomChoiceHookTypes.remove(id); - overrideDropPlayerItemWithRandomChoiceHookTypes.remove(id); - afterDropPlayerItemWithRandomChoiceHookTypes.remove(id); - - allBaseBeforeFallSuperiors.remove(id); - allBaseBeforeFallInferiors.remove(id); - allBaseOverrideFallSuperiors.remove(id); - allBaseOverrideFallInferiors.remove(id); - allBaseAfterFallSuperiors.remove(id); - allBaseAfterFallInferiors.remove(id); - - beforeFallHookTypes.remove(id); - overrideFallHookTypes.remove(id); - afterFallHookTypes.remove(id); - - allBaseBeforeGetAIMoveSpeedSuperiors.remove(id); - allBaseBeforeGetAIMoveSpeedInferiors.remove(id); - allBaseOverrideGetAIMoveSpeedSuperiors.remove(id); - allBaseOverrideGetAIMoveSpeedInferiors.remove(id); - allBaseAfterGetAIMoveSpeedSuperiors.remove(id); - allBaseAfterGetAIMoveSpeedInferiors.remove(id); - - beforeGetAIMoveSpeedHookTypes.remove(id); - overrideGetAIMoveSpeedHookTypes.remove(id); - afterGetAIMoveSpeedHookTypes.remove(id); - - allBaseBeforeGetBreakSpeedSuperiors.remove(id); - allBaseBeforeGetBreakSpeedInferiors.remove(id); - allBaseOverrideGetBreakSpeedSuperiors.remove(id); - allBaseOverrideGetBreakSpeedInferiors.remove(id); - allBaseAfterGetBreakSpeedSuperiors.remove(id); - allBaseAfterGetBreakSpeedInferiors.remove(id); - - beforeGetBreakSpeedHookTypes.remove(id); - overrideGetBreakSpeedHookTypes.remove(id); - afterGetBreakSpeedHookTypes.remove(id); - - allBaseBeforeGetDistanceSqSuperiors.remove(id); - allBaseBeforeGetDistanceSqInferiors.remove(id); - allBaseOverrideGetDistanceSqSuperiors.remove(id); - allBaseOverrideGetDistanceSqInferiors.remove(id); - allBaseAfterGetDistanceSqSuperiors.remove(id); - allBaseAfterGetDistanceSqInferiors.remove(id); - - beforeGetDistanceSqHookTypes.remove(id); - overrideGetDistanceSqHookTypes.remove(id); - afterGetDistanceSqHookTypes.remove(id); - - 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(beforeDisplayGuiHookTypes, allBaseBeforeDisplayGuiSuperiors, allBaseBeforeDisplayGuiInferiors, "beforeDisplayGui"); - sortBases(overrideDisplayGuiHookTypes, allBaseOverrideDisplayGuiSuperiors, allBaseOverrideDisplayGuiInferiors, "overrideDisplayGui"); - sortBases(afterDisplayGuiHookTypes, allBaseAfterDisplayGuiSuperiors, allBaseAfterDisplayGuiInferiors, "afterDisplayGui"); - - sortBases(beforeDisplayGUIChestHookTypes, allBaseBeforeDisplayGUIChestSuperiors, allBaseBeforeDisplayGUIChestInferiors, "beforeDisplayGUIChest"); - sortBases(overrideDisplayGUIChestHookTypes, allBaseOverrideDisplayGUIChestSuperiors, allBaseOverrideDisplayGUIChestInferiors, "overrideDisplayGUIChest"); - sortBases(afterDisplayGUIChestHookTypes, allBaseAfterDisplayGUIChestSuperiors, allBaseAfterDisplayGUIChestInferiors, "afterDisplayGUIChest"); - - sortBases(beforeDropOneItemHookTypes, allBaseBeforeDropOneItemSuperiors, allBaseBeforeDropOneItemInferiors, "beforeDropOneItem"); - sortBases(overrideDropOneItemHookTypes, allBaseOverrideDropOneItemSuperiors, allBaseOverrideDropOneItemInferiors, "overrideDropOneItem"); - sortBases(afterDropOneItemHookTypes, allBaseAfterDropOneItemSuperiors, allBaseAfterDropOneItemInferiors, "afterDropOneItem"); - - sortBases(beforeDropPlayerItemWithRandomChoiceHookTypes, allBaseBeforeDropPlayerItemWithRandomChoiceSuperiors, allBaseBeforeDropPlayerItemWithRandomChoiceInferiors, "beforeDropPlayerItemWithRandomChoice"); - sortBases(overrideDropPlayerItemWithRandomChoiceHookTypes, allBaseOverrideDropPlayerItemWithRandomChoiceSuperiors, allBaseOverrideDropPlayerItemWithRandomChoiceInferiors, "overrideDropPlayerItemWithRandomChoice"); - sortBases(afterDropPlayerItemWithRandomChoiceHookTypes, allBaseAfterDropPlayerItemWithRandomChoiceSuperiors, allBaseAfterDropPlayerItemWithRandomChoiceInferiors, "afterDropPlayerItemWithRandomChoice"); - - sortBases(beforeFallHookTypes, allBaseBeforeFallSuperiors, allBaseBeforeFallInferiors, "beforeFall"); - sortBases(overrideFallHookTypes, allBaseOverrideFallSuperiors, allBaseOverrideFallInferiors, "overrideFall"); - sortBases(afterFallHookTypes, allBaseAfterFallSuperiors, allBaseAfterFallInferiors, "afterFall"); - - sortBases(beforeGetAIMoveSpeedHookTypes, allBaseBeforeGetAIMoveSpeedSuperiors, allBaseBeforeGetAIMoveSpeedInferiors, "beforeGetAIMoveSpeed"); - sortBases(overrideGetAIMoveSpeedHookTypes, allBaseOverrideGetAIMoveSpeedSuperiors, allBaseOverrideGetAIMoveSpeedInferiors, "overrideGetAIMoveSpeed"); - sortBases(afterGetAIMoveSpeedHookTypes, allBaseAfterGetAIMoveSpeedSuperiors, allBaseAfterGetAIMoveSpeedInferiors, "afterGetAIMoveSpeed"); - - sortBases(beforeGetBreakSpeedHookTypes, allBaseBeforeGetBreakSpeedSuperiors, allBaseBeforeGetBreakSpeedInferiors, "beforeGetBreakSpeed"); - sortBases(overrideGetBreakSpeedHookTypes, allBaseOverrideGetBreakSpeedSuperiors, allBaseOverrideGetBreakSpeedInferiors, "overrideGetBreakSpeed"); - sortBases(afterGetBreakSpeedHookTypes, allBaseAfterGetBreakSpeedSuperiors, allBaseAfterGetBreakSpeedInferiors, "afterGetBreakSpeed"); - - sortBases(beforeGetDistanceSqHookTypes, allBaseBeforeGetDistanceSqSuperiors, allBaseBeforeGetDistanceSqInferiors, "beforeGetDistanceSq"); - sortBases(overrideGetDistanceSqHookTypes, allBaseOverrideGetDistanceSqSuperiors, allBaseOverrideGetDistanceSqInferiors, "overrideGetDistanceSq"); - sortBases(afterGetDistanceSqHookTypes, allBaseAfterGetDistanceSqSuperiors, allBaseAfterGetDistanceSqInferiors, "afterGetDistanceSq"); - - sortBases(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; - - beforeDisplayGuiHooks = create(beforeDisplayGuiHookTypes); - overrideDisplayGuiHooks = create(overrideDisplayGuiHookTypes); - afterDisplayGuiHooks = create(afterDisplayGuiHookTypes); - isDisplayGuiModded = - beforeDisplayGuiHooks != null || - overrideDisplayGuiHooks != null || - afterDisplayGuiHooks != null; - - beforeDisplayGUIChestHooks = create(beforeDisplayGUIChestHookTypes); - overrideDisplayGUIChestHooks = create(overrideDisplayGUIChestHookTypes); - afterDisplayGUIChestHooks = create(afterDisplayGUIChestHookTypes); - isDisplayGUIChestModded = - beforeDisplayGUIChestHooks != null || - overrideDisplayGUIChestHooks != null || - afterDisplayGUIChestHooks != null; - - beforeDropOneItemHooks = create(beforeDropOneItemHookTypes); - overrideDropOneItemHooks = create(overrideDropOneItemHookTypes); - afterDropOneItemHooks = create(afterDropOneItemHookTypes); - isDropOneItemModded = - beforeDropOneItemHooks != null || - overrideDropOneItemHooks != null || - afterDropOneItemHooks != null; - - beforeDropPlayerItemWithRandomChoiceHooks = create(beforeDropPlayerItemWithRandomChoiceHookTypes); - overrideDropPlayerItemWithRandomChoiceHooks = create(overrideDropPlayerItemWithRandomChoiceHookTypes); - afterDropPlayerItemWithRandomChoiceHooks = create(afterDropPlayerItemWithRandomChoiceHookTypes); - isDropPlayerItemWithRandomChoiceModded = - beforeDropPlayerItemWithRandomChoiceHooks != null || - overrideDropPlayerItemWithRandomChoiceHooks != null || - afterDropPlayerItemWithRandomChoiceHooks != null; - - beforeFallHooks = create(beforeFallHookTypes); - overrideFallHooks = create(overrideFallHookTypes); - afterFallHooks = create(afterFallHookTypes); - isFallModded = - beforeFallHooks != null || - overrideFallHooks != null || - afterFallHooks != null; - - beforeGetAIMoveSpeedHooks = create(beforeGetAIMoveSpeedHookTypes); - overrideGetAIMoveSpeedHooks = create(overrideGetAIMoveSpeedHookTypes); - afterGetAIMoveSpeedHooks = create(afterGetAIMoveSpeedHookTypes); - isGetAIMoveSpeedModded = - beforeGetAIMoveSpeedHooks != null || - overrideGetAIMoveSpeedHooks != null || - afterGetAIMoveSpeedHooks != null; - - beforeGetBreakSpeedHooks = create(beforeGetBreakSpeedHookTypes); - overrideGetBreakSpeedHooks = create(overrideGetBreakSpeedHookTypes); - afterGetBreakSpeedHooks = create(afterGetBreakSpeedHookTypes); - isGetBreakSpeedModded = - beforeGetBreakSpeedHooks != null || - overrideGetBreakSpeedHooks != null || - afterGetBreakSpeedHooks != null; - - beforeGetDistanceSqHooks = create(beforeGetDistanceSqHookTypes); - overrideGetDistanceSqHooks = create(overrideGetDistanceSqHookTypes); - afterGetDistanceSqHooks = create(afterGetDistanceSqHookTypes); - isGetDistanceSqModded = - beforeGetDistanceSqHooks != null || - overrideGetDistanceSqHooks != null || - afterGetDistanceSqHooks != null; - - 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, net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack) - { - boolean _result; - ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); - if(serverPlayerAPI != null && serverPlayerAPI.isCanPlayerEditModded) - _result = serverPlayerAPI.canPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - else - _result = target.localCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - return _result; - } - - private boolean canPlayerEdit(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack) - { - if(beforeCanPlayerEditHooks != null) - for(int i = beforeCanPlayerEditHooks.length - 1; i >= 0 ; i--) - beforeCanPlayerEditHooks[i].beforeCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - - boolean _result; - if(overrideCanPlayerEditHooks != null) - _result = overrideCanPlayerEditHooks[overrideCanPlayerEditHooks.length - 1].canPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - else - _result = player.localCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - - if(afterCanPlayerEditHooks != null) - for(int i = 0; i < afterCanPlayerEditHooks.length; i++) - afterCanPlayerEditHooks[i].afterCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - - return _result; - } - - protected 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 displayGui(IServerPlayerAPI target, net.minecraft.world.IInteractionObject paramIInteractionObject) - { - ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); - if(serverPlayerAPI != null && serverPlayerAPI.isDisplayGuiModded) - serverPlayerAPI.displayGui(paramIInteractionObject); - else - target.localDisplayGui(paramIInteractionObject); - } - - private void displayGui(net.minecraft.world.IInteractionObject paramIInteractionObject) - { - if(beforeDisplayGuiHooks != null) - for(int i = beforeDisplayGuiHooks.length - 1; i >= 0 ; i--) - beforeDisplayGuiHooks[i].beforeDisplayGui(paramIInteractionObject); - - if(overrideDisplayGuiHooks != null) - overrideDisplayGuiHooks[overrideDisplayGuiHooks.length - 1].displayGui(paramIInteractionObject); - else - player.localDisplayGui(paramIInteractionObject); - - if(afterDisplayGuiHooks != null) - for(int i = 0; i < afterDisplayGuiHooks.length; i++) - afterDisplayGuiHooks[i].afterDisplayGui(paramIInteractionObject); - - } - - protected ServerPlayerBase GetOverwrittenDisplayGui(ServerPlayerBase overWriter) - { - if (overrideDisplayGuiHooks == null) - return overWriter; - - for(int i = 0; i < overrideDisplayGuiHooks.length; i++) - if(overrideDisplayGuiHooks[i] == overWriter) - if(i == 0) - return null; - else - return overrideDisplayGuiHooks[i - 1]; - - return overWriter; - } - - private final static List beforeDisplayGuiHookTypes = new LinkedList(); - private final static List overrideDisplayGuiHookTypes = new LinkedList(); - private final static List afterDisplayGuiHookTypes = new LinkedList(); - - private ServerPlayerBase[] beforeDisplayGuiHooks; - private ServerPlayerBase[] overrideDisplayGuiHooks; - private ServerPlayerBase[] afterDisplayGuiHooks; - - public boolean isDisplayGuiModded; - - private static final Map allBaseBeforeDisplayGuiSuperiors = new Hashtable(0); - private static final Map allBaseBeforeDisplayGuiInferiors = new Hashtable(0); - private static final Map allBaseOverrideDisplayGuiSuperiors = new Hashtable(0); - private static final Map allBaseOverrideDisplayGuiInferiors = new Hashtable(0); - private static final Map allBaseAfterDisplayGuiSuperiors = new Hashtable(0); - private static final Map allBaseAfterDisplayGuiInferiors = 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 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 dropPlayerItemWithRandomChoice(IServerPlayerAPI target, net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) - { - net.minecraft.entity.item.EntityItem _result; - ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); - if(serverPlayerAPI != null && serverPlayerAPI.isDropPlayerItemWithRandomChoiceModded) - _result = serverPlayerAPI.dropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - else - _result = target.localDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - return _result; - } - - private net.minecraft.entity.item.EntityItem dropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) - { - if(beforeDropPlayerItemWithRandomChoiceHooks != null) - for(int i = beforeDropPlayerItemWithRandomChoiceHooks.length - 1; i >= 0 ; i--) - beforeDropPlayerItemWithRandomChoiceHooks[i].beforeDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - - net.minecraft.entity.item.EntityItem _result; - if(overrideDropPlayerItemWithRandomChoiceHooks != null) - _result = overrideDropPlayerItemWithRandomChoiceHooks[overrideDropPlayerItemWithRandomChoiceHooks.length - 1].dropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - else - _result = player.localDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - - if(afterDropPlayerItemWithRandomChoiceHooks != null) - for(int i = 0; i < afterDropPlayerItemWithRandomChoiceHooks.length; i++) - afterDropPlayerItemWithRandomChoiceHooks[i].afterDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - - return _result; - } - - protected ServerPlayerBase GetOverwrittenDropPlayerItemWithRandomChoice(ServerPlayerBase 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 ServerPlayerBase[] beforeDropPlayerItemWithRandomChoiceHooks; - private ServerPlayerBase[] overrideDropPlayerItemWithRandomChoiceHooks; - private ServerPlayerBase[] 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(IServerPlayerAPI target, float paramFloat1, float paramFloat2) - { - ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); - if(serverPlayerAPI != null && serverPlayerAPI.isFallModded) - serverPlayerAPI.fall(paramFloat1, paramFloat2); - else - target.localFall(paramFloat1, paramFloat2); - } - - private void fall(float paramFloat1, float paramFloat2) - { - if(beforeFallHooks != null) - for(int i = beforeFallHooks.length - 1; i >= 0 ; i--) - beforeFallHooks[i].beforeFall(paramFloat1, paramFloat2); - - if(overrideFallHooks != null) - overrideFallHooks[overrideFallHooks.length - 1].fall(paramFloat1, paramFloat2); - else - player.localFall(paramFloat1, paramFloat2); - - if(afterFallHooks != null) - for(int i = 0; i < afterFallHooks.length; i++) - afterFallHooks[i].afterFall(paramFloat1, paramFloat2); - - } - - protected 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 getBreakSpeed(IServerPlayerAPI target, net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos) - { - float _result; - ServerPlayerAPI serverPlayerAPI = target.getServerPlayerAPI(); - if(serverPlayerAPI != null && serverPlayerAPI.isGetBreakSpeedModded) - _result = serverPlayerAPI.getBreakSpeed(paramIBlockState, paramBlockPos); - else - _result = target.localGetBreakSpeed(paramIBlockState, paramBlockPos); - return _result; - } - - private float getBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos) - { - if(beforeGetBreakSpeedHooks != null) - for(int i = beforeGetBreakSpeedHooks.length - 1; i >= 0 ; i--) - beforeGetBreakSpeedHooks[i].beforeGetBreakSpeed(paramIBlockState, paramBlockPos); - - float _result; - if(overrideGetBreakSpeedHooks != null) - _result = overrideGetBreakSpeedHooks[overrideGetBreakSpeedHooks.length - 1].getBreakSpeed(paramIBlockState, paramBlockPos); - else - _result = player.localGetBreakSpeed(paramIBlockState, paramBlockPos); - - if(afterGetBreakSpeedHooks != null) - for(int i = 0; i < afterGetBreakSpeedHooks.length; i++) - afterGetBreakSpeedHooks[i].afterGetBreakSpeed(paramIBlockState, paramBlockPos); - - return _result; - } - - protected ServerPlayerBase GetOverwrittenGetBreakSpeed(ServerPlayerBase overWriter) - { - if (overrideGetBreakSpeedHooks == null) - return overWriter; - - for(int i = 0; i < overrideGetBreakSpeedHooks.length; i++) - if(overrideGetBreakSpeedHooks[i] == overWriter) - if(i == 0) - return null; - else - return overrideGetBreakSpeedHooks[i - 1]; - - return overWriter; - } - - private final static List beforeGetBreakSpeedHookTypes = new LinkedList(); - private final static List overrideGetBreakSpeedHookTypes = new LinkedList(); - private final static List afterGetBreakSpeedHookTypes = new LinkedList(); - - private ServerPlayerBase[] beforeGetBreakSpeedHooks; - private ServerPlayerBase[] overrideGetBreakSpeedHooks; - private ServerPlayerBase[] afterGetBreakSpeedHooks; - - public boolean isGetBreakSpeedModded; - - private static final Map allBaseBeforeGetBreakSpeedSuperiors = new Hashtable(0); - private static final Map allBaseBeforeGetBreakSpeedInferiors = new Hashtable(0); - private static final Map allBaseOverrideGetBreakSpeedSuperiors = new Hashtable(0); - private static final Map allBaseOverrideGetBreakSpeedInferiors = new Hashtable(0); - private static final Map allBaseAfterGetBreakSpeedSuperiors = new Hashtable(0); - private static final Map allBaseAfterGetBreakSpeedInferiors = 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/dependencies/main/java/api/player/server/ServerPlayerBase.java b/dependencies/main/java/api/player/server/ServerPlayerBase.java deleted file mode 100644 index 301241e228..0000000000 --- a/dependencies/main/java/api/player/server/ServerPlayerBase.java +++ /dev/null @@ -1,1146 +0,0 @@ -// ================================================================== -// 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(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack) - { - } - - public boolean canPlayerEdit(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, net.minecraft.item.ItemStack paramItemStack) - { - ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenCanPlayerEdit(this); - - boolean _result; - if(overwritten == null) - _result = playerAPI.localCanPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - else if(overwritten != this) - _result = overwritten.canPlayerEdit(paramBlockPos, paramEnumFacing, paramItemStack); - else - _result = false; - - return _result; - } - - public void afterCanPlayerEdit(net.minecraft.util.BlockPos paramBlockPos, net.minecraft.util.EnumFacing paramEnumFacing, 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 beforeDisplayGui(net.minecraft.world.IInteractionObject paramIInteractionObject) - { - } - - public void displayGui(net.minecraft.world.IInteractionObject paramIInteractionObject) - { - ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenDisplayGui(this); - - if(overwritten == null) - playerAPI.localDisplayGui(paramIInteractionObject); - else if(overwritten != this) - overwritten.displayGui(paramIInteractionObject); - - } - - public void afterDisplayGui(net.minecraft.world.IInteractionObject paramIInteractionObject) - { - } - - 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 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 beforeDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) - { - } - - public net.minecraft.entity.item.EntityItem dropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) - { - ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenDropPlayerItemWithRandomChoice(this); - - net.minecraft.entity.item.EntityItem _result; - if(overwritten == null) - _result = playerAPI.localDropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - else if(overwritten != this) - _result = overwritten.dropPlayerItemWithRandomChoice(paramItemStack, paramBoolean); - else - _result = null; - - return _result; - } - - public void afterDropPlayerItemWithRandomChoice(net.minecraft.item.ItemStack paramItemStack, boolean paramBoolean) - { - } - - public void beforeFall(float paramFloat1, float paramFloat2) - { - } - - public void fall(float paramFloat1, float paramFloat2) - { - ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenFall(this); - - if(overwritten == null) - playerAPI.localFall(paramFloat1, paramFloat2); - else if(overwritten != this) - overwritten.fall(paramFloat1, paramFloat2); - - } - - public void afterFall(float paramFloat1, float paramFloat2) - { - } - - 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 beforeGetBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos) - { - } - - public float getBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos) - { - ServerPlayerBase overwritten = internalServerPlayerAPI.GetOverwrittenGetBreakSpeed(this); - - float _result; - if(overwritten == null) - _result = playerAPI.localGetBreakSpeed(paramIBlockState, paramBlockPos); - else if(overwritten != this) - _result = overwritten.getBreakSpeed(paramIBlockState, paramBlockPos); - else - _result = 0; - - return _result; - } - - public void afterGetBreakSpeed(net.minecraft.block.state.IBlockState paramIBlockState, net.minecraft.util.BlockPos paramBlockPos) - { - } - - 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/dependencies/main/java/api/player/server/ServerPlayerBaseSorter.java b/dependencies/main/java/api/player/server/ServerPlayerBaseSorter.java deleted file mode 100644 index 551d760564..0000000000 --- a/dependencies/main/java/api/player/server/ServerPlayerBaseSorter.java +++ /dev/null @@ -1,259 +0,0 @@ -// ================================================================== -// 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/dependencies/main/java/api/player/server/ServerPlayerBaseSorting.java b/dependencies/main/java/api/player/server/ServerPlayerBaseSorting.java deleted file mode 100644 index 6e5d9f8f31..0000000000 --- a/dependencies/main/java/api/player/server/ServerPlayerBaseSorting.java +++ /dev/null @@ -1,3708 +0,0 @@ -// ================================================================== -// 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[] beforeDisplayGuiSuperiors = null; - private String[] beforeDisplayGuiInferiors = null; - private String[] overrideDisplayGuiSuperiors = null; - private String[] overrideDisplayGuiInferiors = null; - private String[] afterDisplayGuiSuperiors = null; - private String[] afterDisplayGuiInferiors = 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[] beforeDropOneItemSuperiors = null; - private String[] beforeDropOneItemInferiors = null; - private String[] overrideDropOneItemSuperiors = null; - private String[] overrideDropOneItemInferiors = null; - private String[] afterDropOneItemSuperiors = null; - private String[] afterDropOneItemInferiors = 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[] beforeGetBreakSpeedSuperiors = null; - private String[] beforeGetBreakSpeedInferiors = null; - private String[] overrideGetBreakSpeedSuperiors = null; - private String[] overrideGetBreakSpeedInferiors = null; - private String[] afterGetBreakSpeedSuperiors = null; - private String[] afterGetBreakSpeedInferiors = 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[] getBeforeDisplayGuiSuperiors() - { - return beforeDisplayGuiSuperiors; - } - - public String[] getBeforeDisplayGuiInferiors() - { - return beforeDisplayGuiInferiors; - } - - public String[] getOverrideDisplayGuiSuperiors() - { - return overrideDisplayGuiSuperiors; - } - - public String[] getOverrideDisplayGuiInferiors() - { - return overrideDisplayGuiInferiors; - } - - public String[] getAfterDisplayGuiSuperiors() - { - return afterDisplayGuiSuperiors; - } - - public String[] getAfterDisplayGuiInferiors() - { - return afterDisplayGuiInferiors; - } - - public void setBeforeDisplayGuiSuperiors(String[] value) - { - beforeDisplayGuiSuperiors = value; - } - - public void setBeforeDisplayGuiInferiors(String[] value) - { - beforeDisplayGuiInferiors = value; - } - - public void setOverrideDisplayGuiSuperiors(String[] value) - { - overrideDisplayGuiSuperiors = value; - } - - public void setOverrideDisplayGuiInferiors(String[] value) - { - overrideDisplayGuiInferiors = value; - } - - public void setAfterDisplayGuiSuperiors(String[] value) - { - afterDisplayGuiSuperiors = value; - } - - public void setAfterDisplayGuiInferiors(String[] value) - { - afterDisplayGuiInferiors = 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[] 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[] 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[] getBeforeGetBreakSpeedSuperiors() - { - return beforeGetBreakSpeedSuperiors; - } - - public String[] getBeforeGetBreakSpeedInferiors() - { - return beforeGetBreakSpeedInferiors; - } - - public String[] getOverrideGetBreakSpeedSuperiors() - { - return overrideGetBreakSpeedSuperiors; - } - - public String[] getOverrideGetBreakSpeedInferiors() - { - return overrideGetBreakSpeedInferiors; - } - - public String[] getAfterGetBreakSpeedSuperiors() - { - return afterGetBreakSpeedSuperiors; - } - - public String[] getAfterGetBreakSpeedInferiors() - { - return afterGetBreakSpeedInferiors; - } - - public void setBeforeGetBreakSpeedSuperiors(String[] value) - { - beforeGetBreakSpeedSuperiors = value; - } - - public void setBeforeGetBreakSpeedInferiors(String[] value) - { - beforeGetBreakSpeedInferiors = value; - } - - public void setOverrideGetBreakSpeedSuperiors(String[] value) - { - overrideGetBreakSpeedSuperiors = value; - } - - public void setOverrideGetBreakSpeedInferiors(String[] value) - { - overrideGetBreakSpeedInferiors = value; - } - - public void setAfterGetBreakSpeedSuperiors(String[] value) - { - afterGetBreakSpeedSuperiors = value; - } - - public void setAfterGetBreakSpeedInferiors(String[] value) - { - afterGetBreakSpeedInferiors = 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/dependencies/main/java/api/player/server/ServerPlayerClassVisitor.java b/dependencies/main/java/api/player/server/ServerPlayerClassVisitor.java deleted file mode 100644 index 99f0029a37..0000000000 --- a/dependencies/main/java/api/player/server/ServerPlayerClassVisitor.java +++ /dev/null @@ -1,4676 +0,0 @@ -// ================================================================== -// 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 hadLocalDisplayGui; - private boolean hadLocalDisplayGUIChest; - private boolean hadLocalDropOneItem; - private boolean hadLocalDropPlayerItemWithRandomChoice; - private boolean hadLocalFall; - private boolean hadLocalGetAIMoveSpeed; - private boolean hadLocalGetBreakSpeed; - 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; - } - - @Override - 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 ? "u" : "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 ? "(Low;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 ? "f" : "attackEntityPlayerMPEntityWithCurrentItem") && desc.equals(isObfuscated ? "(Lpk;)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 ? "aY" : "canBreatheUnderwater") && desc.equals("()Z")) - { - hadLocalCanBreatheUnderwater = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanBreatheUnderwater", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "b" : "canHarvestBlock") && desc.equals(isObfuscated ? "(Lafh;)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 ? "(Lcj;Lcq;Lzx;)Z" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z")) - { - hadLocalCanPlayerEdit = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanPlayerEdit", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "s_" : "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 ? "(Lwn;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 ? "(Low;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" : "displayGui") && desc.equals(isObfuscated ? "(Lol;)V" : "(Lnet/minecraft/world/IInteractionObject;)V")) - { - hadLocalDisplayGui = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGui", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "a" : "displayGUIChest") && desc.equals(isObfuscated ? "(Log;)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" : "dropOneItem") && desc.equals(isObfuscated ? "(Z)Luz;" : "(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 ? "(Lzx;Z)Luz;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;")) - { - hadLocalDropPlayerItemWithRandomChoice = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropPlayerItemWithRandomChoice", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "e" : "fall") && desc.equals("(FF)V")) - { - hadLocalFall = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localFall", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "bI" : "getAIMoveSpeed") && desc.equals("()F")) - { - hadLocalGetAIMoveSpeed = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetAIMoveSpeed", desc, signature, exceptions); - } - - if(name.equals("getBreakSpeed") && desc.equals(isObfuscated ? "(Lalz;Lcj;)F" : "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F")) - { - hadLocalGetBreakSpeed = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBreakSpeed", 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 ? "c" : "getBrightness") && desc.equals("(F)F")) - { - hadLocalGetBrightness = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBrightness", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "aS" : "getEyeHeight") && desc.equals("()F")) - { - hadLocalGetEyeHeight = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetEyeHeight", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "h" : "heal") && desc.equals("(F)V")) - { - hadLocalHeal = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localHeal", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "aj" : "isEntityInsideOpaqueBlock") && desc.equals("()Z")) - { - hadLocalIsEntityInsideOpaqueBlock = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsEntityInsideOpaqueBlock", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "V" : "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 ? "(Larm;)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 ? "k_" : "isOnLadder") && desc.equals("()Z")) - { - hadLocalIsOnLadder = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsOnLadder", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "bJ" : "isPlayerSleeping") && desc.equals("()Z")) - { - hadLocalIsPlayerSleeping = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsPlayerSleeping", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "av" : "isSneaking") && desc.equals("()Z")) - { - hadLocalIsSneaking = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsSneaking", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "bF" : "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 ? "(Lpk;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 ? "(Lpk;)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 ? "g" : "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 ? "(Low;)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 ? "m" : "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 ? "(Lpr;)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 ? "(Luv;)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 ? "t_" : "onUpdate") && desc.equals("()V")) - { - hadLocalOnUpdate = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnUpdate", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "l" : "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 ? "(Ldn;)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 ? "J" : "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 ? "c" : "setSneaking") && desc.equals("(Z)V")) - { - hadLocalSetSneaking = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetSneaking", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "d" : "setSprinting") && desc.equals("(Z)V")) - { - hadLocalSetSprinting = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSetSprinting", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "bw" : "swingItem") && desc.equals("()V")) - { - hadLocalSwingItem = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localSwingItem", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "bK" : "updateEntityActionState") && desc.equals("()V")) - { - hadLocalUpdateEntityActionState = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdateEntityActionState", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "bi" : "updatePotionEffects") && desc.equals("()V")) - { - hadLocalUpdatePotionEffects = true; - return super.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localUpdatePotionEffects", desc, signature, exceptions); - } - - if(name.equals(isObfuscated ? "ak" : "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 ? "(Ldn;)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); - } - - @Override - 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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "addExhaustion", "(F)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "addExhaustion", "(F)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "addExhaustion", "(F)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "u" : "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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "u" : "addExperience", "(I)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "u" : "addExperience", "(I)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "u" : "addExperience", "(I)V", false); - 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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "addExperienceLevel", "(I)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "addExperienceLevel", "(I)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "addExperienceLevel", "(I)V", false); - 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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "k" : "addMovementStat", "(DDD)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "k" : "addMovementStat", "(DDD)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "k" : "addMovementStat", "(DDD)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Low;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;Lnet/minecraft/util/DamageSource;F)Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAttackEntityFrom", "(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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Low;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAttackEntityFrom", "(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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Low;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalAttackEntityFrom) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAttackEntityFrom", "(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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "attackEntityFrom", "" + (isObfuscated ? "(Low;F)Z" : "(Lnet/minecraft/util/DamageSource;F)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "f" : "attackEntityPlayerMPEntityWithCurrentItem", "" + (isObfuscated ? "(Lpk;)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;Lnet/minecraft/entity/Entity;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realAttackTargetEntityWithCurrentItem", "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "f" : "attackEntityPlayerMPEntityWithCurrentItem", "" + (isObfuscated ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superAttackTargetEntityWithCurrentItem", "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "f" : "attackEntityPlayerMPEntityWithCurrentItem", "" + (isObfuscated ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalAttackTargetEntityWithCurrentItem) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localAttackTargetEntityWithCurrentItem", "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "f" : "attackEntityPlayerMPEntityWithCurrentItem", "" + (isObfuscated ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "aY" : "canBreatheUnderwater", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "canBreatheUnderwater", "(Lapi/player/server/IServerPlayerAPI;)Z", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aY" : "canBreatheUnderwater", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "aY" : "canBreatheUnderwater", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "aY" : "canBreatheUnderwater", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "canHarvestBlock", "" + (isObfuscated ? "(Lafh;)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;Lnet/minecraft/block/Block;)Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCanHarvestBlock", "(Lnet/minecraft/block/Block;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "b" : "canHarvestBlock", "" + (isObfuscated ? "(Lafh;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCanHarvestBlock", "(Lnet/minecraft/block/Block;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "canHarvestBlock", "" + (isObfuscated ? "(Lafh;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalCanHarvestBlock) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanHarvestBlock", "(Lnet/minecraft/block/Block;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "canHarvestBlock", "" + (isObfuscated ? "(Lafh;)Z" : "(Lnet/minecraft/block/Block;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(Lcj;Lcq;Lzx;)Z" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitVarInsn(Opcodes.ALOAD, 3); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "canPlayerEdit", "(Lapi/player/server/IServerPlayerAPI;Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realCanPlayerEdit", "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitVarInsn(Opcodes.ALOAD, 3); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(Lcj;Lcq;Lzx;)Z" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superCanPlayerEdit", "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitVarInsn(Opcodes.ALOAD, 3); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(Lcj;Lcq;Lzx;)Z" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalCanPlayerEdit) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localCanPlayerEdit", "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitVarInsn(Opcodes.ALOAD, 3); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "canPlayerEdit", "" + (isObfuscated ? "(Lcj;Lcq;Lzx;)Z" : "(Lnet/minecraft/util/BlockPos;Lnet/minecraft/util/EnumFacing;Lnet/minecraft/item/ItemStack;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "s_" : "canTriggerWalking", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "canTriggerWalking", "(Lapi/player/server/IServerPlayerAPI;)Z", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "s_" : "canTriggerWalking", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "s_" : "canTriggerWalking", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "s_" : "canTriggerWalking", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "clonePlayer", "" + (isObfuscated ? "(Lwn;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;Lnet/minecraft/entity/player/EntityPlayer;Z)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realClonePlayer", "(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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "clonePlayer", "" + (isObfuscated ? "(Lwn;Z)V" : "(Lnet/minecraft/entity/player/EntityPlayer;Z)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superClonePlayer", "(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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "clonePlayer", "" + (isObfuscated ? "(Lwn;Z)V" : "(Lnet/minecraft/entity/player/EntityPlayer;Z)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalClonePlayer) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localClonePlayer", "(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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "clonePlayer", "" + (isObfuscated ? "(Lwn;Z)V" : "(Lnet/minecraft/entity/player/EntityPlayer;Z)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Low;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;Lnet/minecraft/util/DamageSource;F)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDamageEntity", "(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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Low;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDamageEntity", "(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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Low;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalDamageEntity) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDamageEntity", "(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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "d" : "damageEntity", "" + (isObfuscated ? "(Low;F)V" : "(Lnet/minecraft/util/DamageSource;F)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "displayGui", "" + (isObfuscated ? "(Lol;)V" : "(Lnet/minecraft/world/IInteractionObject;)V") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "displayGui", "(Lapi/player/server/IServerPlayerAPI;Lnet/minecraft/world/IInteractionObject;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGui", "(Lnet/minecraft/world/IInteractionObject;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "displayGui", "" + (isObfuscated ? "(Lol;)V" : "(Lnet/minecraft/world/IInteractionObject;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGui", "(Lnet/minecraft/world/IInteractionObject;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "displayGui", "" + (isObfuscated ? "(Lol;)V" : "(Lnet/minecraft/world/IInteractionObject;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalDisplayGui) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGui", "(Lnet/minecraft/world/IInteractionObject;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "displayGui", "" + (isObfuscated ? "(Lol;)V" : "(Lnet/minecraft/world/IInteractionObject;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Log;)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;Lnet/minecraft/inventory/IInventory;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDisplayGUIChest", "(Lnet/minecraft/inventory/IInventory;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Log;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDisplayGUIChest", "(Lnet/minecraft/inventory/IInventory;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Log;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalDisplayGUIChest) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDisplayGUIChest", "(Lnet/minecraft/inventory/IInventory;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "displayGUIChest", "" + (isObfuscated ? "(Log;)V" : "(Lnet/minecraft/inventory/IInventory;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Luz;" : "(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 ? "Luz;" : "Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDropOneItem", "(Z)" + (isObfuscated ? "Luz;" : "Lnet/minecraft/entity/item/EntityItem;") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Luz;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDropOneItem", "(Z)" + (isObfuscated ? "Luz;" : "Lnet/minecraft/entity/item/EntityItem;") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Luz;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalDropOneItem) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropOneItem", "(Z)" + (isObfuscated ? "Luz;" : "Lnet/minecraft/entity/item/EntityItem;") + "", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "dropOneItem", "" + (isObfuscated ? "(Z)Luz;" : "(Z)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Lzx;Z)Luz;" : "(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", "dropPlayerItemWithRandomChoice", "(Lapi/player/server/IServerPlayerAPI;Lnet/minecraft/item/ItemStack;Z)" + (isObfuscated ? "Luz;" : "Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realDropPlayerItemWithRandomChoice", "(Lnet/minecraft/item/ItemStack;Z)" + (isObfuscated ? "Luz;" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Lzx;Z)Luz;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superDropPlayerItemWithRandomChoice", "(Lnet/minecraft/item/ItemStack;Z)" + (isObfuscated ? "Luz;" : "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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Lzx;Z)Luz;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalDropPlayerItemWithRandomChoice) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localDropPlayerItemWithRandomChoice", "(Lnet/minecraft/item/ItemStack;Z)" + (isObfuscated ? "Luz;" : "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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "dropPlayerItemWithRandomChoice", "" + (isObfuscated ? "(Lzx;Z)Luz;" : "(Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/item/EntityItem;") + "", false); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "e" : "fall", "(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", "fall", "(Lapi/player/server/IServerPlayerAPI;FF)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realFall", "(FF)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitVarInsn(Opcodes.FLOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "e" : "fall", "(FF)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superFall", "(FF)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitVarInsn(Opcodes.FLOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "e" : "fall", "(FF)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalFall) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localFall", "(FF)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitVarInsn(Opcodes.FLOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "e" : "fall", "(FF)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bI" : "getAIMoveSpeed", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "getAIMoveSpeed", "(Lapi/player/server/IServerPlayerAPI;)F", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bI" : "getAIMoveSpeed", "()F", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bI" : "getAIMoveSpeed", "()F", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bI" : "getAIMoveSpeed", "()F", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, "getBreakSpeed", "" + (isObfuscated ? "(Lalz;Lcj;)F" : "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F") + "", 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", "getBreakSpeed", "(Lapi/player/server/IServerPlayerAPI;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realGetBreakSpeed", "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", "getBreakSpeed", "" + (isObfuscated ? "(Lalz;Lcj;)F" : "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F") + "", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superGetBreakSpeed", "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", "getBreakSpeed", "" + (isObfuscated ? "(Lalz;Lcj;)F" : "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F") + "", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalGetBreakSpeed) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localGetBreakSpeed", "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", "getBreakSpeed", "" + (isObfuscated ? "(Lalz;Lcj;)F" : "(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/util/BlockPos;)F") + "", false); - 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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "e" : "getDistanceSq", "(DDD)D", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "e" : "getDistanceSq", "(DDD)D", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "e" : "getDistanceSq", "(DDD)D", false); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "c" : "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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "c" : "getBrightness", "(F)F", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "c" : "getBrightness", "(F)F", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "c" : "getBrightness", "(F)F", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "aS" : "getEyeHeight", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "getEyeHeight", "(Lapi/player/server/IServerPlayerAPI;)F", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aS" : "getEyeHeight", "()F", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "aS" : "getEyeHeight", "()F", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "aS" : "getEyeHeight", "()F", false); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "h" : "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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "h" : "heal", "(F)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "h" : "heal", "(F)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "h" : "heal", "(F)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "aj" : "isEntityInsideOpaqueBlock", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "isEntityInsideOpaqueBlock", "(Lapi/player/server/IServerPlayerAPI;)Z", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aj" : "isEntityInsideOpaqueBlock", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "aj" : "isEntityInsideOpaqueBlock", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "aj" : "isEntityInsideOpaqueBlock", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "V" : "isInWater", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "isInWater", "(Lapi/player/server/IServerPlayerAPI;)Z", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "V" : "isInWater", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "V" : "isInWater", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "V" : "isInWater", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Larm;)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;Lnet/minecraft/block/material/Material;)Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realIsInsideOfMaterial", "(Lnet/minecraft/block/material/Material;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Larm;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superIsInsideOfMaterial", "(Lnet/minecraft/block/material/Material;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Larm;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalIsInsideOfMaterial) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localIsInsideOfMaterial", "(Lnet/minecraft/block/material/Material;)Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "isInsideOfMaterial", "" + (isObfuscated ? "(Larm;)Z" : "(Lnet/minecraft/block/material/Material;)Z") + "", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "k_" : "isOnLadder", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "isOnLadder", "(Lapi/player/server/IServerPlayerAPI;)Z", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "k_" : "isOnLadder", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "k_" : "isOnLadder", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "k_" : "isOnLadder", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bJ" : "isPlayerSleeping", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "isPlayerSleeping", "(Lapi/player/server/IServerPlayerAPI;)Z", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bJ" : "isPlayerSleeping", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bJ" : "isPlayerSleeping", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bJ" : "isPlayerSleeping", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "av" : "isSneaking", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "isSneaking", "(Lapi/player/server/IServerPlayerAPI;)Z", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "av" : "isSneaking", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "av" : "isSneaking", "()Z", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "av" : "isSneaking", "()Z", false); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bF" : "jump", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "jump", "(Lapi/player/server/IServerPlayerAPI;)V", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bF" : "jump", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bF" : "jump", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bF" : "jump", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lpk;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;Lnet/minecraft/entity/Entity;FDD)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realKnockBack", "(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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lpk;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superKnockBack", "(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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lpk;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalKnockBack) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localKnockBack", "(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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "knockBack", "" + (isObfuscated ? "(Lpk;FDD)V" : "(Lnet/minecraft/entity/Entity;FDD)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "mountEntity", "" + (isObfuscated ? "(Lpk;)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;Lnet/minecraft/entity/Entity;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realMountEntity", "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "mountEntity", "" + (isObfuscated ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superMountEntity", "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "mountEntity", "" + (isObfuscated ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalMountEntity) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localMountEntity", "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "mountEntity", "" + (isObfuscated ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V") + "", false); - 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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "d" : "moveEntity", "(DDD)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "d" : "moveEntity", "(DDD)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "d" : "moveEntity", "(DDD)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "g" : "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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "g" : "moveEntityWithHeading", "(FF)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "g" : "moveEntityWithHeading", "(FF)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "g" : "moveEntityWithHeading", "(FF)V", false); - 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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "moveFlying", "(FFF)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "moveFlying", "(FFF)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "moveFlying", "(FFF)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Low;)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;Lnet/minecraft/util/DamageSource;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnDeath", "(Lnet/minecraft/util/DamageSource;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Low;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnDeath", "(Lnet/minecraft/util/DamageSource;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Low;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalOnDeath) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnDeath", "(Lnet/minecraft/util/DamageSource;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "onDeath", "" + (isObfuscated ? "(Low;)V" : "(Lnet/minecraft/util/DamageSource;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "m" : "onLivingUpdate", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "onLivingUpdate", "(Lapi/player/server/IServerPlayerAPI;)V", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "m" : "onLivingUpdate", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "m" : "onLivingUpdate", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "m" : "onLivingUpdate", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lpr;)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;Lnet/minecraft/entity/EntityLivingBase;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnKillEntity", "(Lnet/minecraft/entity/EntityLivingBase;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lpr;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnKillEntity", "(Lnet/minecraft/entity/EntityLivingBase;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lpr;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalOnKillEntity) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnKillEntity", "(Lnet/minecraft/entity/EntityLivingBase;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "onKillEntity", "" + (isObfuscated ? "(Lpr;)V" : "(Lnet/minecraft/entity/EntityLivingBase;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Luv;)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;Lnet/minecraft/entity/effect/EntityLightningBolt;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realOnStruckByLightning", "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Luv;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superOnStruckByLightning", "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Luv;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalOnStruckByLightning) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localOnStruckByLightning", "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "onStruckByLightning", "" + (isObfuscated ? "(Luv;)V" : "(Lnet/minecraft/entity/effect/EntityLightningBolt;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "t_" : "onUpdate", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "onUpdate", "(Lapi/player/server/IServerPlayerAPI;)V", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "t_" : "onUpdate", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "t_" : "onUpdate", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "t_" : "onUpdate", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "l" : "onUpdateEntity", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "onUpdateEntity", "(Lapi/player/server/IServerPlayerAPI;)V", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "l" : "onUpdateEntity", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "l" : "onUpdateEntity", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "l" : "onUpdateEntity", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldn;)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;Lnet/minecraft/nbt/NBTTagCompound;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realReadEntityFromNBT", "(Lnet/minecraft/nbt/NBTTagCompound;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldn;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superReadEntityFromNBT", "(Lnet/minecraft/nbt/NBTTagCompound;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldn;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalReadEntityFromNBT) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localReadEntityFromNBT", "(Lnet/minecraft/nbt/NBTTagCompound;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "readEntityFromNBT", "" + (isObfuscated ? "(Ldn;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "J" : "setDead", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "setDead", "(Lapi/player/server/IServerPlayerAPI;)V", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "J" : "setDead", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "J" : "setDead", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "J" : "setDead", "()V", false); - 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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "setEntityActionState", "(FFZZ)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "setEntityActionState", "(FFZZ)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "setEntityActionState", "(FFZZ)V", false); - 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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "b" : "setPosition", "(DDD)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "setPosition", "(DDD)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "setPosition", "(DDD)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "c" : "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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "c" : "setSneaking", "(Z)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "c" : "setSneaking", "(Z)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "c" : "setSneaking", "(Z)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "d" : "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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "d" : "setSprinting", "(Z)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "d" : "setSprinting", "(Z)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "d" : "setSprinting", "(Z)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bw" : "swingItem", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "swingItem", "(Lapi/player/server/IServerPlayerAPI;)V", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bw" : "swingItem", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bw" : "swingItem", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bw" : "swingItem", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bK" : "updateEntityActionState", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "updateEntityActionState", "(Lapi/player/server/IServerPlayerAPI;)V", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bK" : "updateEntityActionState", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bK" : "updateEntityActionState", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bK" : "updateEntityActionState", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "bi" : "updatePotionEffects", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "updatePotionEffects", "(Lapi/player/server/IServerPlayerAPI;)V", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bi" : "updatePotionEffects", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bi" : "updatePotionEffects", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "bi" : "updatePotionEffects", "()V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "ak" : "updateRidden", "()V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESTATIC, "api/player/server/ServerPlayerAPI", "updateRidden", "(Lapi/player/server/IServerPlayerAPI;)V", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ak" : "updateRidden", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "ak" : "updateRidden", "()V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "ak" : "updateRidden", "()V", false); - 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", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V", false); - 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 ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "a" : "wakeUpPlayer", "(ZZZ)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - } - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC, isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldn;)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;Lnet/minecraft/nbt/NBTTagCompound;)V", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "realWriteEntityToNBT", "(Lnet/minecraft/nbt/NBTTagCompound;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldn;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "superWriteEntityToNBT", "(Lnet/minecraft/nbt/NBTTagCompound;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldn;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", false); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - if(!hadLocalWriteEntityToNBT) - { - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "localWriteEntityToNBT", "(Lnet/minecraft/nbt/NBTTagCompound;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, isObfuscated ? "wn" : "net/minecraft/entity/player/EntityPlayer", isObfuscated ? "b" : "writeEntityToNBT", "" + (isObfuscated ? "(Ldn;)V" : "(Lnet/minecraft/nbt/NBTTagCompound;)V") + "", false); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ad" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ad" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "at" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "at" : "arrowHitTimer", "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aw" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aw" : "attackedAtYaw", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getAttackingPlayerField", isObfuscated ? "()Lwn;" : "()Lnet/minecraft/entity/player/EntityPlayer;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aN" : "attackingPlayer", isObfuscated ? "Lwn;" : "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 ? "(Lwn;)V" : "(Lnet/minecraft/entity/player/EntityPlayer;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aN" : "attackingPlayer", isObfuscated ? "Lwn;" : "Lnet/minecraft/entity/player/EntityPlayer;"); - mv.visitInsn(Opcodes.RETURN); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aF" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aF" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bo" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bo" : "cameraYaw", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getCapabilitiesField", isObfuscated ? "()Lwl;" : "()Lnet/minecraft/entity/player/PlayerCapabilities;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bA" : "capabilities", isObfuscated ? "Lwl;" : "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 ? "(Lwl;)V" : "(Lnet/minecraft/entity/player/PlayerCapabilities;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bA" : "capabilities", isObfuscated ? "Lwl;" : "Lnet/minecraft/entity/player/PlayerCapabilities;"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChasingPosXField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bt" : "chasingPosX", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChasingPosXField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bt" : "chasingPosX", "D"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChasingPosYField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bu" : "chasingPosY", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChasingPosYField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bu" : "chasingPosY", "D"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChasingPosZField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bv" : "chasingPosZ", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setChasingPosZField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bv" : "chasingPosZ", "D"); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bS" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bS" : "chatColours", "Z"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getChatVisibilityField", isObfuscated ? "()Lwn$b;" : "()Lnet/minecraft/entity/player/EntityPlayer$EnumChatVisibility;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bR" : "chatVisibility", isObfuscated ? "Lwn$b;" : "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 ? "(Lwn$b;)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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bR" : "chatVisibility", isObfuscated ? "Lwn$b;" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ae" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ae" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "af" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "af" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ag" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ag" : "chunkCoordZ", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getCombinedHealthField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bL" : "combinedHealth", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setCombinedHealthField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bL" : "combinedHealth", "F"); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bV" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bV" : "currentWindowId", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getDataWatcherField", isObfuscated ? "()Lpz;" : "()Lnet/minecraft/entity/DataWatcher;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ac" : "dataWatcher", isObfuscated ? "Lpz;" : "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 ? "(Lpz;)V" : "(Lnet/minecraft/entity/DataWatcher;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ac" : "dataWatcher", isObfuscated ? "Lpz;" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aP" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aP" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ax" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ax" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bJ" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "am" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "am" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "M" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "M" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "N" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "N" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aQ" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aQ" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "U" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "U" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aq" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aq" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bD" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bD" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bB" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bB" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bC" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bC" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "O" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "O" : "fallDistance", "F"); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "X" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "X" : "fireResistance", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFirstUpdateField", "()Z", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aa" : "firstUpdate", "Z"); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setFirstUpdateField", "(Z)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aa" : "firstUpdate", "Z"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFishEntityField", isObfuscated ? "()Lur;" : "()Lnet/minecraft/entity/projectile/EntityFishHook;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bG" : "fishEntity", isObfuscated ? "Lur;" : "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 ? "(Lur;)V" : "(Lnet/minecraft/entity/projectile/EntityFishHook;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bG" : "fishEntity", isObfuscated ? "Lur;" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bm" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bm" : "flyToggleTimer", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getFoodStatsField", isObfuscated ? "()Lxg;" : "()Lnet/minecraft/util/FoodStats;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bl" : "foodStats", isObfuscated ? "Lxg;" : "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 ? "(Lxg;)V" : "(Lnet/minecraft/util/FoodStats;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bl" : "foodStats", isObfuscated ? "Lxg;" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "K" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "K" : "height", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getHundredEightyField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aV" : "field_70741_aB", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setHundredEightyField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aV" : "field_70741_aB", "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "Z" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "Z" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "au" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "au" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ah" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ah" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ak" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ak" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "Y" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "Y" : "inWater", "Z"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getInventoryField", isObfuscated ? "()Lwm;" : "()Lnet/minecraft/entity/player/InventoryPlayer;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bi" : "inventory", isObfuscated ? "Lwm;" : "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 ? "(Lwm;)V" : "(Lnet/minecraft/entity/player/InventoryPlayer;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bi" : "inventory", isObfuscated ? "Lwm;" : "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 ? "()Lxi;" : "()Lnet/minecraft/inventory/Container;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bj" : "inventoryContainer", isObfuscated ? "Lxi;" : "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 ? "(Lxi;)V" : "(Lnet/minecraft/inventory/Container;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bj" : "inventoryContainer", isObfuscated ? "Lxi;" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ai" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ai" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "F" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "F" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "D" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "D" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "E" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "E" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "I" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "I" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ab" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ab" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "H" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "H" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aY" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aY" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ar" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ar" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aM" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aM" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aX" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aX" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bP" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bP" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bN" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bN" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bM" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bM" : "lastHealth", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastPortalPosField", isObfuscated ? "()Lcj;" : "()Lnet/minecraft/util/BlockPos;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "an" : "field_181016_an", isObfuscated ? "Lcj;" : "Lnet/minecraft/util/BlockPos;"); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastPortalPosField", isObfuscated ? "(Lcj;)V" : "(Lnet/minecraft/util/BlockPos;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "an" : "field_181016_an", isObfuscated ? "Lcj;" : "Lnet/minecraft/util/BlockPos;"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getLastPortalVecField", isObfuscated ? "()Laui;" : "()Lnet/minecraft/util/Vec3;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ao" : "field_181017_ao", isObfuscated ? "Laui;" : "Lnet/minecraft/util/Vec3;"); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setLastPortalVecField", isObfuscated ? "(Laui;)V" : "(Lnet/minecraft/util/Vec3;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ao" : "field_181017_ao", isObfuscated ? "Laui;" : "Lnet/minecraft/util/Vec3;"); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "P" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "P" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "Q" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "Q" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "R" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "R" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aC" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aC" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aB" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aB" : "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 ? "lf" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bH" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aD" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aD" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "av" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "av" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ba" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ba" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aZ" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aZ" : "moveStrafing", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getMovedDistanceField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aT" : "movedDistance", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setMovedDistanceField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aT" : "movedDistance", "F"); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bc" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bc" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bd" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bd" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "be" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "be" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bf" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bf" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bh" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bh" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bg" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bg" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "T" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "T" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "C" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "C" : "onGround", "Z"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getOnGroundSpeedFactorField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aS" : "onGroundSpeedFactor", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setOnGroundSpeedFactorField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aS" : "onGroundSpeedFactor", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getOpenContainerField", isObfuscated ? "()Lxi;" : "()Lnet/minecraft/inventory/Container;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bk" : "openContainer", isObfuscated ? "Lxi;" : "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 ? "(Lxi;)V" : "(Lnet/minecraft/inventory/Container;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bk" : "openContainer", isObfuscated ? "Lxi;" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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, "getPlayerLastActiveTimeField", "()J", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bT" : "playerLastActiveTime", "J"); - mv.visitInsn(Opcodes.LRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPlayerLastActiveTimeField", "(J)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.LLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bT" : "playerLastActiveTime", "J"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPlayerLocationField", isObfuscated ? "()Lcj;" : "()Lnet/minecraft/util/BlockPos;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bx" : "playerLocation", isObfuscated ? "Lcj;" : "Lnet/minecraft/util/BlockPos;"); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPlayerLocationField", isObfuscated ? "(Lcj;)V" : "(Lnet/minecraft/util/BlockPos;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bx" : "playerLocation", isObfuscated ? "Lcj;" : "Lnet/minecraft/util/BlockPos;"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPlayerNetServerHandlerField", isObfuscated ? "()Llm;" : "()Lnet/minecraft/network/NetHandlerPlayServer;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "playerNetServerHandler", isObfuscated ? "Llm;" : "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 ? "(Llm;)V" : "(Lnet/minecraft/network/NetHandlerPlayServer;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "a" : "playerNetServerHandler", isObfuscated ? "Llm;" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "al" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "al" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aE" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aE" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bn" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bn" : "prevCameraYaw", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevChasingPosXField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bq" : "prevChasingPosX", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevChasingPosXField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bq" : "prevChasingPosX", "D"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevChasingPosYField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "br" : "prevChasingPosY", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevChasingPosYField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "br" : "prevChasingPosY", "D"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevChasingPosZField", "()D", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bs" : "prevChasingPosZ", "D"); - mv.visitInsn(Opcodes.DRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevChasingPosZField", "(D)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.DLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bs" : "prevChasingPosZ", "D"); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "L" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "L" : "prevDistanceWalkedModified", "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aA" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aA" : "prevLimbSwingAmount", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevMovedDistanceField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aU" : "prevMovedDistance", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevMovedDistanceField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aU" : "prevMovedDistance", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getPrevOnGroundSpeedFactorField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aR" : "prevOnGroundSpeedFactor", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setPrevOnGroundSpeedFactorField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aR" : "prevOnGroundSpeedFactor", "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aJ" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aJ" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aL" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aL" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ay" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ay" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "V" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "V" : "rand", "Ljava/util/Random;"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRandomNumberBetweenOneHundredthAndTwoHundredthField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aH" : "field_70770_ap", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRandomNumberBetweenOneHundredthAndTwoHundredthField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aH" : "field_70770_ap", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRandomNumberBetweenZeroAndTwelveThousandThreeHundredNinetyEightField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aG" : "field_70769_ao", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRandomNumberBetweenZeroAndTwelveThousandThreeHundredNinetyEightField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aG" : "field_70769_ao", "F"); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bb" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bb" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aO" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aO" : "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 ? "lf" : "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 ? "lf" : "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, "getRenderOffsetXField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "by" : "renderOffsetX", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRenderOffsetXField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "by" : "renderOffsetX", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRenderOffsetYField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bZ" : "renderOffsetY", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRenderOffsetYField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bZ" : "renderOffsetY", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRenderOffsetZField", "()F", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bz" : "renderOffsetZ", "F"); - mv.visitInsn(Opcodes.FRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRenderOffsetZField", "(F)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.FLOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bz" : "renderOffsetZ", "F"); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aI" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aI" : "renderYawOffset", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRespawnInvulnerabilityTicksField", "()I", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bQ" : "respawnInvulnerabilityTicks", "I"); - mv.visitInsn(Opcodes.IRETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setRespawnInvulnerabilityTicksField", "(I)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ILOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bQ" : "respawnInvulnerabilityTicks", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getRiddenByEntityField", isObfuscated ? "()Lpk;" : "()Lnet/minecraft/entity/Entity;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "l" : "riddenByEntity", isObfuscated ? "Lpk;" : "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 ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "l" : "riddenByEntity", isObfuscated ? "Lpk;" : "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 ? "()Lpk;" : "()Lnet/minecraft/entity/Entity;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "m" : "ridingEntity", isObfuscated ? "Lpk;" : "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 ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "m" : "ridingEntity", isObfuscated ? "Lpk;" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aK" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aK" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aW" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aW" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bW" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bW" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bX" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bX" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bY" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bY" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bw" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bw" : "sleeping", "Z"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getSpectatingEntityField", isObfuscated ? "()Lpk;" : "()Lnet/minecraft/entity/Entity;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bU" : "spectatingEntity", isObfuscated ? "Lpk;" : "Lnet/minecraft/entity/Entity;"); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setSpectatingEntityField", isObfuscated ? "(Lpk;)V" : "(Lnet/minecraft/entity/Entity;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bU" : "spectatingEntity", isObfuscated ? "Lpk;" : "Lnet/minecraft/entity/Entity;"); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bF" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bF" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bE" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bE" : "speedOnGround", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getStatsFileField", isObfuscated ? "()Lmv;" : "()Lnet/minecraft/stats/StatisticsFile;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bK" : "statsFile", isObfuscated ? "Lmv;" : "Lnet/minecraft/stats/StatisticsFile;"); - mv.visitInsn(Opcodes.ARETURN); - 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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "S" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "S" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "az" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "az" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "as" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "as" : "swingProgressInt", "I"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getTeleportDirectionField", isObfuscated ? "()Lcq;" : "()Lnet/minecraft/util/EnumFacing;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ap" : "field_181018_ap", isObfuscated ? "Lcq;" : "Lnet/minecraft/util/EnumFacing;"); - mv.visitInsn(Opcodes.ARETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "setTeleportDirectionField", isObfuscated ? "(Lcq;)V" : "(Lnet/minecraft/util/EnumFacing;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "ap" : "field_181018_ap", isObfuscated ? "Lcq;" : "Lnet/minecraft/util/EnumFacing;"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getTheItemInWorldManagerField", isObfuscated ? "()Llg;" : "()Lnet/minecraft/server/management/ItemInWorldManager;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "c" : "theItemInWorldManager", isObfuscated ? "Llg;" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "W" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "W" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aj" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "aj" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bI" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bI" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "G" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "G" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bO" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bO" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "J" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "J" : "width", "F"); - mv.visitInsn(Opcodes.RETURN); - mv.visitMaxs(0, 0); - mv.visitEnd(); - - mv = cv.visitMethod(Opcodes.ACC_PUBLIC | Opcodes.ACC_FINAL, "getWorldObjField", isObfuscated ? "()Ladm;" : "()Lnet/minecraft/world/World;", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitFieldInsn(Opcodes.GETFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "o" : "worldObj", isObfuscated ? "Ladm;" : "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 ? "(Ladm;)V" : "(Lnet/minecraft/world/World;)V", null, null); - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "o" : "worldObj", isObfuscated ? "Ladm;" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bp" : "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 ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", isObfuscated ? "bp" : "xpCooldown", "I"); - 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;", false); - 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;", false); - 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;", false); - 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 ? "lf" : "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 ? "()Llf;" : "()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/dependencies/main/java/api/player/server/ServerPlayerConstructorVisitor.java b/dependencies/main/java/api/player/server/ServerPlayerConstructorVisitor.java deleted file mode 100644 index 7a8cceac57..0000000000 --- a/dependencies/main/java/api/player/server/ServerPlayerConstructorVisitor.java +++ /dev/null @@ -1,66 +0,0 @@ -// ================================================================== -// 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; - } - - @Override - public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) - { - super.visitMethodInsn(opcode, owner, name, desc, itf); - if(name.equals("") && owner.equals(isObfuscated ? "wn" : "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;", false); - mv.visitFieldInsn(Opcodes.PUTFIELD, isObfuscated ? "lf" : "net/minecraft/entity/player/EntityPlayerMP", "serverPlayerAPI", "Lapi/player/server/ServerPlayerAPI;"); - - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitVarInsn(Opcodes.ALOAD, 3); - mv.visitVarInsn(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", false); - } - } - - public void visitInsn(int opcode) - { - if(opcode == Opcodes.RETURN) - { - mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitVarInsn(Opcodes.ALOAD, 1); - mv.visitVarInsn(Opcodes.ALOAD, 2); - mv.visitVarInsn(Opcodes.ALOAD, 3); - mv.visitVarInsn(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", false); - } - super.visitInsn(opcode); - } -} diff --git a/dependencies/main/java/biomesoplenty/api/item/BOPItems.java b/dependencies/main/java/biomesoplenty/api/item/BOPItems.java deleted file mode 100644 index a919ac8b9f..0000000000 --- a/dependencies/main/java/biomesoplenty/api/item/BOPItems.java +++ /dev/null @@ -1,133 +0,0 @@ -/******************************************************************************* - * Copyright 2014-2016, the Biomes O' Plenty Team - * - * This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License. - * - * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. - ******************************************************************************/ - -package biomesoplenty.api.item; - -import net.minecraft.item.Item; - -/** - * This is a composite of this class for different MC versions of BOP, so that Galacticraft compiles - * correctly against the BOP API in a development environment across all MC versions. - * The buckets are not in BOP for MC 1.10+! The amethyst items and darts are not in BOP for MC 1.8.9! - * (So take care if referencing those items!) - * - * This class will not be included in Galacticraft's .jar for distribution. - */ -public class BOPItems -{ - - public static Item berries; - public static Item shroompowder; - public static Item peach; - public static Item saladfruit; - public static Item saladveggie; - public static Item saladshroom; - public static Item earth; - public static Item persimmon; - public static Item filled_honeycomb; - public static Item ambrosia; - public static Item turnip; - public static Item pear; - public static Item ricebowl; - - public static Item fleshchunk; - public static Item mudball; - public static Item turnip_seeds; - public static Item crystal_shard; - public static Item terrestrial_artifact; - public static Item flax_string; - public static Item honeycomb; - public static Item gem; - public static Item ash; - public static Item mud_brick; - public static Item blue_dye; - public static Item brown_dye; - public static Item green_dye; - public static Item white_dye; - public static Item black_dye; - public static Item soul; - public static Item pixie_dust; - public static Item ichor; - public static Item pinecone; - public static Item other_slab; - - public static Item dart; - public static Item dart_blower; - - public static Item sacred_oak_door; - public static Item cherry_door; - public static Item umbran_door; - public static Item fir_door; - public static Item ethereal_door; - public static Item magic_door; - public static Item mangrove_door; - public static Item palm_door; - public static Item redwood_door; - public static Item willow_door; - public static Item pine_door; - public static Item hellbark_door; - public static Item jacaranda_door; - public static Item mahogany_door; - public static Item ebony_door; - public static Item eucalyptus_door; - - public static Item wood_slab_0; - public static Item wood_slab_1; - - public static Item wading_boots; - public static Item flippers; - public static Item plain_flower_band; - public static Item lush_flower_band; - public static Item exotic_flower_band; - public static Item dull_flower_band; - - public static Item mud_helmet; - public static Item mud_chestplate; - public static Item mud_leggings; - public static Item mud_boots; - public static Item amethyst_helmet; - public static Item amethyst_chestplate; - public static Item amethyst_leggings; - public static Item amethyst_boots; - - public static Item mud_axe; - public static Item mud_hoe; - public static Item mud_pickaxe; - public static Item mud_shovel; - public static Item mud_sword; - public static Item amethyst_axe; - public static Item amethyst_hoe; - public static Item amethyst_pickaxe; - public static Item amethyst_shovel; - public static Item amethyst_sword; - - public static Item mud_scythe; - public static Item wood_scythe; - public static Item stone_scythe; - public static Item iron_scythe; - public static Item gold_scythe; - public static Item diamond_scythe; - public static Item amethyst_scythe; - - public static Item biome_finder; - public static Item biome_essence; - public static Item enderporter; - public static Item flower_basket; - public static Item jar_empty; - public static Item jar_filled; - - public static Item honey_bucket; - public static Item blood_bucket; - public static Item poison_bucket; - public static Item hot_spring_water_bucket; - - public static Item record_wanderer; - public static Item record_corruption; - - public static Item spawn_egg; -} diff --git a/dependencies/main/java/buildcraft/api/APIHelper.java b/dependencies/main/java/buildcraft/api/APIHelper.java deleted file mode 100644 index dd47dcc7c8..0000000000 --- a/dependencies/main/java/buildcraft/api/APIHelper.java +++ /dev/null @@ -1,79 +0,0 @@ -package buildcraft.api; - -import java.util.Arrays; - -import org.apache.commons.lang3.StringUtils; - -import net.minecraftforge.fml.common.Loader; -import net.minecraftforge.fml.common.LoaderState; - -import buildcraft.api.core.BCLog; - -public class APIHelper { - public static T getInstance(String clsName, Class baseVersion) { - return getNamedInstance(clsName, "INSTANCE", baseVersion); - } - - public static T getInstance(String clsName, Class baseVersion, T nullVersion) { - return getNamedInstance(clsName, "INSTANCE", baseVersion, nullVersion); - } - - @SuppressWarnings("unchecked") - public static T getNamedInstance(String clsName, String enumName, Class baseVersion) { - T instance = getNamedInstance(clsName, enumName, baseVersion, null); - if (instance != null) return instance; - - Class[] types = baseVersion.getClasses(); - Class voidType = null; - for (Class class1 : types) { - if (baseVersion.isAssignableFrom(class1)) voidType = class1; - } - if (voidType != null) { - Object[] arr = voidType.getEnumConstants(); - if (arr == null) return null; - Enum[] eArr = ((Class>) voidType).getEnumConstants(); - for (Enum e : eArr) { - if (e.name().equals(enumName) && baseVersion.isInstance(e)) return (T) e; - } - } - return null; - } - - @SuppressWarnings("unchecked") - public static T getNamedInstance(String clsName, String enumName, Class baseVersion, T nullVersion) { - if (!Loader.instance().hasReachedState(LoaderState.PREINITIALIZATION)) throw new IllegalStateException( - "Called this API too early, you are not allowed to use BC api before pre init!"); - try { - Class cls = Class.forName(clsName); - Object[] arr = cls.getEnumConstants(); - if (arr == null) { - return fail(clsName, nullVersion); - } - Enum[] enumArr = ((Class>) cls).getEnumConstants(); - - for (Enum e : enumArr) { - if (e.name().equals(enumName) && baseVersion.isInstance(e)) return (T) e; - } - return fail(clsName, nullVersion); - } catch (ClassNotFoundException e) { - return fail(clsName, nullVersion); - } - } - - private static M fail(String clsName, M failure) { - String[] split = clsName.split("\\."); - String module; - if (split.length < 2) { - BCLog.logger.warn("Tried and failed to get the module name from " + Arrays.toString(split) + " (" + clsName + ")!"); - module = "invalid"; - } else { - module = split[1]; - } - module = StringUtils.capitalize(module); - String bcMod = "BuildCraft|" + module; - if (Loader.isModLoaded(bcMod)) { - BCLog.logger.warn("Failed to load the " + clsName + " dispite the appropriate buildcraft module being installed (" + module + ")"); - } - return failure; - } -} diff --git a/dependencies/main/java/buildcraft/api/ISimpleRegistry.java b/dependencies/main/java/buildcraft/api/ISimpleRegistry.java deleted file mode 100644 index 9227214f42..0000000000 --- a/dependencies/main/java/buildcraft/api/ISimpleRegistry.java +++ /dev/null @@ -1,12 +0,0 @@ -package buildcraft.api; - -interface ISimpleRegistry { - /** @param uniqueTag The tag to look up. Can be null. - * @return The unique definition associated with the unique tag, or null if the tag was not mapped */ - T getDefinition(String uniqueTag); - - /** @param definition The definition to look up. Can be null. - * @return The unique to for that definition. Will never be null, but will be an empty string if the definition did - * not exist. */ - String getTag(T definition); -} diff --git a/dependencies/main/java/buildcraft/api/ITripleRegistry.java b/dependencies/main/java/buildcraft/api/ITripleRegistry.java deleted file mode 100644 index ea29b613c6..0000000000 --- a/dependencies/main/java/buildcraft/api/ITripleRegistry.java +++ /dev/null @@ -1,30 +0,0 @@ -package buildcraft.api; - -import java.util.Set; - -import org.apache.commons.lang3.tuple.Triple; - -import net.minecraft.item.Item; - -public interface ITripleRegistry extends ISimpleRegistry { - /** @return An unmodifiable set containing all the current mappings of the registry */ - Set> getDefinitions(); - - // Specifics - - /** @param definition The pipe definition to look up. Can be null. - * @return The item the has been mapped to the definition, or null if the definition was not mapped */ - Item getItem(T definition); - - /** @param item The item to look up the definition of. Can be null. - * @return The definition associated with that item, or null if the item was not mapped. */ - T getDefinition(Item item); - - /** @param item The item to look up the tag of. Can be null. - * @return The unique tag associated with that item, or null if the item was not mapped. */ - String getUniqueTag(Item item); - - /** @param tag The tag to look up the item with. - * @return The item associated with that tag, or null if the tag was not mapped. */ - Item getItem(String tag); -} diff --git a/dependencies/main/java/buildcraft/api/ObjectDefinition.java b/dependencies/main/java/buildcraft/api/ObjectDefinition.java deleted file mode 100644 index 439462dd4d..0000000000 --- a/dependencies/main/java/buildcraft/api/ObjectDefinition.java +++ /dev/null @@ -1,32 +0,0 @@ -package buildcraft.api; - -import net.minecraftforge.fml.common.Loader; -import net.minecraftforge.fml.common.ModContainer; - -/* Note that neither this class (Or any of its subtypes) overrides equals or hash code, despite it being used as a key - * in a hash table. This is to speed up comparisons as no two ObjectDefinitions instances should be created with the - * same values. */ -public class ObjectDefinition { - /** A globally unique tag for the pipe */ - public final String globalUniqueTag; - /** A mod unique tag for the pipe. WARNING: this should only be used to register other mod-unique things, such as - * the pipe or gate item. For general use, use {@link #globalUniqueTag} */ - public final String modUniqueTag; - - protected static String getCurrentMod() { - ModContainer container = Loader.instance().activeModContainer(); - if (container == null) { - throw new IllegalStateException("Pipes MUST be registered inside a mod"); - } - return container.getModId(); - } - - private ObjectDefinition(String mod, String modUniqueTag) { - this.globalUniqueTag = mod + ":" + modUniqueTag; - this.modUniqueTag = modUniqueTag; - } - - public ObjectDefinition(String tag) { - this(getCurrentMod(), tag); - } -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/BlueprintDeployer.java b/dependencies/main/java/buildcraft/api/blueprints/BlueprintDeployer.java deleted file mode 100644 index e0d4216811..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/BlueprintDeployer.java +++ /dev/null @@ -1,30 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -import java.io.File; - -import net.minecraft.util.BlockPos; -import net.minecraft.util.EnumFacing; -import net.minecraft.world.World; - -/** This class is provided as a utility class for third-party mods that would like to easily deploy structures that are - * written in blueprints. It does not offer control on material that needs to get in, or how the structure is deployed, - * but allows to create contents of a blueprint in one cycle. Note that these functionalities will only work if - * BuildCraft is installed. */ -public abstract class BlueprintDeployer { - - /** The deployed instantiated by BuildCraft. This is set by the BuildCraft builder mod. Mods that want to work with - * BuildCraft not installed should check for this value to be not null. */ - public static BlueprintDeployer instance; - - /** Deploy the contents of the blueprints as if the builder was located at {pos} facing the direction dir. */ - public abstract void deployBlueprint(World world, BlockPos pos, EnumFacing facing, File file); - - /** Deploy the contents of the byte array as if the builder was located at {pos} facing the direction dir. */ - - public abstract void deployBlueprintFromFileStream(World world, BlockPos pos, EnumFacing dir, byte[] data); - -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/BuilderAPI.java b/dependencies/main/java/buildcraft/api/blueprints/BuilderAPI.java deleted file mode 100644 index bbe10af371..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/BuilderAPI.java +++ /dev/null @@ -1,15 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -public final class BuilderAPI { - public static ISchematicRegistry schematicRegistry; - public static ISchematicHelper schematicHelper; - - public static final int BREAK_ENERGY = 160; - public static final int BUILD_ENERGY = 240; - - private BuilderAPI() {} -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/BuildingPermission.java b/dependencies/main/java/buildcraft/api/blueprints/BuildingPermission.java deleted file mode 100644 index 8661240c46..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/BuildingPermission.java +++ /dev/null @@ -1,21 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -/** Schematics recorded in the blueprints can restrict situations where a blueprint can be used. A same schematic class - * can have different permissions depending on its contents. It's particularly useful when fixing a schematic, if - * blueprints that saved the previous version should not be built because of a bug (such as dupe bug on inventories). */ -public enum BuildingPermission { - /** No restrictions, blueprints using this schematic are good in all contexts. */ - ALL, - - /** This blueprints containing this schematic can only be used in creative. Maybe the block can't be crafted in - * survival in the first place, or the content of the schematic is known to have dupe bugs. */ - CREATIVE_ONLY, - - /** Blueprints containing this schematic should not be built. This is typically used when a critical problems have - * been fixed, but older versions of the schematic are too badly broken to be retreived. */ - NONE, -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/IBuilderContext.java b/dependencies/main/java/buildcraft/api/blueprints/IBuilderContext.java deleted file mode 100644 index aa93d4bf96..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/IBuilderContext.java +++ /dev/null @@ -1,22 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -import buildcraft.api.core.IBox; - -/** This interface provide contextual information when building or initializing blueprint slots. */ -public interface IBuilderContext { - - Vec3 rotatePositionLeft(Vec3 pos); - - IBox surroundingBox(); - - World world(); - - MappingRegistry getMappingRegistry(); -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/ISchematicHelper.java b/dependencies/main/java/buildcraft/api/blueprints/ISchematicHelper.java deleted file mode 100644 index 7327f2e204..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/ISchematicHelper.java +++ /dev/null @@ -1,7 +0,0 @@ -package buildcraft.api.blueprints; - -import net.minecraft.item.ItemStack; - -public interface ISchematicHelper { - boolean isEqualItem(ItemStack a, ItemStack b); -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/ISchematicRegistry.java b/dependencies/main/java/buildcraft/api/blueprints/ISchematicRegistry.java deleted file mode 100644 index 503c315d5c..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/ISchematicRegistry.java +++ /dev/null @@ -1,19 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.Entity; - -public interface ISchematicRegistry { - void registerSchematicBlock(Block block, Class clazz, Object... params); - - void registerSchematicBlock(IBlockState state, Class clazz, Object... params); - - void registerSchematicEntity(Class entityClass, Class schematicClass, Object... params); - - boolean isSupported(IBlockState state); -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/ITileBuilder.java b/dependencies/main/java/buildcraft/api/blueprints/ITileBuilder.java deleted file mode 100644 index 2c06f64c36..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/ITileBuilder.java +++ /dev/null @@ -1,13 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -import net.minecraft.inventory.IInventory; - -public interface ITileBuilder extends IInventory { - - boolean isBuildingMaterialSlot(int i); - -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/MappingNotFoundException.java b/dependencies/main/java/buildcraft/api/blueprints/MappingNotFoundException.java deleted file mode 100644 index f84cee6278..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/MappingNotFoundException.java +++ /dev/null @@ -1,13 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -public class MappingNotFoundException extends Exception { - private static final long serialVersionUID = 1L; - - public MappingNotFoundException(String msg) { - super(msg); - } -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/MappingRegistry.java b/dependencies/main/java/buildcraft/api/blueprints/MappingRegistry.java deleted file mode 100644 index dbe66e320b..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/MappingRegistry.java +++ /dev/null @@ -1,424 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map.Entry; - -import com.google.common.collect.ArrayListMultimap; -import com.google.common.collect.ListMultimap; - -import org.apache.logging.log4j.Level; - -import net.minecraft.block.Block; -import net.minecraft.crash.CrashReportCategory; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.nbt.NBTTagByte; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.nbt.NBTTagShort; -import net.minecraft.util.ResourceLocation; - -import net.minecraftforge.common.util.Constants; -import net.minecraftforge.fml.common.FMLModContainer; -import net.minecraftforge.fml.common.Loader; -import net.minecraftforge.fml.common.ModContainer; -import net.minecraftforge.fml.common.event.FMLMissingMappingsEvent; -import net.minecraftforge.fml.common.registry.GameRegistry; - -import buildcraft.api.core.BCLog; - -public class MappingRegistry { - - public HashMap blockToId = new HashMap(); - public ArrayList idToBlock = new ArrayList(); - - public HashMap itemToId = new HashMap(); - public ArrayList idToItem = new ArrayList(); - - public HashMap, Integer> entityToId = new HashMap, Integer>(); - public ArrayList> idToEntity = new ArrayList>(); - - private void registerItem(Item item) { - if (item == null) throw new IllegalArgumentException("Cannot register a null item!"); - if (!itemToId.containsKey(item)) { - idToItem.add(item); - itemToId.put(item, idToItem.size() - 1); - } - } - - private void registerBlock(Block block) { - if (block == null) throw new IllegalArgumentException("Cannot register a null block!"); - if (!blockToId.containsKey(block)) { - idToBlock.add(block); - blockToId.put(block, idToBlock.size() - 1); - } - } - - private void registerEntity(Class entityClass) { - if (entityClass == null) throw new IllegalArgumentException("Cannot register a null entityClass!"); - if (!entityToId.containsKey(entityClass)) { - idToEntity.add(entityClass); - entityToId.put(entityClass, idToEntity.size() - 1); - } - } - - public Item getItemForId(int id) throws MappingNotFoundException { - if (id >= idToItem.size()) { - throw new MappingNotFoundException("no item mapping at position " + id); - } - - Item result = idToItem.get(id); - - if (result == null) { - throw new MappingNotFoundException("no item mapping at position " + id); - } else { - return result; - } - } - - public int getIdForItem(Item item) { - if (item == null) throw new NullPointerException("item"); - if (!itemToId.containsKey(item)) { - registerItem(item); - } - - return itemToId.get(item); - } - - public int itemIdToRegistry(int id) { - Item item = Item.getItemById(id); - - return getIdForItem(item); - } - - public ResourceLocation itemIdToWorld(int id) throws MappingNotFoundException { - Item item = getItemForId(id); - - return Item.itemRegistry.getNameForObject(item); - } - - public Block getBlockForId(int id) throws MappingNotFoundException { - if (id >= idToBlock.size()) { - throw new MappingNotFoundException("no block mapping at position " + id); - } - - Block result = idToBlock.get(id); - - if (result == null) { - throw new MappingNotFoundException("no block mapping at position " + id); - } else { - return result; - } - } - - public int getIdForBlock(Block block) { - if (!blockToId.containsKey(block)) { - registerBlock(block); - } - - return blockToId.get(block); - } - - public int blockIdToRegistry(int id) { - Block block = Block.getBlockById(id); - - return getIdForBlock(block); - } - - public ResourceLocation blockIdToWorld(int id) throws MappingNotFoundException { - Block block = getBlockForId(id); - - return Block.blockRegistry.getNameForObject(block); - } - - public Class getEntityForId(int id) throws MappingNotFoundException { - if (id >= idToEntity.size()) { - throw new MappingNotFoundException("no entity mapping at position " + id); - } - - Class result = idToEntity.get(id); - - if (result == null) { - throw new MappingNotFoundException("no entity mapping at position " + id); - } else { - return result; - } - } - - public int getIdForEntity(Class entity) { - if (!entityToId.containsKey(entity)) { - registerEntity(entity); - } - - return entityToId.get(entity); - } - - /** Relocates a stack nbt from the registry referential to the world referential. */ - public void stackToWorld(NBTTagCompound nbt) throws MappingNotFoundException { - // 1.7.10 back-compat - if (nbt.hasKey("id", Constants.NBT.TAG_SHORT)) { - Item item = getItemForId(nbt.getShort("id")); - nbt.setString("id", (Item.itemRegistry.getNameForObject(item).toString())); - } - } - - // versions before 1.8 saved stacks with an Item ID as a short - private boolean isOldStackLayout(NBTTagCompound nbt) { - return nbt.hasKey("id") && nbt.hasKey("Count") && nbt.hasKey("Damage") && nbt.getTag("id") instanceof NBTTagShort && nbt.getTag( - "Count") instanceof NBTTagByte && nbt.getTag("Damage") instanceof NBTTagShort; - } - - // 1.7.10 Back compat - public void scanAndTranslateStacksToWorld(NBTTagCompound nbt) throws MappingNotFoundException { - // First, check if this nbt is itself a stack - - if (isOldStackLayout(nbt)) { - stackToWorld(nbt); - } - - // Then, look at the nbt compound contained in this nbt (even if it's a - // stack) and checks for stacks in it. - for (String key : (Collection) nbt.getKeySet()) { - if (nbt.getTag(key) instanceof NBTTagCompound) { - try { - scanAndTranslateStacksToWorld(nbt.getCompoundTag(key)); - } catch (MappingNotFoundException e) { - nbt.removeTag(key); - } - } - - if (nbt.getTag(key) instanceof NBTTagList) { - NBTTagList list = (NBTTagList) nbt.getTag(key); - - if (list.getTagType() == Constants.NBT.TAG_COMPOUND) { - for (int i = list.tagCount() - 1; i >= 0; --i) { - try { - scanAndTranslateStacksToWorld(list.getCompoundTagAt(i)); - } catch (MappingNotFoundException e) { - list.removeTag(i); - } - } - } - } - } - } - - public void write(NBTTagCompound nbt) { - NBTTagList blocksMapping = new NBTTagList(); - - for (Block b : idToBlock) { - NBTTagCompound sub = new NBTTagCompound(); - if (b != null) { - Object obj = Block.blockRegistry.getNameForObject(b); - if (obj == null) { - BCLog.logger.error("Block " + b.getUnlocalizedName() + " (" + b.getClass().getName() - + ") does not have a registry name! This is a bug!"); - } else { - String name = obj.toString(); - if (name == null || name.length() == 0) { - BCLog.logger.error("Block " + b.getUnlocalizedName() + " (" + b.getClass().getName() - + ") has an empty registry name! This is a bug!"); - } else { - sub.setString("name", name); - } - } - } else { - throw new IllegalArgumentException("Found a null block!"); - } - blocksMapping.appendTag(sub); - } - - nbt.setTag("blocksMapping", blocksMapping); - - NBTTagList itemsMapping = new NBTTagList(); - - for (Item i : idToItem) { - NBTTagCompound sub = new NBTTagCompound(); - if (i != null) { - ResourceLocation obj = Item.itemRegistry.getNameForObject(i); - if (obj == null) { - BCLog.logger.error("Item " + i.getUnlocalizedName() + " (" + i.getClass().getName() - + ") does not have a registry name! This is a bug!"); - } else { - String name = obj.toString(); - if (name == null || name.length() == 0) { - BCLog.logger.error("Item " + i.getUnlocalizedName() + " (" + i.getClass().getName() - + ") has an empty registry name! This is a bug!"); - } else { - sub.setString("name", name); - } - } - } else { - throw new IllegalArgumentException("Found a null item!"); - } - itemsMapping.appendTag(sub); - } - - nbt.setTag("itemsMapping", itemsMapping); - - NBTTagList entitiesMapping = new NBTTagList(); - - for (Class e : idToEntity) { - NBTTagCompound sub = new NBTTagCompound(); - sub.setString("name", e.getCanonicalName()); - entitiesMapping.appendTag(sub); - } - - nbt.setTag("entitiesMapping", entitiesMapping); - - // System.out.println("[W] idToItem size : " + idToItem.size()); - // for (Item i : idToItem) { - // System.out.println("- " + (i != null ? i.toString() : "null")); - // } - } - - private Object getMissingMappingFromFML(boolean isBlock, String name, int i) { - ResourceLocation location = new ResourceLocation(name); - String modName = name.split(":")[0]; - if (Loader.isModLoaded(modName)) { - try { - FMLMissingMappingsEvent.MissingMapping mapping = new FMLMissingMappingsEvent.MissingMapping(isBlock ? GameRegistry.Type.BLOCK - : GameRegistry.Type.ITEM, location, i); - ListMultimap missingMapping = ArrayListMultimap.create(); - missingMapping.put(modName, mapping); - FMLMissingMappingsEvent event = new FMLMissingMappingsEvent(missingMapping); - for (ModContainer container : Loader.instance().getModList()) { - if (container instanceof FMLModContainer) { - event.applyModContainer(container); - ((FMLModContainer) container).handleModStateEvent(event); - if (mapping.getAction() != FMLMissingMappingsEvent.Action.DEFAULT) { - break; - } - } - } - if (mapping.getAction() == FMLMissingMappingsEvent.Action.REMAP) { - return mapping.getTarget(); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - return null; - } - - public void read(NBTTagCompound nbt) { - NBTTagList blocksMapping = nbt.getTagList("blocksMapping", Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < blocksMapping.tagCount(); ++i) { - NBTTagCompound sub = blocksMapping.getCompoundTagAt(i); - if (!sub.hasKey("name")) { - // Keeping the order correct - idToBlock.add(null); - BCLog.logger.log(Level.WARN, "Can't load a block - corrupt blueprint!"); - continue; - } - String name = sub.getString("name"); - ResourceLocation location = new ResourceLocation(name); - Block b = null; - - if (!Block.blockRegistry.containsKey(location) && name.contains(":")) { - b = (Block) getMissingMappingFromFML(true, name, i); - if (b != null) { - BCLog.logger.info("Remapped " + name + " to " + Block.blockRegistry.getNameForObject(b)); - } - } - - if (b == null && Block.blockRegistry.containsKey(location)) { - b = (Block) Block.blockRegistry.getObject(location); - } - - if (b != null) { - registerBlock(b); - } else { - // Keeping the order correct - idToBlock.add(null); - BCLog.logger.log(Level.WARN, "Can't load block " + name); - } - } - - NBTTagList itemsMapping = nbt.getTagList("itemsMapping", Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < itemsMapping.tagCount(); ++i) { - NBTTagCompound sub = itemsMapping.getCompoundTagAt(i); - if (!sub.hasKey("name")) { - // Keeping the order correct - idToItem.add(null); - BCLog.logger.log(Level.WARN, "Can't load an item - corrupt blueprint!"); - continue; - } - - String name = sub.getString("name"); - ResourceLocation location = new ResourceLocation(name); - Item item = null; - - if (!Item.itemRegistry.containsKey(location) && name.contains(":")) { - item = (Item) getMissingMappingFromFML(false, name, i); - if (item != null) { - BCLog.logger.info("Remapped " + name + " to " + Item.itemRegistry.getNameForObject(item)); - } - } - - if (item == null && Item.itemRegistry.containsKey(location)) { - item = (Item) Item.itemRegistry.getObject(location); - } - - if (item != null) { - registerItem(item); - } else { - // Keeping the order correct - idToItem.add(null); - BCLog.logger.log(Level.WARN, "Can't load item " + name); - } - } - - NBTTagList entitiesMapping = nbt.getTagList("entitiesMapping", Constants.NBT.TAG_COMPOUND); - - for (int i = 0; i < entitiesMapping.tagCount(); ++i) { - NBTTagCompound sub = entitiesMapping.getCompoundTagAt(i); - String name = sub.getString("name"); - Class e = null; - - try { - e = (Class) Class.forName(name); - } catch (ClassNotFoundException e1) { - e1.printStackTrace(); - } - - if (e != null) { - registerEntity(e); - } else { - // Keeping the order correct - idToEntity.add(null); - BCLog.logger.log(Level.WARN, "Can't load entity " + name); - } - } - - // System.out.println("[R] idToItem size : " + idToItem.size()); - // for (Item i : idToItem) { - // System.out.println("- " + (i != null ? i.toString() : "null")); - // } - } - - public void addToCrashReport(CrashReportCategory cat) { - cat.addCrashSection("Item Map Count", itemToId.size()); - for (Entry e : itemToId.entrySet()) { - cat.addCrashSection(" - ID " + e.getValue(), Item.itemRegistry.getNameForObject(e.getKey())); - } - - cat.addCrashSection("Block Map Count", blockToId.size()); - for (Entry e : blockToId.entrySet()) { - cat.addCrashSection(" - ID " + e.getValue(), Block.blockRegistry.getNameForObject(e.getKey())); - } - - cat.addCrashSection("Entity Map Count", entityToId.size()); - for (Entry, Integer> e : entityToId.entrySet()) { - cat.addCrashSection(" - ID " + e.getValue(), e.getKey()); - } - } -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/Schematic.java b/dependencies/main/java/buildcraft/api/blueprints/Schematic.java deleted file mode 100644 index a433588019..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/Schematic.java +++ /dev/null @@ -1,195 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -import java.util.List; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.BlockPos; -import net.minecraft.util.Vec3; - -import buildcraft.api.core.IInvSlot; - -/** A schematic is a piece of a blueprint. It allows to stock blocks or entities to blueprints, and can have a state - * that moves from a blueprint referential to a world referential. Although default schematic behavior will be OK for a - * lot of objects, specific blocks and entities may be associated with a dedicated schematic class, which will be - * instantiated automatically. - * - * Schematic perform "id translation" in case the block ids between a blueprint and the world installation are - * different. Mapping is done through the builder context. - * - * Detailed documentation on the schematic behavior can be found on - * http://www.mod-buildcraft.com/wiki/doku.php?id=builder_support - * - * Example of schematics for minecraft blocks are available in the package buildcraft.core.schematics. */ -public abstract class Schematic { - /** Blocks are build in various stages, in order to make sure that a block can indeed be placed, and that it's - * unlikely to disturb other blocks. */ - public enum BuildingStage { - /** Standalone blocks do not change once placed. */ - STANDALONE, - - /** Expanding blocks will grow and may disturb other block locations, like liquids. */ - EXPANDING - } - - /** This is called to verify whether the required item is equal to the supplied item. - * - * Primarily rely on this for checking metadata/NBT - the item ID itself might have been filtered out by previously - * running code. */ - public boolean isItemMatchingRequirement(ItemStack suppliedStack, ItemStack requiredStack) { - return BuilderAPI.schematicHelper.isEqualItem(suppliedStack, requiredStack); - } - - /** This is called each time an item matches a requirement. By default, it will increase damage of items that can be - * damaged by the amount of the requirement, and remove the intended amount of items that can't be damaged. - * - * Client may override this behavior. Note that this subprogram may be called twice with the same parameters, once - * with a copy of requirements and stack to check if the entire requirements can be fulfilled, and once with the - * real inventory. Implementer is responsible for updating req (with the remaining requirements if any) and slot - * (after usage). - * - * returns what was used (similar to req, but created from slot, so that any NBT based differences are drawn from - * the correct source) */ - public ItemStack useItem(IBuilderContext context, ItemStack req, IInvSlot slot) { - ItemStack stack = slot.getStackInSlot(); - ItemStack result = stack.copy(); - - if (stack.isItemStackDamageable()) { - if (req.getItemDamage() + stack.getItemDamage() <= stack.getMaxDamage()) { - stack.setItemDamage(req.getItemDamage() + stack.getItemDamage()); - result.setItemDamage(req.getItemDamage()); - req.stackSize = 0; - } - - if (stack.getItemDamage() >= stack.getMaxDamage()) { - slot.decreaseStackInSlot(1); - } - } else { - if (stack.stackSize >= req.stackSize) { - result.stackSize = req.stackSize; - stack.stackSize -= req.stackSize; - req.stackSize = 0; - } else { - req.stackSize -= stack.stackSize; - stack.stackSize = 0; - } - } - - if (stack.stackSize == 0) { - stack.stackSize = 1; - if (stack.getItem().hasContainerItem(stack)) { - ItemStack newStack = stack.getItem().getContainerItem(stack); - slot.setStackInSlot(newStack); - } else { - slot.setStackInSlot(null); - } - } - - return result; - } - - /** Perform a 90 degree rotation to the slot. */ - public void rotateLeft(IBuilderContext context) { - - } - - /** Applies translations to all positions in the schematic to center in the blueprint referential */ - public void translateToBlueprint(Vec3 transform) { - - } - - /** Apply translations to all positions in the schematic to center in the builder referential */ - public void translateToWorld(Vec3 transform) {} - - /** Translates blocks and item ids to the blueprint referential */ - public void idsToBlueprint(MappingRegistry registry) {} - - /** Translates blocks and item ids to the world referential */ - public void idsToWorld(MappingRegistry registry) {} - - /** Initializes a schematic for blueprint according to an objet placed on {x, y, z} on the world. For blocks, block - * and meta fields will be initialized automatically. */ - public void initializeFromObjectAt(IBuilderContext context, BlockPos pos) {} - - /** Places the block in the world, at the location specified in the slot, using the stack in parameters */ - public void placeInWorld(IBuilderContext context, BlockPos pos, List stacks) {} - - /** Write specific requirements coming from the world to the blueprint. */ - public void storeRequirements(IBuilderContext context, BlockPos pos) {} - - /** Returns the requirements needed to build this block. When the requirements are met, they will be removed all at - * once from the builder, before calling writeToWorld. */ - public void getRequirementsForPlacement(IBuilderContext context, List requirements) {} - - /** Returns the amount of energy required to build this slot, depends on the stacks selected for the build. */ - public int getEnergyRequirement(List stacksUsed) { - int result = 0; - - if (stacksUsed != null) { - for (ItemStack s : stacksUsed) { - result += s.stackSize * BuilderAPI.BUILD_ENERGY; - } - } - - return result; - } - - /** Returns the flying stacks to display in the builder animation. */ - public List getStacksToDisplay(List stackConsumed) { - return stackConsumed; - } - - /** Return the stage where this schematic has to be built. */ - public BuildingStage getBuildStage() { - return BuildingStage.STANDALONE; - } - - /** Return true if the block on the world correspond to the block stored in the blueprint at the location given by - * the slot. By default, this subprogram is permissive and doesn't take into account metadata. - * - * Post processing will be called on these blocks. */ - public boolean isAlreadyBuilt(IBuilderContext context, BlockPos pos) { - return true; - } - - /** Return true if the block should not be placed to the world. Requirements will not be asked on such a block, and - * building will not be called. - * - * Post processing will be called on these blocks. */ - public boolean doNotBuild() { - return false; - } - - /** Return true if the schematic should not be used at all. This is computed straight after readFromNBT can be used - * to deactivate schematics in which an inconsistency is detected. It will be considered as a block of air instead. - * - * Post processing will *not* be called on these blocks. */ - public boolean doNotUse() { - return false; - } - - /** Return the maximium building permission for blueprint containing this schematic. */ - public BuildingPermission getBuildingPermission() { - return BuildingPermission.ALL; - } - - /** Called on a block when the blueprint has finished to place all the blocks. This may be useful to adjust variable - * depending on surrounding blocks that may not be there already at initial building. */ - public void postProcessing(IBuilderContext context, BlockPos pos) {} - - /** Saves this schematic to the blueprint NBT. */ - public void writeSchematicToNBT(NBTTagCompound nbt, MappingRegistry registry) {} - - /** Loads this schematic from the blueprint NBT. */ - public void readSchematicFromNBT(NBTTagCompound nbt, MappingRegistry registry) {} - - /** Returns the number of cycles to wait after building this schematic. Tiles and entities typically require more - * wait, around 5 cycles. */ - public int buildTime() { - return 1; - } -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/SchematicBlock.java b/dependencies/main/java/buildcraft/api/blueprints/SchematicBlock.java deleted file mode 100644 index 68385343af..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/SchematicBlock.java +++ /dev/null @@ -1,213 +0,0 @@ -/** Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -import java.util.*; - -import com.google.gson.GsonBuilder; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockFalling; -import net.minecraft.block.BlockLiquid; -import net.minecraft.block.properties.IProperty; -import net.minecraft.block.state.IBlockState; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.BlockPos; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumFacing.Axis; - -import net.minecraftforge.common.util.Constants; -import net.minecraftforge.fluids.BlockFluidBase; - -import buildcraft.api.core.BCLog; - -public class SchematicBlock extends SchematicBlockBase { - public IBlockState state = null; - public BuildingPermission defaultPermission = BuildingPermission.ALL; - - /** This field contains requirements for a given block when stored in the blueprint. Modders can either rely on this - * list or compute their own int Schematic. */ - public ItemStack[] storedRequirements = new ItemStack[0]; - - private boolean doNotUse = false; - - @Override - public void getRequirementsForPlacement(IBuilderContext context, List requirements) { - if (state != null) { - if (storedRequirements.length != 0) { - Collections.addAll(requirements, storedRequirements); - } else { - requirements.add(getItemStack(state)); - } - } - } - - @Override - public boolean isAlreadyBuilt(IBuilderContext context, BlockPos pos) { - IBlockState placed = context.world().getBlockState(pos); - if (state == placed) return true; - if (state.getBlock() != placed.getBlock()) return false; - // This fixes bugs with blocks like stairs that return extra properties that were not visible from the meta. - if (state.getBlock().getMetaFromState(state) == placed.getBlock().getMetaFromState(placed)) return true; - return false; - } - - @Override - public void placeInWorld(IBuilderContext context, BlockPos pos, List stacks) { - super.placeInWorld(context, pos, stacks); - - this.setBlockInWorld(context, pos); - } - - @Override - public void storeRequirements(IBuilderContext context, BlockPos pos) { - super.storeRequirements(context, pos); - - if (state != null) { - List req = state.getBlock().getDrops(context.world(), pos, state, 0); - - if (req != null) { - storedRequirements = new ItemStack[req.size()]; - req.toArray(storedRequirements); - } - } - } - - @Override - public void writeSchematicToNBT(NBTTagCompound nbt, MappingRegistry registry) { - super.writeSchematicToNBT(nbt, registry); - - writeBlockToNBT(nbt, registry); - writeRequirementsToNBT(nbt, registry); - } - - @Override - public void readSchematicFromNBT(NBTTagCompound nbt, MappingRegistry registry) { - super.readSchematicFromNBT(nbt, registry); - - readBlockFromNBT(nbt, registry); - if (!doNotUse()) { - readRequirementsFromNBT(nbt, registry); - } - } - - /** Get a list of relative block coordinates which have to be built before this block can be placed. */ - public Set getPrerequisiteBlocks(IBuilderContext context) { - Set indexes = new HashSet(); - if (state.getBlock() instanceof BlockFalling) { - indexes.add(new BlockPos(0, -1, 0)); - } - return indexes; - } - - @Override - public BuildingStage getBuildStage() { - if (state.getBlock() instanceof BlockFluidBase || state.getBlock() instanceof BlockLiquid) { - return BuildingStage.EXPANDING; - } else { - return BuildingStage.STANDALONE; - } - } - - @Override - public BuildingPermission getBuildingPermission() { - return defaultPermission; - } - - // Utility functions - protected void setBlockInWorld(IBuilderContext context, BlockPos pos) { - context.world().setBlockState(pos, state, 3); - } - - @Override - public boolean doNotUse() { - return doNotUse; - } - - protected void readBlockFromNBT(NBTTagCompound nbt, MappingRegistry registry) { - try { - Block block = registry.getBlockForId(nbt.getInteger("blockId")); - state = block.getStateFromMeta(nbt.getInteger("blockMeta")); - } catch (MappingNotFoundException e) { - BCLog.logger.info(e); - doNotUse = true; - } - } - - protected void readRequirementsFromNBT(NBTTagCompound nbt, MappingRegistry registry) { - if (nbt.hasKey("rq")) { - NBTTagList rq = nbt.getTagList("rq", Constants.NBT.TAG_COMPOUND); - - ArrayList rqs = new ArrayList(); - for (int i = 0; i < rq.tagCount(); ++i) { - try { - NBTTagCompound sub = rq.getCompoundTagAt(i); - registry.stackToWorld(sub); - rqs.add(ItemStack.loadItemStackFromNBT(sub)); - } catch (MappingNotFoundException e) { - defaultPermission = BuildingPermission.CREATIVE_ONLY; - } catch (Throwable t) { - t.printStackTrace(); - defaultPermission = BuildingPermission.CREATIVE_ONLY; - } - } - - storedRequirements = rqs.toArray(new ItemStack[rqs.size()]); - } else { - storedRequirements = new ItemStack[0]; - } - } - - protected void writeBlockToNBT(NBTTagCompound nbt, MappingRegistry registry) { - nbt.setInteger("blockId", registry.getIdForBlock(state.getBlock())); - nbt.setInteger("blockMeta", state.getBlock().getMetaFromState(state)); - } - - protected void writeRequirementsToNBT(NBTTagCompound nbt, MappingRegistry registry) { - if (storedRequirements.length > 0) { - NBTTagList rq = new NBTTagList(); - - for (ItemStack stack : storedRequirements) { - if (stack == null || stack.getItem() == null) throw new IllegalStateException("Found a null requirement! " + getClass()); - NBTTagCompound sub = new NBTTagCompound(); - stack.writeToNBT(sub); - rq.appendTag(sub); - } - - nbt.setTag("rq", rq); - } - } - - protected ItemStack getItemStack(IBlockState state, int quantity) { - return new ItemStack(state.getBlock(), quantity, state.getBlock().damageDropped(state)); - } - - protected ItemStack getItemStack(IBlockState state) { - return getItemStack(state, 1); - } - - // Pretty much all blocks (that rotate) rotate this way now - @Override - public void rotateLeft(IBuilderContext context) { - IProperty facingProp = getFacingProp(); - if (facingProp != null) { - EnumFacing face = state.getValue(facingProp); - if (face.getAxis() == Axis.Y) return; - state = state.withProperty(facingProp, face.rotateY()); - } - } - - protected IProperty getFacingProp() { - Collection props = state.getPropertyNames(); - for (IProperty prop : props) { - if ("facing".equals(prop.getName()) && state.getValue(prop) instanceof EnumFacing) { - return prop; - } - } - return null; - } -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/SchematicBlockBase.java b/dependencies/main/java/buildcraft/api/blueprints/SchematicBlockBase.java deleted file mode 100644 index 69f18a2ebe..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/SchematicBlockBase.java +++ /dev/null @@ -1,9 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -public abstract class SchematicBlockBase extends Schematic { - -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/SchematicEntity.java b/dependencies/main/java/buildcraft/api/blueprints/SchematicEntity.java deleted file mode 100644 index 2057bd6d53..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/SchematicEntity.java +++ /dev/null @@ -1,194 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityList; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagDouble; -import net.minecraft.nbt.NBTTagFloat; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.Vec3; - -import net.minecraftforge.common.util.Constants; - -public class SchematicEntity extends Schematic { - public Class entity; - - /** This tree contains additional data to be stored in the blueprint. By default, it will be initialized from - * Schematic.readFromWord with the standard readNBT function of the corresponding tile (if any) and will be loaded - * from BptBlock.writeToWorld using the standard writeNBT function. */ - public NBTTagCompound entityNBT = new NBTTagCompound(); - - /** This field contains requirements for a given block when stored in the blueprint. Modders can either rely on this - * list or compute their own int Schematic. */ - public ItemStack[] storedRequirements = new ItemStack[0]; - public BuildingPermission defaultPermission = BuildingPermission.ALL; - - @Override - public void getRequirementsForPlacement(IBuilderContext context, List requirements) { - Collections.addAll(requirements, storedRequirements); - } - - public void writeToWorld(IBuilderContext context) { - Entity e = EntityList.createEntityFromNBT(entityNBT, context.world()); - context.world().spawnEntityInWorld(e); - } - - public void readFromWorld(IBuilderContext context, Entity entity) { - entity.writeToNBTOptional(entityNBT); - } - - @Override - public void translateToBlueprint(Vec3 transform) { - NBTTagList nbttaglist = entityNBT.getTagList("Pos", 6); - Vec3 pos = new Vec3(nbttaglist.getDoubleAt(0), nbttaglist.getDoubleAt(1), nbttaglist.getDoubleAt(2)); - pos = pos.add(transform); - entityNBT.setTag("Pos", this.newDoubleNBTList(pos.xCoord, pos.yCoord, pos.zCoord)); - } - - @Override - public void translateToWorld(Vec3 transform) { - NBTTagList nbttaglist = entityNBT.getTagList("Pos", 6); - Vec3 pos = new Vec3(nbttaglist.getDoubleAt(0), nbttaglist.getDoubleAt(1), nbttaglist.getDoubleAt(2)); - pos = pos.add(transform); - - entityNBT.setTag("Pos", this.newDoubleNBTList(pos.xCoord, pos.yCoord, pos.zCoord)); - } - - @Override - public void idsToBlueprint(MappingRegistry registry) {} - - @Override - public void idsToWorld(MappingRegistry registry) { - try { - registry.scanAndTranslateStacksToWorld(entityNBT); - } catch (MappingNotFoundException e) { - entityNBT = new NBTTagCompound(); - } - } - - @Override - public void rotateLeft(IBuilderContext context) { - NBTTagList nbttaglist = entityNBT.getTagList("Pos", 6); - Vec3 pos = new Vec3(nbttaglist.getDoubleAt(0), nbttaglist.getDoubleAt(1), nbttaglist.getDoubleAt(2)); - pos = context.rotatePositionLeft(pos); - entityNBT.setTag("Pos", this.newDoubleNBTList(pos.xCoord, pos.yCoord, pos.zCoord)); - - nbttaglist = entityNBT.getTagList("Rotation", 5); - float yaw = nbttaglist.getFloatAt(0); - yaw += 90; - entityNBT.setTag("Rotation", this.newFloatNBTList(yaw, nbttaglist.getFloatAt(1))); - } - - @Override - public void writeSchematicToNBT(NBTTagCompound nbt, MappingRegistry registry) { - super.writeSchematicToNBT(nbt, registry); - - nbt.setInteger("entityId", registry.getIdForEntity(entity)); - nbt.setTag("entity", entityNBT); - - NBTTagList rq = new NBTTagList(); - - for (ItemStack stack : storedRequirements) { - NBTTagCompound sub = new NBTTagCompound(); - stack.writeToNBT(stack.writeToNBT(sub)); - sub.setInteger("id", registry.getIdForItem(stack.getItem())); - rq.appendTag(sub); - } - - nbt.setTag("rq", rq); - } - - @Override - public void readSchematicFromNBT(NBTTagCompound nbt, MappingRegistry registry) { - super.readSchematicFromNBT(nbt, registry); - - entityNBT = nbt.getCompoundTag("entity"); - - NBTTagList rq = nbt.getTagList("rq", Constants.NBT.TAG_COMPOUND); - - ArrayList rqs = new ArrayList(); - - for (int i = 0; i < rq.tagCount(); ++i) { - try { - NBTTagCompound sub = rq.getCompoundTagAt(i); - - if (sub.getInteger("id") >= 0) { - // Maps the id in the blueprint to the id in the world - sub.setInteger("id", Item.itemRegistry.getIDForObject(registry.getItemForId(sub.getInteger("id")))); - - rqs.add(ItemStack.loadItemStackFromNBT(sub)); - } else { - defaultPermission = BuildingPermission.CREATIVE_ONLY; - } - } catch (Throwable t) { - t.printStackTrace(); - defaultPermission = BuildingPermission.CREATIVE_ONLY; - } - } - - storedRequirements = rqs.toArray(new ItemStack[rqs.size()]); - } - - protected NBTTagList newDoubleNBTList(double... par1ArrayOfDouble) { - NBTTagList nbttaglist = new NBTTagList(); - double[] adouble = par1ArrayOfDouble; - int i = par1ArrayOfDouble.length; - - for (int j = 0; j < i; ++j) { - double d1 = adouble[j]; - nbttaglist.appendTag(new NBTTagDouble(d1)); - } - - return nbttaglist; - } - - protected NBTTagList newFloatNBTList(float... par1ArrayOfFloat) { - NBTTagList nbttaglist = new NBTTagList(); - float[] afloat = par1ArrayOfFloat; - int i = par1ArrayOfFloat.length; - - for (int j = 0; j < i; ++j) { - float f1 = afloat[j]; - nbttaglist.appendTag(new NBTTagFloat(f1)); - } - - return nbttaglist; - } - - public boolean isAlreadyBuilt(IBuilderContext context) { - NBTTagList nbttaglist = entityNBT.getTagList("Pos", 6); - Vec3 newPosition = new Vec3(nbttaglist.getDoubleAt(0), nbttaglist.getDoubleAt(1), nbttaglist.getDoubleAt(2)); - - for (Object o : context.world().loadedEntityList) { - Entity e = (Entity) o; - - Vec3 existingPositon = new Vec3(e.posX, e.posY, e.posZ); - - if (existingPositon.distanceTo(newPosition) <= 0.1) { - return true; - } - } - - return false; - } - - @Override - public int buildTime() { - return 5; - } - - @Override - public BuildingPermission getBuildingPermission() { - return defaultPermission; - } -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/SchematicFactory.java b/dependencies/main/java/buildcraft/api/blueprints/SchematicFactory.java deleted file mode 100644 index 878b157143..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/SchematicFactory.java +++ /dev/null @@ -1,51 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -import java.util.HashMap; - -import net.minecraft.nbt.NBTTagCompound; - -public abstract class SchematicFactory { - - private static final HashMap> factories = new HashMap>(); - - private static final HashMap, SchematicFactory> schematicToFactory = - new HashMap, SchematicFactory>(); - - protected abstract S loadSchematicFromWorldNBT(NBTTagCompound nbt, MappingRegistry registry) throws MappingNotFoundException; - - public void saveSchematicToWorldNBT(NBTTagCompound nbt, S object, MappingRegistry registry) { - nbt.setString("factoryID", getClass().getCanonicalName()); - } - - public static Schematic createSchematicFromWorldNBT(NBTTagCompound nbt, MappingRegistry registry) throws MappingNotFoundException { - String factoryName = nbt.getString("factoryID"); - - if (factories.containsKey(factoryName)) { - return factories.get(factoryName).loadSchematicFromWorldNBT(nbt, registry); - } else { - return null; - } - } - - public static void registerSchematicFactory(Class clas, SchematicFactory factory) { - schematicToFactory.put(clas, factory); - factories.put(factory.getClass().getCanonicalName(), factory); - } - - public static SchematicFactory getFactory(Class clas) { - Class superClass = clas.getSuperclass(); - - if (schematicToFactory.containsKey(clas)) { - return schematicToFactory.get(clas); - } else if (superClass != null) { - return getFactory(superClass); - } else { - return null; - } - } - -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/SchematicFluid.java b/dependencies/main/java/buildcraft/api/blueprints/SchematicFluid.java deleted file mode 100644 index 798f017281..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/SchematicFluid.java +++ /dev/null @@ -1,84 +0,0 @@ -/** Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.block.BlockLiquid; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockPos; - -import net.minecraftforge.fluids.FluidStack; - -public class SchematicFluid extends SchematicBlock { - - private final ItemStack fluidItem; - - public SchematicFluid(FluidStack fluidStack) { - this.fluidItem = new ItemStack(fluidStack.getFluid().getBlock(), 1); - } - - @Override - public void getRequirementsForPlacement(IBuilderContext context, List requirements) { - if (getLevel() == 0) { - requirements.add(fluidItem); - } - } - - @Override - public void storeRequirements(IBuilderContext context, BlockPos pos) { - // cancel requirements reading - } - - @Override - public boolean isAlreadyBuilt(IBuilderContext context, BlockPos pos) { - if (getLevel() == 0) { - return state == context.world().getBlockState(pos) && ((Integer) context.world().getBlockState(pos).getValue(BlockLiquid.LEVEL)) == 0; - } else { - return state == context.world().getBlockState(pos); - } - } - - @Override - public void rotateLeft(IBuilderContext context) { - - } - - @Override - public boolean doNotBuild() { - return getLevel() != 0; - } - - @Override - public void placeInWorld(IBuilderContext context, BlockPos pos, List stacks) { - if (getLevel() == 0) { - context.world().setBlockState(pos, state, 3); - } - } - - @Override - public void postProcessing(IBuilderContext context, BlockPos pos) { - if (getLevel() != 0) { - context.world().setBlockState(pos, state, 3); - } - } - - @Override - public List getStacksToDisplay(List stackConsumed) { - List result = new ArrayList(); - result.add(fluidItem); - return result; - } - - @Override - public int getEnergyRequirement(List stacksUsed) { - return 1 * BuilderAPI.BUILD_ENERGY; - } - - public int getLevel() { - return (Integer) state.getValue(BlockLiquid.LEVEL); - } -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/SchematicMask.java b/dependencies/main/java/buildcraft/api/blueprints/SchematicMask.java deleted file mode 100644 index 757199055b..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/SchematicMask.java +++ /dev/null @@ -1,83 +0,0 @@ -/** Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -import java.util.List; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.BlockPos; -import net.minecraft.util.EnumFacing; -import net.minecraft.world.WorldServer; - -import buildcraft.api.core.BuildCraftAPI; - -public class SchematicMask extends SchematicBlockBase { - /** True of the block should be a solid block (stone, grass or a furnace) and false if it shouldn't (flowers, air or - * vines) */ - public boolean isConcrete = true; - - public SchematicMask() { - - } - - public SchematicMask(boolean isConcrete) { - this.isConcrete = isConcrete; - } - - @Override - public void placeInWorld(IBuilderContext context, BlockPos pos, List stacks) { - if (isConcrete) { - if (stacks.size() == 0 || !BuildCraftAPI.isSoftBlock(context.world(), pos)) { - return; - } else { - ItemStack stack = stacks.get(0); - EntityPlayer player = BuildCraftAPI.proxy.getBuildCraftPlayer((WorldServer) context.world(), pos).get(); - - // force the block to be air block, in case it's just a soft - // block which replacement is not straightforward - context.world().setBlockToAir(pos); - - // Find nearest solid surface to place on - EnumFacing solidFace = null; - for (EnumFacing face : EnumFacing.values()) { - BlockPos offset = pos.offset(face); - if (!BuildCraftAPI.isSoftBlock(context.world(), offset)) { - solidFace = face; - break; - } - } - ItemBlock itemBlock = (ItemBlock) stack.getItem(); - IBlockState state = itemBlock.block.onBlockPlaced(context.world(), pos, solidFace, 0, 0, 0, stack.getMetadata(), player); - itemBlock.placeBlockAt(stack, player, context.world(), pos, solidFace, 0, 0, 0, state); - - } - } else { - context.world().setBlockToAir(pos); - } - } - - @Override - public boolean isAlreadyBuilt(IBuilderContext context, BlockPos pos) { - if (isConcrete) { - return !BuildCraftAPI.getWorldProperty("replaceable").get(context.world(), pos); - } else { - return BuildCraftAPI.getWorldProperty("replaceable").get(context.world(), pos); - } - } - - @Override - public void writeSchematicToNBT(NBTTagCompound nbt, MappingRegistry registry) { - nbt.setBoolean("isConcrete", isConcrete); - } - - @Override - public void readSchematicFromNBT(NBTTagCompound nbt, MappingRegistry registry) { - isConcrete = nbt.getBoolean("isConcrete"); - } -} diff --git a/dependencies/main/java/buildcraft/api/blueprints/SchematicTile.java b/dependencies/main/java/buildcraft/api/blueprints/SchematicTile.java deleted file mode 100644 index f70fd19ced..0000000000 --- a/dependencies/main/java/buildcraft/api/blueprints/SchematicTile.java +++ /dev/null @@ -1,114 +0,0 @@ -/** Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.blueprints; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.BlockPos; - -import buildcraft.api.core.JavaTools; - -public class SchematicTile extends SchematicBlock { - - /** This tree contains additional data to be stored in the blueprint. By default, it will be initialized from - * Schematic.readFromWord with the standard readNBT function of the corresponding tile (if any) and will be loaded - * from BptBlock.writeToWorld using the standard writeNBT function. */ - public NBTTagCompound tileNBT = new NBTTagCompound(); - - @Override - public void idsToBlueprint(MappingRegistry registry) {} - - @Override - public void idsToWorld(MappingRegistry registry) { - try { - registry.scanAndTranslateStacksToWorld(tileNBT); - } catch (MappingNotFoundException e) { - tileNBT = new NBTTagCompound(); - } - } - - public void onNBTLoaded() { - - } - - /** Places the block in the world, at the location specified in the slot. */ - @Override - public void placeInWorld(IBuilderContext context, BlockPos pos, List stacks) { - super.placeInWorld(context, pos, stacks); - - if (state.getBlock().hasTileEntity(state)) { - tileNBT.setInteger("x", pos.getX()); - tileNBT.setInteger("y", pos.getY()); - tileNBT.setInteger("z", pos.getZ()); - TileEntity tile = TileEntity.createAndLoadEntity(tileNBT); - tile.setWorldObj(context.world()); - context.world().setTileEntity(pos, tile); - } - } - - @Override - public void initializeFromObjectAt(IBuilderContext context, BlockPos pos) { - super.initializeFromObjectAt(context, pos); - - if (state.getBlock().hasTileEntity(state)) { - TileEntity tile = context.world().getTileEntity(pos); - - if (tile != null) { - tile.writeToNBT(tileNBT); - } - - tileNBT = (NBTTagCompound) tileNBT.copy(); - onNBTLoaded(); - } - } - - @Override - public void storeRequirements(IBuilderContext context, BlockPos pos) { - super.storeRequirements(context, pos); - - if (state.getBlock().hasTileEntity(state)) { - TileEntity tile = context.world().getTileEntity(pos); - - if (tile instanceof IInventory) { - IInventory inv = (IInventory) tile; - - ArrayList rqs = new ArrayList(); - - for (int i = 0; i < inv.getSizeInventory(); ++i) { - if (inv.getStackInSlot(i) != null) { - rqs.add(inv.getStackInSlot(i)); - } - } - - storedRequirements = JavaTools.concat(storedRequirements, rqs.toArray(new ItemStack[rqs.size()])); - } - } - } - - @Override - public void writeSchematicToNBT(NBTTagCompound nbt, MappingRegistry registry) { - super.writeSchematicToNBT(nbt, registry); - - nbt.setTag("blockCpt", tileNBT); - } - - @Override - public void readSchematicFromNBT(NBTTagCompound nbt, MappingRegistry registry) { - super.readSchematicFromNBT(nbt, registry); - - tileNBT = nbt.getCompoundTag("blockCpt"); - onNBTLoaded(); - } - - @Override - public int buildTime() { - return 5; - } -} diff --git a/dependencies/main/java/buildcraft/api/core/BCLog.java b/dependencies/main/java/buildcraft/api/core/BCLog.java deleted file mode 100644 index f74509173b..0000000000 --- a/dependencies/main/java/buildcraft/api/core/BCLog.java +++ /dev/null @@ -1,43 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.core; - -import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -public final class BCLog { - public static final Logger logger = LogManager.getLogger("BuildCraft"); - - /** Deactivate constructor */ - private BCLog() {} - - @Deprecated - public static void logErrorAPI(String mod, Throwable error, Class classFile) { - logErrorAPI(error, classFile); - } - - public static void logErrorAPI(Throwable error, Class classFile) { - StringBuilder msg = new StringBuilder("API error! Please update your mods. Error: "); - msg.append(error); - StackTraceElement[] stackTrace = error.getStackTrace(); - if (stackTrace.length > 0) { - msg.append(", ").append(stackTrace[0]); - } - - logger.log(Level.ERROR, msg.toString()); - - if (classFile != null) { - msg.append("API error: ").append(classFile.getSimpleName()).append(" is loaded from ").append(classFile.getProtectionDomain() - .getCodeSource().getLocation()); - logger.log(Level.ERROR, msg.toString()); - } - } - - @Deprecated - public static String getVersion() { - return BuildCraftAPI.getVersion(); - } -} diff --git a/dependencies/main/java/buildcraft/api/core/BuildCraftAPI.java b/dependencies/main/java/buildcraft/api/core/BuildCraftAPI.java deleted file mode 100644 index 6e43e6d8c1..0000000000 --- a/dependencies/main/java/buildcraft/api/core/BuildCraftAPI.java +++ /dev/null @@ -1,52 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.core; - -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.Set; - -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - -import net.minecraft.block.Block; -import net.minecraft.util.BlockPos; -import net.minecraft.world.World; - -public final class BuildCraftAPI { - - public static ICoreProxy proxy; - - public static final Set softBlocks = Sets.newHashSet(); - public static final HashMap worldProperties = Maps.newHashMap(); - - /** Deactivate constructor */ - private BuildCraftAPI() {} - - public static String getVersion() { - try { - Class clazz = Class.forName("buildcraft.core.Version"); - Method method = clazz.getDeclaredMethod("getVersion"); - return String.valueOf(method.invoke(null)); - } catch (Exception e) { - return "UNKNOWN VERSION"; - } - } - - public static IWorldProperty getWorldProperty(String name) { - return worldProperties.get(name); - } - - public static void registerWorldProperty(String name, IWorldProperty property) { - if (worldProperties.containsKey(name)) { - BCLog.logger.warn("The WorldProperty key '" + name + "' is being overidden with " + property.getClass().getSimpleName() + "!"); - } - worldProperties.put(name, property); - } - - public static boolean isSoftBlock(World world, BlockPos pos) { - return worldProperties.get("soft").get(world, pos); - } -} diff --git a/dependencies/main/java/buildcraft/api/core/ConfigAccessor.java b/dependencies/main/java/buildcraft/api/core/ConfigAccessor.java deleted file mode 100644 index a66346ac57..0000000000 --- a/dependencies/main/java/buildcraft/api/core/ConfigAccessor.java +++ /dev/null @@ -1,48 +0,0 @@ -package buildcraft.api.core; - -import java.util.Map; - -import com.google.common.collect.Maps; - -import net.minecraftforge.common.config.Property; - -/** Use this to access the various config options. It is recommended that you use this as opposed to the variables in - * the mod, as users may only install the modules that they want, and not the one you may have refereed to. */ -@Deprecated -public final class ConfigAccessor { - public enum EMod { - CORE, - BUILDERS, - ENERGY, - FACTORY, - ROBITICS, - SILICON, - TRANSPORT - } - - private static Map mods = Maps.newHashMap(); - - private ConfigAccessor() {} - - public static Property getOption(EMod mod, String name) { - if (mods.containsKey(mod)) { - return mods.get(mod).getOption(name); - } else { - return null; - } - } - - public static boolean getBoolean(EMod mod, String name, boolean defaultBoolean) { - Property prop = getOption(mod, name); - if (prop == null) { - return defaultBoolean; - } else { - return prop.getBoolean(defaultBoolean); - } - } - - /** WARNING: INTERNAL USE ONLY! */ - public static void addMod(EMod mod, IBuildCraftMod actual) { - mods.put(mod, actual); - } -} diff --git a/dependencies/main/java/buildcraft/api/core/EnumColor.java b/dependencies/main/java/buildcraft/api/core/EnumColor.java deleted file mode 100644 index 852eea1ba6..0000000000 --- a/dependencies/main/java/buildcraft/api/core/EnumColor.java +++ /dev/null @@ -1,147 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.core; - -import java.util.Locale; -import java.util.Random; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.util.IStringSerializable; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; - -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -/** Use minecraft's EnumDyeColor in as many places as possible. */ -@Deprecated -public enum EnumColor implements IStringSerializable { - - BLACK, - RED, - GREEN, - BROWN, - BLUE, - PURPLE, - CYAN, - LIGHT_GRAY, - GRAY, - PINK, - LIME, - YELLOW, - LIGHT_BLUE, - MAGENTA, - ORANGE, - WHITE; - - public static final EnumColor[] VALUES = values(); - public static final String[] DYES = { "dyeBlack", "dyeRed", "dyeGreen", "dyeBrown", "dyeBlue", "dyePurple", "dyeCyan", "dyeLightGray", "dyeGray", - "dyePink", "dyeLime", "dyeYellow", "dyeLightBlue", "dyeMagenta", "dyeOrange", "dyeWhite" }; - public static final String[] NAMES = { "Black", "Red", "Green", "Brown", "Blue", "Purple", "Cyan", "LightGray", "Gray", "Pink", "Lime", "Yellow", - "LightBlue", "Magenta", "Orange", "White" }; - public static final int[] DARK_HEX = { 0x2D2D2D, 0xA33835, 0x394C1E, 0x5C3A24, 0x3441A2, 0x843FBF, 0x36809E, 0x888888, 0x444444, 0xE585A0, - 0x3FAA36, 0xCFC231, 0x7F9AD1, 0xFF64FF, 0xFF6A00, 0xFFFFFF }; - public static final int[] LIGHT_HEX = { 0x181414, 0xBE2B27, 0x007F0E, 0x89502D, 0x253193, 0x7e34bf, 0x299799, 0xa0a7a7, 0x7A7A7A, 0xD97199, - 0x39D52E, 0xFFD91C, 0x66AAFF, 0xD943C6, 0xEA7835, 0xe4e4e4 }; - - @SideOnly(Side.CLIENT) - private static ResourceLocation iconSheet; - - @SideOnly(Side.CLIENT) - private static TextureAtlasSprite[] brushSprites; - - public int getDarkHex() { - return DARK_HEX[ordinal()]; - } - - public int getLightHex() { - return LIGHT_HEX[ordinal()]; - } - - public static EnumColor fromId(int id) { - if (id < 0 || id >= VALUES.length) { - return WHITE; - } - return VALUES[id]; - } - - public static EnumColor fromDye(String dyeTag) { - for (int id = 0; id < DYES.length; id++) { - if (DYES[id].equals(dyeTag)) { - return VALUES[id]; - } - } - return null; - } - - public static EnumColor fromName(String name) { - for (int id = 0; id < NAMES.length; id++) { - if (NAMES[id].equals(name)) { - return VALUES[id]; - } - } - return null; - } - - public static EnumColor getRand() { - return VALUES[new Random().nextInt(VALUES.length)]; - } - - public EnumColor getNext() { - EnumColor next = VALUES[(ordinal() + 1) % VALUES.length]; - return next; - } - - public EnumColor getPrevious() { - EnumColor previous = VALUES[(ordinal() + VALUES.length - 1) % VALUES.length]; - return previous; - } - - public EnumColor inverse() { - return EnumColor.VALUES[15 - ordinal()]; - } - - public String getTag() { - return "color." + name().replace("_", ".").toLowerCase(Locale.ENGLISH); - } - - public String getBasicTag() { - return name().replace("_", ".").toLowerCase(Locale.ENGLISH); - } - - @Override - public String getName() { - return NAMES[ordinal()]; - } - - public String getLocalizedName() { - return StatCollector.translateToLocal(getTag()); - } - - public String getDye() { - return DYES[ordinal()]; - } - - @Override - public String toString() { - String s = name().replace("_", " "); - String[] words = s.split(" "); - StringBuilder b = new StringBuilder(); - for (String word : words) { - b.append(word.charAt(0)).append(word.substring(1).toLowerCase(Locale.ENGLISH)).append(" "); - } - return b.toString().trim(); - } - - @SideOnly(Side.CLIENT) - public static void registerSprites(TextureAtlasSprite[] sprites) { - brushSprites = sprites; - } - - @SideOnly(Side.CLIENT) - public TextureAtlasSprite getSprite() { - return brushSprites[ordinal()]; - } -} diff --git a/dependencies/main/java/buildcraft/api/core/EnumPipePart.java b/dependencies/main/java/buildcraft/api/core/EnumPipePart.java deleted file mode 100644 index 2f97777cbe..0000000000 --- a/dependencies/main/java/buildcraft/api/core/EnumPipePart.java +++ /dev/null @@ -1,120 +0,0 @@ -package buildcraft.api.core; - -import com.google.common.collect.Maps; -import io.netty.buffer.ByteBuf; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTBase.NBTPrimitive; -import net.minecraft.nbt.NBTTagString; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.IStringSerializable; - -import java.util.Locale; -import java.util.Map; - -public enum EnumPipePart implements IStringSerializable,INetworkLoadable_BC8 { - DOWN(EnumFacing.DOWN), - UP(EnumFacing.UP), - NORTH(EnumFacing.NORTH), - SOUTH(EnumFacing.SOUTH), - WEST(EnumFacing.WEST), - EAST(EnumFacing.EAST), - /** CENTER, UNKNOWN and ALL are all valid uses of this constant. */ - CENTER(null); - - private static final Map facingMap = Maps.newEnumMap(EnumFacing.class); - private static final Map nameMap = Maps.newHashMap(); - private static final int MAX_VALUES = values().length; - - public final EnumFacing face; - - static { - for (EnumPipePart part : values()) { - nameMap.put(part.name(), part); - if (part.face != null) facingMap.put(part.face, part); - } - } - - public static int ordinal(EnumFacing face) { - return face == null ? 6 : face.ordinal(); - } - - public static EnumPipePart fromFacing(EnumFacing face) { - if (face == null) return EnumPipePart.CENTER; - return facingMap.get(face); - } - - public static EnumPipePart[] validFaces() { - return new EnumPipePart[] { DOWN, UP, NORTH, SOUTH, WEST, EAST }; - } - - public static EnumPipePart fromMeta(int meta) { - if (meta < 0 || meta >= MAX_VALUES) return EnumPipePart.CENTER; - return values()[meta]; - } - - private EnumPipePart(EnumFacing face) { - this.face = face; - } - - public int getIndex() { - if (face == null) return 6; - return face.getIndex(); - } - - @Override - public String getName() { - return name().toLowerCase(Locale.ROOT); - } - - public EnumPipePart next() { - switch (this) { - case DOWN: - return EAST; - case EAST: - return NORTH; - case NORTH: - return SOUTH; - case SOUTH: - return UP; - case UP: - return WEST; - case WEST: - return DOWN; - default: - return DOWN; - } - } - - public EnumPipePart opposite() { - if (this == CENTER) return CENTER; - return fromFacing(face.getOpposite()); - } - - public static EnumPipePart readFromNBT(NBTBase base) { - if (base == null) return CENTER; - if (base instanceof NBTTagString) { - NBTTagString nbtString = (NBTTagString) base; - String string = nbtString.getString(); - return nameMap.containsKey(string) ? nameMap.get(string) : CENTER; - } else { - byte ord = ((NBTPrimitive) base).getByte(); - if (ord < 0 || ord > 6) return CENTER; - return values()[ord]; - } - } - - public NBTBase writeToNBT() { - return new NBTTagString(name()); - } - - @Override - public EnumPipePart readFromByteBuf(ByteBuf buf) { - byte ord = buf.readByte(); - return fromMeta(ord); - } - - @Override - public void writeToByteBuf(ByteBuf buf) { - buf.writeByte(ordinal()); - } -} diff --git a/dependencies/main/java/buildcraft/api/core/IAreaProvider.java b/dependencies/main/java/buildcraft/api/core/IAreaProvider.java deleted file mode 100644 index e504694baf..0000000000 --- a/dependencies/main/java/buildcraft/api/core/IAreaProvider.java +++ /dev/null @@ -1,17 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.core; - -import net.minecraft.util.BlockPos; - -/** To be implemented by TileEntities able to provide a square area on the world, typically BuildCraft markers. */ -public interface IAreaProvider { - BlockPos min(); - - BlockPos max(); - - /** Remove from the world all objects used to define the area. */ - void removeFromWorld(); -} diff --git a/dependencies/main/java/buildcraft/api/core/IBox.java b/dependencies/main/java/buildcraft/api/core/IBox.java deleted file mode 100644 index d7c11f4f43..0000000000 --- a/dependencies/main/java/buildcraft/api/core/IBox.java +++ /dev/null @@ -1,19 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.core; - -import net.minecraft.util.BlockPos; - -public interface IBox extends IZone { - IBox expand(int amount); - - IBox contract(int amount); - - BlockPos min(); - - BlockPos max(); - - void createLaserData(); -} diff --git a/dependencies/main/java/buildcraft/api/core/IBuildCraftMod.java b/dependencies/main/java/buildcraft/api/core/IBuildCraftMod.java deleted file mode 100644 index c287088b11..0000000000 --- a/dependencies/main/java/buildcraft/api/core/IBuildCraftMod.java +++ /dev/null @@ -1,7 +0,0 @@ -package buildcraft.api.core; - -import net.minecraftforge.common.config.Property; - -public interface IBuildCraftMod { - Property getOption(String name); -} diff --git a/dependencies/main/java/buildcraft/api/core/ICoreProxy.java b/dependencies/main/java/buildcraft/api/core/ICoreProxy.java deleted file mode 100644 index 7648e35636..0000000000 --- a/dependencies/main/java/buildcraft/api/core/ICoreProxy.java +++ /dev/null @@ -1,15 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.core; - -import java.lang.ref.WeakReference; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.BlockPos; -import net.minecraft.world.WorldServer; - -public interface ICoreProxy { - WeakReference getBuildCraftPlayer(WorldServer world, BlockPos pos); -} diff --git a/dependencies/main/java/buildcraft/api/core/IFluidFilter.java b/dependencies/main/java/buildcraft/api/core/IFluidFilter.java deleted file mode 100644 index 0b61d440d8..0000000000 --- a/dependencies/main/java/buildcraft/api/core/IFluidFilter.java +++ /dev/null @@ -1,12 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - *

- * BuildCraft is distributed under the terms of the Minecraft Mod Public License 1.0, or MMPL. Please check the contents - * of the license located in http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.api.core; - -import net.minecraftforge.fluids.Fluid; - -public interface IFluidFilter { - - boolean matches(Fluid fluid); -} diff --git a/dependencies/main/java/buildcraft/api/core/IIconProvider.java b/dependencies/main/java/buildcraft/api/core/IIconProvider.java deleted file mode 100644 index 418c08a00d..0000000000 --- a/dependencies/main/java/buildcraft/api/core/IIconProvider.java +++ /dev/null @@ -1,13 +0,0 @@ -package buildcraft.api.core; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public interface IIconProvider { - public TextureAtlasSprite getIcon(int iconIndex); - - @SideOnly(Side.CLIENT) - public void registerIcons(TextureMap iconRegister); -} diff --git a/dependencies/main/java/buildcraft/api/core/IInvSlot.java b/dependencies/main/java/buildcraft/api/core/IInvSlot.java deleted file mode 100644 index a047a2f879..0000000000 --- a/dependencies/main/java/buildcraft/api/core/IInvSlot.java +++ /dev/null @@ -1,26 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.core; - -import net.minecraft.item.ItemStack; - -public interface IInvSlot { - /** Returns the slot number of the underlying Inventory. - * - * @return the slot number */ - int getIndex(); - - boolean canPutStackInSlot(ItemStack stack); - - boolean canTakeStackFromSlot(ItemStack stack); - - boolean isItemValidForSlot(ItemStack stack); - - ItemStack decreaseStackInSlot(int amount); - - ItemStack getStackInSlot(); - - void setStackInSlot(ItemStack stack); -} diff --git a/dependencies/main/java/buildcraft/api/core/INBTLoadable_BC8.java b/dependencies/main/java/buildcraft/api/core/INBTLoadable_BC8.java deleted file mode 100644 index 8005bcf53f..0000000000 --- a/dependencies/main/java/buildcraft/api/core/INBTLoadable_BC8.java +++ /dev/null @@ -1,14 +0,0 @@ -package buildcraft.api.core; - -import net.minecraft.nbt.NBTBase; - -/** @param The type that will be loaded from and saved too. This essentially allows Immutable objects to be safely - * loaded without helper methods everywhere. However you are allowed to return this if you are a mutable - * object */ -public interface INBTLoadable_BC8 { - /** @return An object that has the properties loaded. WARNIG! This might be the same object as the one this method - * was called on! (You should always replace the object you have stored with whatever this returns) */ - T readFromNBT(NBTBase nbt); - - NBTBase writeToNBT(); -} diff --git a/dependencies/main/java/buildcraft/api/core/INBTStoreable.java b/dependencies/main/java/buildcraft/api/core/INBTStoreable.java deleted file mode 100644 index c34c134ac7..0000000000 --- a/dependencies/main/java/buildcraft/api/core/INBTStoreable.java +++ /dev/null @@ -1,12 +0,0 @@ -package buildcraft.api.core; - -import net.minecraft.nbt.NBTTagCompound; - -/** Use {@link INBTLoadable_BC8} instead of this, as this gives you more control over what NBT goes where, and what - * objects are allowed to do. */ -@Deprecated -public interface INBTStoreable { - void readFromNBT(NBTTagCompound tag); - - void writeToNBT(NBTTagCompound tag); -} diff --git a/dependencies/main/java/buildcraft/api/core/INetworkLoadable_BC8.java b/dependencies/main/java/buildcraft/api/core/INetworkLoadable_BC8.java deleted file mode 100644 index de0f99e95f..0000000000 --- a/dependencies/main/java/buildcraft/api/core/INetworkLoadable_BC8.java +++ /dev/null @@ -1,9 +0,0 @@ -package buildcraft.api.core; - -import io.netty.buffer.ByteBuf; - -public interface INetworkLoadable_BC8 { - T readFromByteBuf(ByteBuf buf); - - void writeToByteBuf(ByteBuf buf); -} diff --git a/dependencies/main/java/buildcraft/api/core/IPathProvider.java b/dependencies/main/java/buildcraft/api/core/IPathProvider.java deleted file mode 100644 index d953bca12e..0000000000 --- a/dependencies/main/java/buildcraft/api/core/IPathProvider.java +++ /dev/null @@ -1,13 +0,0 @@ -package buildcraft.api.core; - -import java.util.List; - -import net.minecraft.util.BlockPos; - -/** To be implemented by TileEntities able to provide a path on the world, typically BuildCraft path markers. */ -public interface IPathProvider { - List getPath(); - - /** Remove from the world all objects used to define the path. */ - void removeFromWorld(); -} diff --git a/dependencies/main/java/buildcraft/api/core/ISerializable.java b/dependencies/main/java/buildcraft/api/core/ISerializable.java deleted file mode 100644 index 77d56d5414..0000000000 --- a/dependencies/main/java/buildcraft/api/core/ISerializable.java +++ /dev/null @@ -1,21 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * BuildCraft is distributed under the terms of the Minecraft Mod Public License 1.0, or MMPL. Please check the contents - * of the license located in http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.api.core; - -import io.netty.buffer.ByteBuf; - -/** Use {@link INetworkLoadable_BC8} instead, as that gives you more control over how you use objects */ -@Deprecated -public interface ISerializable { - /** Serializes the state to the stream - * - * @param data */ - void writeData(ByteBuf data); - - /** Deserializes the state from the stream - * - * @param data */ - void readData(ByteBuf data); -} diff --git a/dependencies/main/java/buildcraft/api/core/IStackFilter.java b/dependencies/main/java/buildcraft/api/core/IStackFilter.java deleted file mode 100644 index ef4f558833..0000000000 --- a/dependencies/main/java/buildcraft/api/core/IStackFilter.java +++ /dev/null @@ -1,14 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - *

- * BuildCraft is distributed under the terms of the Minecraft Mod Public License 1.0, or MMPL. Please check the contents - * of the license located in http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.api.core; - -import net.minecraft.item.ItemStack; - -/** This interface provides a convenient means of dealing with entire classes of items without having to specify each - * item individually. */ -public interface IStackFilter { - - boolean matches(ItemStack stack); -} diff --git a/dependencies/main/java/buildcraft/api/core/IWorldProperty.java b/dependencies/main/java/buildcraft/api/core/IWorldProperty.java deleted file mode 100644 index ba440d7d36..0000000000 --- a/dependencies/main/java/buildcraft/api/core/IWorldProperty.java +++ /dev/null @@ -1,14 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.core; - -import net.minecraft.util.BlockPos; -import net.minecraft.world.World; - -public interface IWorldProperty { - boolean get(World world, BlockPos pos); - - void clear(); -} diff --git a/dependencies/main/java/buildcraft/api/core/IZone.java b/dependencies/main/java/buildcraft/api/core/IZone.java deleted file mode 100644 index 5d722ffe6b..0000000000 --- a/dependencies/main/java/buildcraft/api/core/IZone.java +++ /dev/null @@ -1,26 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.core; - -import java.util.Random; - -import net.minecraft.util.BlockPos; -import net.minecraft.util.Vec3; - -public interface IZone { - /** Returns the smallest possible distance that the index would have to be changed by in order for - * {@link #contains(Vec3)} to return true. If the position is already inside then this will return 0 */ - double distanceTo(BlockPos index); - - /** Returns {@link #distanceTo(BlockPos)} but squared. Usually this will be quicker to calculate. */ - double distanceToSquared(BlockPos index); - - /** Returns true if the point is enclosed by this zone, such that none of the coordinates lie outside the range - * specified by this zone. */ - boolean contains(Vec3 point); - - /** Gets a random position that {@link #contains(Vec3)} will return true. */ - BlockPos getRandomBlockPos(Random rand); -} diff --git a/dependencies/main/java/buildcraft/api/core/Identifier.java b/dependencies/main/java/buildcraft/api/core/Identifier.java deleted file mode 100644 index b940884fe9..0000000000 --- a/dependencies/main/java/buildcraft/api/core/Identifier.java +++ /dev/null @@ -1,234 +0,0 @@ -package buildcraft.api.core; - -import java.util.Map; -import java.util.UUID; - -import com.google.common.base.Supplier; - -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.BlockPos; -import net.minecraft.world.World; - -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -/** Identifies an in world tile entity or movable entity. Feel free to extend this class if your tile entity contains - * multiple identifiable {@link IPowerConnection}. Just make sure to register it with - * {@link #registerType(String, Supplier)} to make loading work. - *

- * Created on 1 Jan 2016 by AlexIIL */ -public abstract class Identifier { - private static Map> registeredIdentifiers; - - static { - registeredIdentifiers.put("mincraft:tile", new Supplier() { - @Override - public Identifier get() { - return new Tile(0, null); - } - }); - registeredIdentifiers.put("mincraft:entity", new Supplier() { - @Override - public Identifier get() { - return new MovableEntity(0, null); - } - }); - } - - protected final int dimId; - - public static void registerType(String type, Supplier constructor) { - if (constructor == null) throw new NullPointerException("constructor"); - if (constructor.get() == null) throw new NullPointerException("constructor.get()"); - registeredIdentifiers.put(type, constructor); - } - - public static Identifier getFor(Object obj) { - if (obj == null) throw new NullPointerException("obj"); - if (obj instanceof TileEntity) { - return Tile.create((TileEntity) obj); - } - if (obj instanceof Entity) { - return MovableEntity.create((Entity) obj); - } - if (obj instanceof NBTTagCompound) { - NBTTagCompound nbt = (NBTTagCompound) obj; - String type = nbt.getString("type"); - if (!registeredIdentifiers.containsKey(type)) return null; - return registeredIdentifiers.get(type).get().load(nbt.getCompoundTag("data")); - } - throw new IllegalArgumentException("Unknown type " + obj.getClass()); - } - - public static NBTTagCompound save(Identifier ident) { - NBTTagCompound tag = new NBTTagCompound(); - tag.setString("type", ident.typeId()); - tag.setTag("data", ident.save()); - return tag; - } - - private Identifier(int dimId) { - this.dimId = dimId; - } - - public abstract Object getByIdentifier(MinecraftServer server); - - public abstract boolean isLoaded(MinecraftServer server); - - protected abstract Identifier load(NBTTagCompound tag); - - protected abstract NBTTagCompound save(); - - public abstract String typeId(); - - @SideOnly(Side.CLIENT) - public abstract Object getByIdentifierClient(); - - @SideOnly(Side.CLIENT) - public abstract boolean isLoadedClient(); - - public static class Tile extends Identifier { - private final BlockPos pos; - - public static Tile create(TileEntity tile) { - if (tile.getWorld() == null) throw new NullPointerException("tile.getWorld() for the tile " + tile.getClass()); - if (tile.getPos() == null) throw new NullPointerException("tile.getPos() for the tile " + tile.getClass()); - return new Tile(tile.getWorld().provider.getDimensionId(), tile.getPos()); - } - - private Tile(int dimId, BlockPos pos) { - super(dimId); - this.pos = pos; - } - - @Override - public Tile load(NBTTagCompound tag) { - int dimId = tag.getInteger("dimId"); - int[] arr = tag.getIntArray("pos"); - if (arr.length == 0) return null; - return new Tile(dimId, new BlockPos(arr[0], arr[1], arr[2])); - } - - @Override - protected NBTTagCompound save() { - NBTTagCompound tag = new NBTTagCompound(); - tag.setInteger("dimId", dimId); - tag.setIntArray("pos", new int[] { pos.getX(), pos.getY(), pos.getZ() }); - return tag; - } - - @Override - public String typeId() { - return "minecraft:tile"; - } - - @Override - public TileEntity getByIdentifier(MinecraftServer server) { - World world = server.worldServerForDimension(dimId); - if (world == null) return null; - return world.getTileEntity(pos); - } - - @Override - public boolean isLoaded(MinecraftServer server) { - World world = server.worldServerForDimension(dimId); - if (world == null) return false; - return world.getTileEntity(pos) != null; - } - - @Override - @SideOnly(Side.CLIENT) - public TileEntity getByIdentifierClient() { - World world = Minecraft.getMinecraft().theWorld; - if (world == null || world.provider.getDimensionId() != dimId) return null; - return world.getTileEntity(pos); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isLoadedClient() { - World world = Minecraft.getMinecraft().theWorld; - if (world == null || world.provider.getDimensionId() != dimId) return false; - return world.getTileEntity(pos) != null; - } - - } - - public static class MovableEntity extends Identifier { - private final UUID uniqueId; - - public static MovableEntity create(Entity ent) { - if (ent.getEntityWorld() == null) throw new NullPointerException("ent.getEntityWorld() for the entity " + ent.getClass()); - if (ent.getPersistentID() == null) throw new NullPointerException("ent.getPersistentID() for the entity " + ent.getClass()); - return new MovableEntity(ent.getEntityWorld().provider.getDimensionId(), ent.getPersistentID()); - } - - private MovableEntity(int dimId, UUID uniqueId) { - super(dimId); - this.uniqueId = uniqueId; - } - - private Entity get(World world) { - for (Entity entity : world.loadedEntityList) { - if (entity.getPersistentID().equals(uniqueId)) { - return entity; - } - } - return null; - } - - @Override - public Entity getByIdentifier(MinecraftServer server) { - World world = server.worldServerForDimension(dimId); - if (world == null || world.provider.getDimensionId() != dimId) return null; - return get(world); - } - - @Override - public boolean isLoaded(MinecraftServer server) { - World world = server.worldServerForDimension(dimId); - if (world == null || world.provider.getDimensionId() != dimId) return false; - return get(world) != null; - } - - @Override - @SideOnly(Side.CLIENT) - public Entity getByIdentifierClient() { - World world = Minecraft.getMinecraft().theWorld; - if (world == null || world.provider.getDimensionId() != dimId) return null; - return get(world); - } - - @Override - @SideOnly(Side.CLIENT) - public boolean isLoadedClient() { - World world = Minecraft.getMinecraft().theWorld; - if (world == null || world.provider.getDimensionId() != dimId) return false; - return get(world) != null; - } - - @Override - protected MovableEntity load(NBTTagCompound tag) { - int dimId = tag.getInteger("dimId"); - UUID uuid = UUID.fromString(tag.getString("uuid")); - return new MovableEntity(dimId, uuid); - } - - @Override - protected NBTTagCompound save() { - NBTTagCompound tag = new NBTTagCompound(); - tag.setInteger("dimId", dimId); - tag.setString("uuid", uniqueId.toString()); - return tag; - } - - @Override - public String typeId() { - return "minecraft:entity"; - } - } -} diff --git a/dependencies/main/java/buildcraft/api/core/JavaTools.java b/dependencies/main/java/buildcraft/api/core/JavaTools.java deleted file mode 100644 index 7b7eb513c2..0000000000 --- a/dependencies/main/java/buildcraft/api/core/JavaTools.java +++ /dev/null @@ -1,39 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.core; - -import java.util.Arrays; - -public final class JavaTools { - private JavaTools() { - - } - - public static T[] concat(T[] first, T[] second) { - T[] result = Arrays.copyOf(first, first.length + second.length); - System.arraycopy(second, 0, result, first.length, second.length); - return result; - } - - public static int[] concat(int[] first, int[] second) { - int[] result = Arrays.copyOf(first, first.length + second.length); - System.arraycopy(second, 0, result, first.length, second.length); - return result; - } - - public static float[] concat(float[] first, float[] second) { - float[] result = Arrays.copyOf(first, first.length + second.length); - System.arraycopy(second, 0, result, first.length, second.length); - return result; - } - - public static String surroundWithQuotes(String stringToSurroundWithQuotes) { - return String.format("\"%s\"", stringToSurroundWithQuotes); - } - - public static String stripSurroundingQuotes(String stringToStripQuotes) { - return stringToStripQuotes.replaceAll("^\"|\"$", ""); - } -} diff --git a/dependencies/main/java/buildcraft/api/core/SafeTimeTracker.java b/dependencies/main/java/buildcraft/api/core/SafeTimeTracker.java deleted file mode 100644 index 9390d87e7b..0000000000 --- a/dependencies/main/java/buildcraft/api/core/SafeTimeTracker.java +++ /dev/null @@ -1,68 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.core; - -import net.minecraft.world.World; - -public class SafeTimeTracker { - - private long lastMark = Long.MIN_VALUE; - private long duration = -1; - private long randomRange = 0; - private long lastRandomDelay = 0; - private long internalDelay = 1; - - /** Only use this if the delay time changes (say, if you use this to determine when a refining should be complete */ - public SafeTimeTracker() { - - } - - public SafeTimeTracker(long delay) { - internalDelay = delay; - } - - /** In many situations, it is a bad idea to have all objects of the same kind to be waiting for the exact same - * amount of time, as that can lead to some situation where they're all synchronized and got to work all at the same - * time. When created with a random range, the mark that is set when reaching the expect delay will be added with a - * random number between [0, range[, meaning that the event will take between 0 and range more tick to run. */ - public SafeTimeTracker(long delay, long random) { - internalDelay = delay; - randomRange = random; - } - - public boolean markTimeIfDelay(World world) { - return markTimeIfDelay(world, internalDelay); - } - - /** Return true if a given delay has passed since last time marked was called successfully. */ - public boolean markTimeIfDelay(World world, long delay) { - if (world == null) { - return false; - } - - long currentTime = world.getTotalWorldTime(); - - if (currentTime < lastMark) { - lastMark = currentTime; - return false; - } else if (lastMark + delay + lastRandomDelay <= currentTime) { - duration = currentTime - lastMark; - lastMark = currentTime; - lastRandomDelay = (int) (Math.random() * randomRange); - - return true; - } else { - return false; - } - } - - public long durationOfLastDelay() { - return duration > 0 ? duration : 0; - } - - public void markTime(World world) { - lastMark = world.getTotalWorldTime(); - } -} diff --git a/dependencies/main/java/buildcraft/api/core/StackKey.java b/dependencies/main/java/buildcraft/api/core/StackKey.java deleted file mode 100644 index 13a8e89891..0000000000 --- a/dependencies/main/java/buildcraft/api/core/StackKey.java +++ /dev/null @@ -1,125 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.core; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidStack; - -/** This class is used whenever stacks needs to be stored as keys. */ -public final class StackKey { - public final ItemStack stack; - public final FluidStack fluidStack; - - public StackKey(FluidStack fluidStack) { - this(null, fluidStack); - } - - public StackKey(ItemStack stack) { - this(stack, null); - } - - public StackKey(ItemStack stack, FluidStack fluidStack) { - this.stack = stack; - this.fluidStack = fluidStack; - } - - public static StackKey stack(Item item, int amount, int damage) { - return new StackKey(new ItemStack(item, amount, damage)); - } - - public static StackKey stack(Block block, int amount, int damage) { - return new StackKey(new ItemStack(block, amount, damage)); - } - - public static StackKey stack(Item item) { - return new StackKey(new ItemStack(item, 1, 0)); - } - - public static StackKey stack(Block block) { - return new StackKey(new ItemStack(block, 1, 0)); - } - - public static StackKey stack(ItemStack itemStack) { - return new StackKey(itemStack); - } - - public static StackKey fluid(Fluid fluid, int amount) { - return new StackKey(new FluidStack(fluid, amount)); - } - - public static StackKey fluid(Fluid fluid) { - return new StackKey(new FluidStack(fluid, FluidContainerRegistry.BUCKET_VOLUME)); - } - - public static StackKey fluid(FluidStack fluidStack) { - return new StackKey(fluidStack); - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || o.getClass() != StackKey.class) { - return false; - } - StackKey k = (StackKey) o; - if ((stack == null ^ k.stack == null) || (fluidStack == null ^ k.fluidStack == null)) { - return false; - } - if (stack != null) { - if (stack.getItem() != k.stack.getItem() || stack.getHasSubtypes() && stack.getItemDamage() != k.stack.getItemDamage() || !objectsEqual( - stack.getTagCompound(), k.stack.getTagCompound())) { - return false; - } - } - if (fluidStack != null) { - if (fluidStack.getFluid().getID() != k.fluidStack.getFluid().getID() || fluidStack.amount != k.fluidStack.amount || !objectsEqual( - fluidStack.tag, k.fluidStack.tag)) { - return false; - } - } - return true; - } - - @Override - public int hashCode() { - int result = 7; - if (stack != null) { - result = 31 * result + stack.getItem().hashCode(); - result = 31 * result + stack.getItemDamage(); - result = 31 * result + objectHashCode(stack.getTagCompound()); - } - result = 31 * result + 7; - if (fluidStack != null) { - result = 31 * result + fluidStack.getFluid().getID(); - result = 31 * result + fluidStack.amount; - result = 31 * result + objectHashCode(fluidStack.tag); - } - return result; - } - - private boolean objectsEqual(Object o1, Object o2) { - if (o1 == null && o2 == null) { - return true; - } else if (o1 == null || o2 == null) { - return false; - } else { - return o1.equals(o2); - } - } - - private int objectHashCode(Object o) { - return o != null ? o.hashCode() : 0; - } - - public StackKey copy() { - return new StackKey(stack != null ? stack.copy() : null, fluidStack != null ? fluidStack.copy() : null); - } -} diff --git a/dependencies/main/java/buildcraft/api/enums/EnumBlueprintType.java b/dependencies/main/java/buildcraft/api/enums/EnumBlueprintType.java deleted file mode 100644 index 8d62177977..0000000000 --- a/dependencies/main/java/buildcraft/api/enums/EnumBlueprintType.java +++ /dev/null @@ -1,29 +0,0 @@ -package buildcraft.api.enums; - -import net.minecraft.item.ItemStack; - -import buildcraft.api.items.IBlueprintItem; - -public enum EnumBlueprintType { - NONE, - BLUEPRINT, - TEMPLATE; - - public static EnumBlueprintType valueOf(int index) { - if (index <= 0 || index >= values().length) { - return NONE; - } else { - return values()[index]; - } - } - - public static EnumBlueprintType getType(ItemStack item) { - if (item == null) { - return NONE; - } else if (item.getItem() instanceof IBlueprintItem) { - return ((IBlueprintItem) item.getItem()).getType(item); - } else { - return NONE; - } - } -} diff --git a/dependencies/main/java/buildcraft/api/enums/EnumDecoratedBlock.java b/dependencies/main/java/buildcraft/api/enums/EnumDecoratedBlock.java deleted file mode 100644 index 0956fa11ee..0000000000 --- a/dependencies/main/java/buildcraft/api/enums/EnumDecoratedBlock.java +++ /dev/null @@ -1,24 +0,0 @@ -package buildcraft.api.enums; - -import java.util.Locale; - -import net.minecraft.util.IStringSerializable; - -public enum EnumDecoratedBlock implements IStringSerializable { - DESTROY(0), - BLUEPRINT(10), - TEMPLATE(10), - PAPER(10), - LEATHER(10); - - public final int lightValue; - - private EnumDecoratedBlock(int lightValue) { - this.lightValue = lightValue; - } - - @Override - public String getName() { - return name().toLowerCase(Locale.ROOT); - } -} diff --git a/dependencies/main/java/buildcraft/api/enums/EnumEnergyStage.java b/dependencies/main/java/buildcraft/api/enums/EnumEnergyStage.java deleted file mode 100644 index dd809fea84..0000000000 --- a/dependencies/main/java/buildcraft/api/enums/EnumEnergyStage.java +++ /dev/null @@ -1,24 +0,0 @@ -package buildcraft.api.enums; - -import org.apache.commons.lang3.StringUtils; - -import net.minecraft.util.IStringSerializable; - -public enum EnumEnergyStage implements IStringSerializable { - BLUE, - GREEN, - YELLOW, - RED, - OVERHEAT, - BLACK; - public static final EnumEnergyStage[] VALUES = values(); - - public String getModelName() { - return StringUtils.lowerCase(name()); - } - - @Override - public String getName() { - return getModelName(); - } -} diff --git a/dependencies/main/java/buildcraft/api/enums/EnumEngineType.java b/dependencies/main/java/buildcraft/api/enums/EnumEngineType.java deleted file mode 100644 index f2be6833ec..0000000000 --- a/dependencies/main/java/buildcraft/api/enums/EnumEngineType.java +++ /dev/null @@ -1,27 +0,0 @@ -package buildcraft.api.enums; - -import java.util.Locale; - -import net.minecraft.util.IStringSerializable; - -public enum EnumEngineType implements IStringSerializable { - WOOD("core", "wood"), - STONE("energy", "stone"), - IRON("energy", "iron"), - CREATIVE("energy", "creative"); - - public final String resourceLocation; - - EnumEngineType(String mod, String loc) { - resourceLocation = "buildcraft" + mod + ":blocks/engine/inv/" + loc + "/"; - } - - @Override - public String getName() { - return name(); - } - - public String getModelName() { - return getName().toLowerCase(Locale.ROOT); - } -} diff --git a/dependencies/main/java/buildcraft/api/enums/EnumFillerPattern.java b/dependencies/main/java/buildcraft/api/enums/EnumFillerPattern.java deleted file mode 100644 index 4570f0c79c..0000000000 --- a/dependencies/main/java/buildcraft/api/enums/EnumFillerPattern.java +++ /dev/null @@ -1,28 +0,0 @@ -package buildcraft.api.enums; - -import java.util.Locale; - -import net.minecraft.util.IStringSerializable; - -public enum EnumFillerPattern implements IStringSerializable { - NONE, - BOX, - CLEAR, - CYLINDER, - FILL, - FLATTEN, - FRAME, - HORIZON, - PYRAMID, - STAIRS; - - @Override - public String toString() { - return getName(); - } - - @Override - public String getName() { - return name().toLowerCase(Locale.ROOT); - } -} diff --git a/dependencies/main/java/buildcraft/api/enums/EnumLaserTableType.java b/dependencies/main/java/buildcraft/api/enums/EnumLaserTableType.java deleted file mode 100644 index cc8b41e7de..0000000000 --- a/dependencies/main/java/buildcraft/api/enums/EnumLaserTableType.java +++ /dev/null @@ -1,24 +0,0 @@ -package buildcraft.api.enums; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.IStringSerializable; - -import buildcraft.api.properties.BuildCraftProperties; - -public enum EnumLaserTableType implements IStringSerializable { - ASSEMBLY_TABLE, - ADVANCED_CRAFTING_TABLE, - INTEGRATION_TABLE, - CHARGING_TABLE, - PROGRAMMING_TABLE, - STAMPING_TABLE; - - public static EnumLaserTableType getType(IBlockState state) { - return (EnumLaserTableType) state.getValue(BuildCraftProperties.LASER_TABLE_TYPE); - } - - @Override - public String getName() { - return name(); - } -} diff --git a/dependencies/main/java/buildcraft/api/enums/EnumMachineState.java b/dependencies/main/java/buildcraft/api/enums/EnumMachineState.java deleted file mode 100644 index 6a215c235b..0000000000 --- a/dependencies/main/java/buildcraft/api/enums/EnumMachineState.java +++ /dev/null @@ -1,21 +0,0 @@ -package buildcraft.api.enums; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.IStringSerializable; - -import buildcraft.api.properties.BuildCraftProperties; - -public enum EnumMachineState implements IStringSerializable { - OFF, - ON, - DONE; - - public static EnumMachineState getType(IBlockState state) { - return (EnumMachineState) state.getValue(BuildCraftProperties.MACHINE_STATE); - } - - @Override - public String getName() { - return name(); - } -} diff --git a/dependencies/main/java/buildcraft/api/enums/EnumRedstoneChipset.java b/dependencies/main/java/buildcraft/api/enums/EnumRedstoneChipset.java deleted file mode 100644 index 68ecb25157..0000000000 --- a/dependencies/main/java/buildcraft/api/enums/EnumRedstoneChipset.java +++ /dev/null @@ -1,42 +0,0 @@ -package buildcraft.api.enums; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public enum EnumRedstoneChipset { - RED, - IRON, - GOLD, - DIAMOND, - PULSATING, - QUARTZ, - COMP, - EMERALD; - - public ItemStack getStack(int stackSize) { - Item chipset = Item.getByNameOrId("buildcraft|silicon:redstoneChipset"); - if (chipset == null) { - return null; - } - - return new ItemStack(chipset, stackSize, ordinal()); - } - - public ItemStack getStack() { - return getStack(1); - } - - public static EnumRedstoneChipset fromStack(ItemStack stack) { - if (stack == null) { - return RED; - } - return fromOrdinal(stack.getMetadata()); - } - - public static EnumRedstoneChipset fromOrdinal(int ordinal) { - if (ordinal < 0 || ordinal >= values().length) { - return RED; - } - return values()[ordinal]; - } -} diff --git a/dependencies/main/java/buildcraft/api/enums/EnumSpring.java b/dependencies/main/java/buildcraft/api/enums/EnumSpring.java deleted file mode 100644 index a4ed92e657..0000000000 --- a/dependencies/main/java/buildcraft/api/enums/EnumSpring.java +++ /dev/null @@ -1,32 +0,0 @@ -package buildcraft.api.enums; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.init.Blocks; -import net.minecraft.util.IStringSerializable; - -import buildcraft.api.properties.BuildCraftProperties; - -public enum EnumSpring implements IStringSerializable { - - WATER(5, -1, Blocks.water.getDefaultState()), - OIL(6000, 8, null); // Set in BuildCraftEnergy - public static final EnumSpring[] VALUES = values(); - public final int tickRate, chance; - public IBlockState liquidBlock; - public boolean canGen = true; - - private EnumSpring(int tickRate, int chance, IBlockState liquidBlock) { - this.tickRate = tickRate; - this.chance = chance; - this.liquidBlock = liquidBlock; - } - - public static EnumSpring fromState(IBlockState state) { - return state.getValue(BuildCraftProperties.SPRING_TYPE); - } - - @Override - public String getName() { - return this.name(); - } -} diff --git a/dependencies/main/java/buildcraft/api/filler/FillerManager.java b/dependencies/main/java/buildcraft/api/filler/FillerManager.java deleted file mode 100644 index 03567c45ac..0000000000 --- a/dependencies/main/java/buildcraft/api/filler/FillerManager.java +++ /dev/null @@ -1,13 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.filler; - -public final class FillerManager { - - public static IFillerRegistry registry; - - /** Deactivate constructor */ - private FillerManager() {} -} diff --git a/dependencies/main/java/buildcraft/api/filler/IFillerPattern.java b/dependencies/main/java/buildcraft/api/filler/IFillerPattern.java deleted file mode 100644 index 7d89469f10..0000000000 --- a/dependencies/main/java/buildcraft/api/filler/IFillerPattern.java +++ /dev/null @@ -1,11 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.filler; - -import buildcraft.api.statements.IStatement; - -public interface IFillerPattern extends IStatement { - // Object getBlockOverlay(); -} diff --git a/dependencies/main/java/buildcraft/api/filler/IFillerRegistry.java b/dependencies/main/java/buildcraft/api/filler/IFillerRegistry.java deleted file mode 100644 index f9e588f62d..0000000000 --- a/dependencies/main/java/buildcraft/api/filler/IFillerRegistry.java +++ /dev/null @@ -1,19 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.filler; - -import java.util.Collection; - -public interface IFillerRegistry { - void addPattern(IFillerPattern pattern); - - IFillerPattern getPattern(String patternName); - - IFillerPattern getNextPattern(IFillerPattern currentPattern); - - IFillerPattern getPreviousPattern(IFillerPattern currentPattern); - - Collection getPatterns(); -} diff --git a/dependencies/main/java/buildcraft/api/fuels/BuildcraftFuelRegistry.java b/dependencies/main/java/buildcraft/api/fuels/BuildcraftFuelRegistry.java deleted file mode 100644 index 545ac3d3bf..0000000000 --- a/dependencies/main/java/buildcraft/api/fuels/BuildcraftFuelRegistry.java +++ /dev/null @@ -1,12 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.fuels; - -public final class BuildcraftFuelRegistry { - public static IFuelManager fuel; - public static ICoolantManager coolant; - - private BuildcraftFuelRegistry() {} -} diff --git a/dependencies/main/java/buildcraft/api/fuels/ICoolant.java b/dependencies/main/java/buildcraft/api/fuels/ICoolant.java deleted file mode 100644 index 5d038c8d5b..0000000000 --- a/dependencies/main/java/buildcraft/api/fuels/ICoolant.java +++ /dev/null @@ -1,13 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.fuels; - -import net.minecraftforge.fluids.Fluid; - -public interface ICoolant { - Fluid getFluid(); - - float getDegreesCoolingPerMB(float heat); -} diff --git a/dependencies/main/java/buildcraft/api/fuels/ICoolantManager.java b/dependencies/main/java/buildcraft/api/fuels/ICoolantManager.java deleted file mode 100644 index 849bf1acf2..0000000000 --- a/dependencies/main/java/buildcraft/api/fuels/ICoolantManager.java +++ /dev/null @@ -1,29 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.fuels; - -import java.util.Collection; - -import net.minecraftforge.fluids.Fluid; - -import buildcraft.api.core.StackKey; - -public interface ICoolantManager { - ICoolant addCoolant(ICoolant coolant); - - ICoolant addCoolant(Fluid fluid, float degreesCoolingPerMB); - - ISolidCoolant addSolidCoolant(ISolidCoolant solidCoolant); - - ISolidCoolant addSolidCoolant(StackKey solid, StackKey liquid, float multiplier); - - Collection getCoolants(); - - Collection getSolidCoolants(); - - ICoolant getCoolant(Fluid fluid); - - ISolidCoolant getSolidCoolant(StackKey solid); -} diff --git a/dependencies/main/java/buildcraft/api/fuels/IFuel.java b/dependencies/main/java/buildcraft/api/fuels/IFuel.java deleted file mode 100644 index a2590c6082..0000000000 --- a/dependencies/main/java/buildcraft/api/fuels/IFuel.java +++ /dev/null @@ -1,15 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.fuels; - -import net.minecraftforge.fluids.Fluid; - -public interface IFuel { - Fluid getFluid(); - - int getTotalBurningTime(); - - int getPowerPerCycle(); -} diff --git a/dependencies/main/java/buildcraft/api/fuels/IFuelManager.java b/dependencies/main/java/buildcraft/api/fuels/IFuelManager.java deleted file mode 100644 index 3678182703..0000000000 --- a/dependencies/main/java/buildcraft/api/fuels/IFuelManager.java +++ /dev/null @@ -1,27 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.fuels; - -import java.util.Collection; - -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; - -public interface IFuelManager { - IFuel addFuel(IFuel fuel); - - IFuel addFuel(Fluid fluid, int powerPerCycle, int totalBurningTime); - - IDirtyFuel addDirtyFuel(Fluid fuel, int powerPerCycle, int totalBurningTime, FluidStack residue); - - Collection getFuels(); - - IFuel getFuel(Fluid fluid); - - public interface IDirtyFuel extends IFuel { - /** @return The residue fluidstack, per bucket of original fuel. */ - FluidStack getResidue(); - } -} diff --git a/dependencies/main/java/buildcraft/api/fuels/ISolidCoolant.java b/dependencies/main/java/buildcraft/api/fuels/ISolidCoolant.java deleted file mode 100644 index ab41cc46d5..0000000000 --- a/dependencies/main/java/buildcraft/api/fuels/ISolidCoolant.java +++ /dev/null @@ -1,12 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.fuels; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -public interface ISolidCoolant { - FluidStack getFluidFromSolidCoolant(ItemStack stack); -} diff --git a/dependencies/main/java/buildcraft/api/gates/GateExpansionController.java b/dependencies/main/java/buildcraft/api/gates/GateExpansionController.java deleted file mode 100644 index 749de86f79..0000000000 --- a/dependencies/main/java/buildcraft/api/gates/GateExpansionController.java +++ /dev/null @@ -1,54 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.gates; - -import java.util.List; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; - -import buildcraft.api.statements.IActionInternal; -import buildcraft.api.statements.IStatement; -import buildcraft.api.statements.IStatementParameter; -import buildcraft.api.statements.ITriggerInternal; - -public abstract class GateExpansionController { - - public final IGateExpansion type; - public final TileEntity pipeTile; - - public GateExpansionController(IGateExpansion type, TileEntity pipeTile) { - this.pipeTile = pipeTile; - this.type = type; - } - - public IGateExpansion getType() { - return type; - } - - public boolean isActive() { - return false; - } - - public void tick(IGate gate) {} - - public void startResolution() {} - - public boolean resolveAction(IStatement action, int count) { - return false; - } - - public boolean isTriggerActive(IStatement trigger, IStatementParameter[] parameters) { - return false; - } - - public void addTriggers(List list) {} - - public void addActions(List list) {} - - public void writeToNBT(NBTTagCompound nbt) {} - - public void readFromNBT(NBTTagCompound nbt) {} -} diff --git a/dependencies/main/java/buildcraft/api/gates/GateExpansionModelKey.java b/dependencies/main/java/buildcraft/api/gates/GateExpansionModelKey.java deleted file mode 100644 index 85763f19d0..0000000000 --- a/dependencies/main/java/buildcraft/api/gates/GateExpansionModelKey.java +++ /dev/null @@ -1,36 +0,0 @@ -package buildcraft.api.gates; - -import java.util.Arrays; - -import net.minecraft.util.EnumWorldBlockLayer; - -public class GateExpansionModelKey> { - public final EnumWorldBlockLayer layer; - public final IExpansionBaker baker; - private final int hash; - - public GateExpansionModelKey(EnumWorldBlockLayer layer, IExpansionBaker baker) { - if (layer != EnumWorldBlockLayer.CUTOUT && layer != EnumWorldBlockLayer.TRANSLUCENT) { - throw new IllegalArgumentException("Unsuported layer! Was " + layer + ", wanted CUTOUT or TRANSLUCENT"); - } - if (baker == null) throw new NullPointerException("baker"); - this.layer = layer; - this.baker = baker; - hash = Arrays.hashCode(new int[] { layer.hashCode(), System.identityHashCode(baker) }); - } - - @Override - public int hashCode() { - return hash; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null) return false; - if (getClass() != obj.getClass()) return false; - GateExpansionModelKey other = (GateExpansionModelKey) obj; - if (baker != other.baker) return false; - return true; - } -} diff --git a/dependencies/main/java/buildcraft/api/gates/GateExpansions.java b/dependencies/main/java/buildcraft/api/gates/GateExpansions.java deleted file mode 100644 index b1e6003712..0000000000 --- a/dependencies/main/java/buildcraft/api/gates/GateExpansions.java +++ /dev/null @@ -1,61 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.gates; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import com.google.common.collect.HashBiMap; - -import net.minecraft.item.ItemStack; - -public final class GateExpansions { - private static final Map expansions = new HashMap(); - private static final ArrayList expansionIDs = new ArrayList(); - private static final Map recipes = HashBiMap.create(); - - private GateExpansions() {} - - public static void registerExpansion(IGateExpansion expansion) { - registerExpansion(expansion.getUniqueIdentifier(), expansion); - } - - public static void registerExpansion(String identifier, IGateExpansion expansion) { - expansions.put(identifier, expansion); - expansionIDs.add(expansion); - } - - public static void registerExpansion(IGateExpansion expansion, ItemStack addedRecipe) { - registerExpansion(expansion.getUniqueIdentifier(), expansion); - recipes.put(expansion, addedRecipe); - } - - public static IGateExpansion getExpansion(String identifier) { - return expansions.get(identifier); - } - - public static Set getExpansions() { - Set set = new HashSet(); - set.addAll(expansionIDs); - return set; - } - - public static Map getRecipesForPostInit() { - return recipes; - } - - // The code below is used by networking. - - public static IGateExpansion getExpansionByID(int id) { - return expansionIDs.get(id); - } - - public static int getExpansionID(IGateExpansion expansion) { - return expansionIDs.indexOf(expansion); - } -} diff --git a/dependencies/main/java/buildcraft/api/gates/IExpansionBaker.java b/dependencies/main/java/buildcraft/api/gates/IExpansionBaker.java deleted file mode 100644 index 846cfe598e..0000000000 --- a/dependencies/main/java/buildcraft/api/gates/IExpansionBaker.java +++ /dev/null @@ -1,13 +0,0 @@ -package buildcraft.api.gates; - -import com.google.common.collect.ImmutableList; - -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.renderer.vertex.VertexFormat; - -public interface IExpansionBaker> { - /** @return The vertex format used to generate the quads. */ - VertexFormat getVertexFormat(); - - ImmutableList bake(K key); -} diff --git a/dependencies/main/java/buildcraft/api/gates/IGate.java b/dependencies/main/java/buildcraft/api/gates/IGate.java deleted file mode 100644 index df23649372..0000000000 --- a/dependencies/main/java/buildcraft/api/gates/IGate.java +++ /dev/null @@ -1,30 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.gates; - -import java.util.List; - -import buildcraft.api.statements.IStatement; -import buildcraft.api.statements.IStatementParameter; -import buildcraft.api.statements.StatementSlot; -import buildcraft.api.statements.containers.ISidedStatementContainer; -import buildcraft.api.transport.IPipe; - -public interface IGate extends ISidedStatementContainer { - @Deprecated - void setPulsing(boolean pulse); - - IPipe getPipe(); - - List getTriggers(); - - List getActions(); - - List getActiveActions(); - - List getTriggerParameters(int index); - - List getActionParameters(int index); -} diff --git a/dependencies/main/java/buildcraft/api/gates/IGateExpansion.java b/dependencies/main/java/buildcraft/api/gates/IGateExpansion.java deleted file mode 100644 index 2dad213240..0000000000 --- a/dependencies/main/java/buildcraft/api/gates/IGateExpansion.java +++ /dev/null @@ -1,27 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.gates; - -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumWorldBlockLayer; - -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public interface IGateExpansion { - - String getUniqueIdentifier(); - - String getDisplayName(); - - GateExpansionController makeController(TileEntity pipeTile); - - @SideOnly(Side.CLIENT) - void textureStitch(TextureMap map); - - @SideOnly(Side.CLIENT) - GateExpansionModelKey getRenderModelKey(EnumWorldBlockLayer layer); -} diff --git a/dependencies/main/java/buildcraft/api/items/IBlueprintItem.java b/dependencies/main/java/buildcraft/api/items/IBlueprintItem.java deleted file mode 100644 index d67bc39fd0..0000000000 --- a/dependencies/main/java/buildcraft/api/items/IBlueprintItem.java +++ /dev/null @@ -1,9 +0,0 @@ -package buildcraft.api.items; - -import net.minecraft.item.ItemStack; - -import buildcraft.api.enums.EnumBlueprintType; - -public interface IBlueprintItem extends INamedItem { - EnumBlueprintType getType(ItemStack stack); -} diff --git a/dependencies/main/java/buildcraft/api/items/INamedItem.java b/dependencies/main/java/buildcraft/api/items/INamedItem.java deleted file mode 100644 index 4080dae2ff..0000000000 --- a/dependencies/main/java/buildcraft/api/items/INamedItem.java +++ /dev/null @@ -1,9 +0,0 @@ -package buildcraft.api.items; - -import net.minecraft.item.ItemStack; - -public interface INamedItem { - String getName(ItemStack stack); - - boolean setName(ItemStack stack, String name); -} diff --git a/dependencies/main/java/buildcraft/api/power/IEngine.java b/dependencies/main/java/buildcraft/api/power/IEngine.java deleted file mode 100644 index 18901747ea..0000000000 --- a/dependencies/main/java/buildcraft/api/power/IEngine.java +++ /dev/null @@ -1,26 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.power; - -import net.minecraft.util.EnumFacing; - -/** Engines should implement this interface if they want to support BuildCraft's behaviour of passing energy between - * engines without using receiveEnergy() (which has other issues). */ -public interface IEngine { - /** Returns true if the engine wants to receive power from another engine on this side. - * - * @param side - * @return */ - boolean canReceiveFromEngine(EnumFacing side); - - /** Receives energy from an engine. See - * {@link cofh.api.energy.IEnergyHandler#receiveEnergy(EnumFacing, int, boolean)} - * - * @param side The side the engine is receiving energy from. - * @param energy The amount of energy given to the engine. - * @param simulate True if the energy should not actually be added. - * @return The amount of energy used by the engine. */ - int receiveEnergyFromEngine(EnumFacing side, int energy, boolean simulate); -} diff --git a/dependencies/main/java/buildcraft/api/power/ILaserTarget.java b/dependencies/main/java/buildcraft/api/power/ILaserTarget.java deleted file mode 100644 index 0b39099354..0000000000 --- a/dependencies/main/java/buildcraft/api/power/ILaserTarget.java +++ /dev/null @@ -1,28 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.power; - -import net.minecraft.util.BlockPos; - -/** This interface should be defined by any Tile which wants to receive energy from BuildCraft lasers. - * - * The respective Block MUST implement ILaserTargetBlock! */ -public interface ILaserTarget { - - /** Returns true if the target currently needs power. For example, if the Advanced Crafting Table has work to do. - * - * @return true if needs power */ - boolean requiresLaserEnergy(); - - /** Transfers energy from the laser to the target. - * - * @param energy */ - void receiveLaserEnergy(int energy); - - /** Return true if the Tile Entity object is no longer a valid target. For example, if its been invalidated. - * - * @return true if no longer a valid target object */ - boolean isInvalidTarget(); -} diff --git a/dependencies/main/java/buildcraft/api/power/ILaserTargetBlock.java b/dependencies/main/java/buildcraft/api/power/ILaserTargetBlock.java deleted file mode 100644 index 27469605ca..0000000000 --- a/dependencies/main/java/buildcraft/api/power/ILaserTargetBlock.java +++ /dev/null @@ -1,12 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.power; - -/** This is a marker interface for laser targets. Implement it on your Block. - * - * It is used by BuildCraft Lasers for optimization purposes. */ -public interface ILaserTargetBlock { - -} diff --git a/dependencies/main/java/buildcraft/api/power/IRedstoneEngine.java b/dependencies/main/java/buildcraft/api/power/IRedstoneEngine.java deleted file mode 100644 index 3fc534d457..0000000000 --- a/dependencies/main/java/buildcraft/api/power/IRedstoneEngine.java +++ /dev/null @@ -1,7 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.power; - -public interface IRedstoneEngine {} diff --git a/dependencies/main/java/buildcraft/api/power/IRedstoneEngineReceiver.java b/dependencies/main/java/buildcraft/api/power/IRedstoneEngineReceiver.java deleted file mode 100644 index 213d06fe2e..0000000000 --- a/dependencies/main/java/buildcraft/api/power/IRedstoneEngineReceiver.java +++ /dev/null @@ -1,21 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.power; - -import net.minecraft.util.EnumFacing; - -import cofh.api.energy.IEnergyReceiver; - -/** Implement this on tiles that you wish to be able to receive Redstone Engine (low-power) energy. - * - * Please do not implement it on batteries, pipes or machines which can have their energy extracted from. That could - * lead to exploits and abuse. */ -public interface IRedstoneEngineReceiver extends IEnergyReceiver { - /** This function is queried on every attempt to receive energy from a redstone engine as well. - * - * @param side - * @return */ - boolean canConnectRedstoneEngine(EnumFacing side); -} diff --git a/dependencies/main/java/buildcraft/api/properties/BuildCraftExtendedProperty.java b/dependencies/main/java/buildcraft/api/properties/BuildCraftExtendedProperty.java deleted file mode 100644 index e0ba3a62d1..0000000000 --- a/dependencies/main/java/buildcraft/api/properties/BuildCraftExtendedProperty.java +++ /dev/null @@ -1,65 +0,0 @@ -package buildcraft.api.properties; - -import java.util.List; - -import com.google.common.base.Predicate; -import com.google.common.base.Predicates; - -import net.minecraftforge.common.property.IExtendedBlockState; -import net.minecraftforge.common.property.IUnlistedProperty; - -public class BuildCraftExtendedProperty> extends BuildCraftProperty implements IUnlistedProperty { - private final Predicate function; - - public BuildCraftExtendedProperty(String name, Class clazz, Predicate allowingFunction) { - super(name, clazz); - function = allowingFunction; - } - - public BuildCraftExtendedProperty(String name, Class clazz, List allowedValues) { - super(name, clazz, allowedValues); - function = null; - } - - public static BuildCraftExtendedProperty create(String name, final double min, final double max) { - return new BuildCraftExtendedProperty(name, Double.class, new Predicate() { - @Override - public boolean apply(Double input) { - return input >= min && input <= max; - } - }); - } - - /** This is useful if you want to use a particular class for this property, but don't care what the class contains - * (it will never contain an incorrect value) */ - public static > BuildCraftExtendedProperty createExtended(String name, Class clazz) { - return new BuildCraftExtendedProperty(name, clazz, Predicates. alwaysTrue()); - } - - @Override - public boolean isValid(T value) { - if (function == null) { - return values.contains(value); - } - return function.apply(value); - } - - @Override - public Class getType() { - return getValueClass(); - } - - @Override - public String valueToString(T value) { - return valueName(value); - } - - public T getUnlistedValue(IExtendedBlockState state) { - return state.getValue(asUnlistedProperty()); - } - - // Helper methods for arguments - public IUnlistedProperty asUnlistedProperty() { - return this; - } -} diff --git a/dependencies/main/java/buildcraft/api/properties/BuildCraftProperties.java b/dependencies/main/java/buildcraft/api/properties/BuildCraftProperties.java deleted file mode 100644 index 747dd470a8..0000000000 --- a/dependencies/main/java/buildcraft/api/properties/BuildCraftProperties.java +++ /dev/null @@ -1,83 +0,0 @@ -package buildcraft.api.properties; - -import java.util.Map; - -import com.google.common.collect.Maps; - -import net.minecraft.util.EnumFacing; - -import buildcraft.api.core.EnumColor; -import buildcraft.api.enums.*; - -public final class BuildCraftProperties { - public static final BuildCraftProperty BLOCK_FACING = BuildCraftProperty.create("facing", EnumFacing.Plane.HORIZONTAL.facings()); - public static final BuildCraftProperty BLOCK_FACING_6 = BuildCraftProperty.create("facing", EnumFacing.class); - - public static final BuildCraftProperty BLOCK_COLOR = BuildCraftProperty.create("color", EnumColor.class); - public static final BuildCraftProperty SPRING_TYPE = BuildCraftProperty.create("type", EnumSpring.class); - public static final BuildCraftProperty ENGINE_TYPE = BuildCraftProperty.create("type", EnumEngineType.class); - public static final BuildCraftProperty LASER_TABLE_TYPE = BuildCraftProperty.create("type", EnumLaserTableType.class); - public static final BuildCraftProperty MACHINE_STATE = BuildCraftProperty.create("state", EnumMachineState.class); - public static final BuildCraftProperty ENERGY_STAGE = BuildCraftProperty.create("stage", EnumEnergyStage.class); - public static final BuildCraftProperty BLUEPRINT_TYPE = BuildCraftProperty.create("blueprint_type", EnumBlueprintType.class); - public static final BuildCraftProperty DECORATED_BLOCK = BuildCraftProperty.create("decoration_type", - EnumDecoratedBlock.class); - - public static final BuildCraftProperty GENERIC_PIPE_DATA = BuildCraftProperty.create("pipe_data", 0, 15); - public static final BuildCraftProperty LED_POWER = BuildCraftProperty.create("led_power", 0, 3); - - public static final BuildCraftProperty JOINED_BELOW = BuildCraftProperty.create("joined_below", false); - public static final BuildCraftProperty MOVING = BuildCraftProperty.create("moving", false); - public static final BuildCraftProperty LED_DONE = BuildCraftProperty.create("led_done", false); - - public static final BuildCraftProperty CONNECTED_UP = BuildCraftProperty.create("connected_up", false); - public static final BuildCraftProperty CONNECTED_DOWN = BuildCraftProperty.create("connected_down", false); - public static final BuildCraftProperty CONNECTED_EAST = BuildCraftProperty.create("connected_east", false); - public static final BuildCraftProperty CONNECTED_WEST = BuildCraftProperty.create("connected_west", false); - public static final BuildCraftProperty CONNECTED_NORTH = BuildCraftProperty.create("connected_north", false); - public static final BuildCraftProperty CONNECTED_SOUTH = BuildCraftProperty.create("connected_south", false); - - public static final Map> CONNECTED_MAP; - - // Unlisted properties - // public static final PropertyDouble FLUID_HEIGHT_NE = new PropertyDouble("height_ne", 0, 1); - // public static final PropertyDouble FLUID_HEIGHT_NW = new PropertyDouble("height_nw", 0, 1); - // public static final PropertyDouble FLUID_HEIGHT_SE = new PropertyDouble("height_se", 0, 1); - // public static final PropertyDouble FLUID_HEIGHT_SW = new PropertyDouble("height_sw", 0, 1); - // public static final PropertyDouble FLUID_FLOW_DIRECTION = new PropertyDouble("direction", - // Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY); - public static final BuildCraftProperty FILLER_PATTERN = BuildCraftProperty.create("pattern", EnumFillerPattern.class); - - // Block state setting flags -these are used by World.markAndNotifyBlock and World.setBlockState. These flags can be - // added together to pass the additions - public static final int UPDATE_NONE = 0; - /** This updates the neighbouring blocks that the new block is set. It also updates the comparator output of this - * block. */ - public static final int UPDATE_NEIGHBOURS = 1; - /** This will mark the block for an update next tick, as well as send an update to the client (if this is a server - * world). */ - public static final int MARK_BLOCK_FOR_UPDATE = 2; - /** This will mark the block for an update, even if this is a client world. It is useless to use this if - * world.isRemote returns false. */ - public static final int UPDATE_EVEN_CLIENT = 4 + MARK_BLOCK_FOR_UPDATE; // 6 - - // Pre-added flags- pass these as-is to the World.markAndNotifyBlock and World.setBlockState methods. - /** This will do what both {@link #UPDATE_NEIGHBOURS} and {@link #MARK_BLOCK_FOR_UPDATE} do. */ - public static final int MARK_THIS_AND_NEIGHBOURS = UPDATE_NEIGHBOURS + MARK_BLOCK_FOR_UPDATE; - /** This will update everything about this block. */ - public static final int UPDATE_ALL = UPDATE_NEIGHBOURS + MARK_BLOCK_FOR_UPDATE + UPDATE_EVEN_CLIENT; - - static { - Map> map = Maps.newEnumMap(EnumFacing.class); - map.put(EnumFacing.DOWN, CONNECTED_DOWN); - map.put(EnumFacing.UP, CONNECTED_UP); - map.put(EnumFacing.EAST, CONNECTED_EAST); - map.put(EnumFacing.WEST, CONNECTED_WEST); - map.put(EnumFacing.NORTH, CONNECTED_NORTH); - map.put(EnumFacing.SOUTH, CONNECTED_SOUTH); - CONNECTED_MAP = Maps.immutableEnumMap(map); - } - - /** Deactivate constructor */ - private BuildCraftProperties() {} -} diff --git a/dependencies/main/java/buildcraft/api/properties/BuildCraftProperty.java b/dependencies/main/java/buildcraft/api/properties/BuildCraftProperty.java deleted file mode 100644 index 2a335f9e03..0000000000 --- a/dependencies/main/java/buildcraft/api/properties/BuildCraftProperty.java +++ /dev/null @@ -1,129 +0,0 @@ -package buildcraft.api.properties; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import net.minecraft.block.properties.PropertyHelper; -import net.minecraft.util.IStringSerializable; -import net.minecraft.util.MathHelper; - -/** This class exists primarily to allow for a property to be used as either a normal IProperty, or an - * IUnlistedProperty. It also exists to give IProperty's generic types. */ -public class BuildCraftProperty> extends PropertyHelper { - private final String name; - private final Class clazz; - protected final List values; - - public BuildCraftProperty(String name, Class clazz, T[] values) { - this(name, clazz, Arrays.asList(values)); - } - - public BuildCraftProperty(String name, Class clazz, List values) { - super(name, clazz); - this.name = name; - this.clazz = clazz; - this.values = values; - } - - /** Used for BuildCraftInifiniteProperty */ - protected BuildCraftProperty(String name, Class clazz) { - super(name, clazz); - this.name = name; - this.clazz = clazz; - this.values = Collections.emptyList(); - } - - public static > BuildCraftProperty create(String name, Class enumeration) { - List values = Arrays.asList(enumeration.getEnumConstants()); - return new BuildCraftProperty(name, enumeration, values); - } - - public static > BuildCraftProperty create(String name, E... values) { - Class clazz = values[0].getDeclaringClass(); - List list = Arrays.asList(values); - return new BuildCraftProperty(name, clazz, list); - } - - public static BuildCraftProperty create(String name, boolean first) { - return new BuildCraftProperty(name, Boolean.class, new Boolean[] { first, !first }); - } - - /** first and last are both inclusive values (use 0, 4 to create an array of [0, 1, 2, 3, 4]) */ - public static BuildCraftProperty create(String name, int first, int last) { - return create(name, first, last, 1); - } - - /** first and last are both inclusive values (use 0, 12, 3 to create an array of [0, 3, 6, 9, 12]) */ - public static BuildCraftProperty create(String name, int first, int last, int difference) { - int actualDiff = Math.abs(difference); - int number = MathHelper.floor_float(Math.abs(first - last) / (float) actualDiff + 1); - Integer[] array = new Integer[number]; - int addedDiff = actualDiff * (first > last ? -1 : 1); - int current = first; - for (int i = 0; i < array.length; i++) { - array[i] = current; - current += addedDiff; - } - return new BuildCraftProperty(name, Integer.class, array); - } - - public static BuildCraftProperty create(String name, double first, double last) { - return create(name, first, last, 1); - } - - public static BuildCraftProperty create(String name, double first, double last, double difference) { - double actualDiff = Math.abs(difference); - Double[] array = new Double[(int) (Math.abs(first - last) / actualDiff)]; - double addedDiff = actualDiff * (first > last ? -1 : 1); - for (int i = 0; i <= array.length; i++) { - array[i] = first + (first - last) / addedDiff * i; - } - return new BuildCraftProperty(name, Double.class, array); - } - - @Override - public String getName() { - return name; - } - - @Override - public List getAllowedValues() { - return values; - } - - @Override - public Class getValueClass() { - return clazz; - } - - @Override - public String getName(@SuppressWarnings("rawtypes") Comparable value) { - return valueName(value); - } - - protected String valueName(Object value) { - if (value == null) { - return "null"; - } else if (value instanceof IStringSerializable) { - return ((IStringSerializable) value).getName(); - } else if (value instanceof Enum) { - return ((Enum) value).name(); - } else { - return value.toString(); - } - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("BuildCraftProperty [name="); - builder.append(name); - builder.append(", clazz="); - builder.append(clazz); - builder.append(", values="); - builder.append(values); - builder.append("]"); - return builder.toString(); - } -} diff --git a/dependencies/main/java/buildcraft/api/recipes/BuildcraftRecipeRegistry.java b/dependencies/main/java/buildcraft/api/recipes/BuildcraftRecipeRegistry.java deleted file mode 100644 index 72904b5cb7..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/BuildcraftRecipeRegistry.java +++ /dev/null @@ -1,16 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.recipes; - -public final class BuildcraftRecipeRegistry { - - public static IAssemblyRecipeManager assemblyTable; - public static IIntegrationRecipeManager integrationTable; - public static IRefineryRecipeManager refinery; - public static IProgrammingRecipeManager programmingTable; - public static IComplexRefineryRecipeManager complexRefinery; - - private BuildcraftRecipeRegistry() {} -} diff --git a/dependencies/main/java/buildcraft/api/recipes/CraftingResult.java b/dependencies/main/java/buildcraft/api/recipes/CraftingResult.java deleted file mode 100644 index 5142844230..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/CraftingResult.java +++ /dev/null @@ -1,20 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.recipes; - -import java.util.ArrayList; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -public class CraftingResult { - - public T crafted = null; - public ArrayList usedItems = new ArrayList(); - public ArrayList usedFluids = new ArrayList(); - public int energyCost = 0; - public long craftingTime = 0; - public IFlexibleRecipe recipe; -} diff --git a/dependencies/main/java/buildcraft/api/recipes/IAssemblyRecipeManager.java b/dependencies/main/java/buildcraft/api/recipes/IAssemblyRecipeManager.java deleted file mode 100644 index b9f29ca185..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/IAssemblyRecipeManager.java +++ /dev/null @@ -1,27 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.recipes; - -import java.util.Collection; - -import net.minecraft.item.ItemStack; - -public interface IAssemblyRecipeManager { - - /** Add an Assembly Table recipe. - * - * @param input Object... containing either an ItemStack, or a paired string and integer(ex: "dyeBlue", 1) - * @param energyCost RF cost to produce - * @param output resulting ItemStack */ - void addRecipe(String id, int energyCost, ItemStack output, Object... input); - - void addRecipe(IFlexibleRecipe recipe); - - void removeRecipe(String id); - - void removeRecipe(IFlexibleRecipe recipe); - - Collection> getRecipes(); -} diff --git a/dependencies/main/java/buildcraft/api/recipes/IComplexRefineryRecipeManager.java b/dependencies/main/java/buildcraft/api/recipes/IComplexRefineryRecipeManager.java deleted file mode 100644 index 5623b5eaaa..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/IComplexRefineryRecipeManager.java +++ /dev/null @@ -1,66 +0,0 @@ -package buildcraft.api.recipes; - -import java.util.Set; - -import com.google.common.base.Predicate; - -import net.minecraftforge.fluids.FluidStack; - -public interface IComplexRefineryRecipeManager { - IHeatableRecipe createHeatingRecipe(FluidStack in, FluidStack out, int heatFrom, int heatTo, int ticks); - - IHeatableRecipe addHeatableRecipe(FluidStack in, FluidStack out, int heatFrom, int heatTo, int ticks, boolean replaceExisting); - - ICoolableRecipe createCoolableRecipe(FluidStack in, FluidStack out, int heatFrom, int heatTo, int ticks); - - ICoolableRecipe addCoolableRecipe(FluidStack in, FluidStack out, int heatFrom, int heatTo, int ticks, boolean replaceExisting); - - IDistilationRecipe createDistilationRecipe(FluidStack in, FluidStack outGas, FluidStack outLiquid, int ticks); - - IDistilationRecipe addDistilationRecipe(FluidStack in, FluidStack outGas, FluidStack outLiquid, int ticks, boolean replaceExisting); - - IComplexRefineryRegistry getHeatableRegistry(); - - IComplexRefineryRegistry getCoolableRegistry(); - - IComplexRefineryRegistry getDistilationRegistry(); - - public interface IComplexRefineryRegistry { - /** @return an unmodifiable set containing all of the distilation recipies that satisfy the given predicate. All - * of the recipe objects are guarenteed to never be null. */ - Set getRecipes(Predicate toReturn); - - /** @return an unmodifiable set containing all of the distilation recipies. */ - Set getAllRecipes(); - - R getRecipeForInput(FluidStack fluid); - - Set removeRecipes(Predicate toRemove); - - R addRecipe(R recipe, boolean replaceExisting); - } - - public interface IComplexRefineryRecipe { - int ticks(); - - FluidStack in(); - } - - public interface IHeatExchangerRecipe extends IComplexRefineryRecipe { - FluidStack out(); - - int heatFrom(); - - int heatTo(); - } - - public interface IHeatableRecipe extends IHeatExchangerRecipe {} - - public interface ICoolableRecipe extends IHeatExchangerRecipe {} - - public interface IDistilationRecipe extends IComplexRefineryRecipe { - FluidStack outGas(); - - FluidStack outLiquid(); - } -} diff --git a/dependencies/main/java/buildcraft/api/recipes/IFlexibleCrafter.java b/dependencies/main/java/buildcraft/api/recipes/IFlexibleCrafter.java deleted file mode 100644 index a69b0424f6..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/IFlexibleCrafter.java +++ /dev/null @@ -1,24 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.recipes; - -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -public interface IFlexibleCrafter { - - int getCraftingItemStackSize(); - - ItemStack getCraftingItemStack(int slotid); - - ItemStack decrCraftingItemStack(int slotid, int val); - - FluidStack getCraftingFluidStack(int tankid); - - FluidStack decrCraftingFluidStack(int tankid, int val); - - int getCraftingFluidStackSize(); - -} diff --git a/dependencies/main/java/buildcraft/api/recipes/IFlexibleRecipe.java b/dependencies/main/java/buildcraft/api/recipes/IFlexibleRecipe.java deleted file mode 100644 index 53565499d6..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/IFlexibleRecipe.java +++ /dev/null @@ -1,18 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.recipes; - -import net.minecraft.item.ItemStack; - -public interface IFlexibleRecipe { - - boolean canBeCrafted(IFlexibleCrafter crafter); - - CraftingResult craft(IFlexibleCrafter crafter, boolean preview); - - CraftingResult canCraft(ItemStack expectedOutput); - - String getId(); -} diff --git a/dependencies/main/java/buildcraft/api/recipes/IFlexibleRecipeViewable.java b/dependencies/main/java/buildcraft/api/recipes/IFlexibleRecipeViewable.java deleted file mode 100644 index d19170fa08..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/IFlexibleRecipeViewable.java +++ /dev/null @@ -1,25 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.recipes; - -import java.util.Collection; - -/** This class is intended for mods such as Not Enough Items in order for them to be able to look inside a recipe. - * - * It is intentionally left as a separate interface, so that it remains possible to register a "dynamic" flexible recipe - * which does not have static inputs and outputs. - * - * @author asie */ -public interface IFlexibleRecipeViewable { - Object getOutput(); - - /** With BuildCraft's implementation (as of 6.1.3), this might contain either an ItemStack, a List<ItemStack> - * or a FluidStack. */ - Collection getInputs(); - - long getCraftingTime(); - - int getEnergyCost(); -} diff --git a/dependencies/main/java/buildcraft/api/recipes/IIntegrationRecipe.java b/dependencies/main/java/buildcraft/api/recipes/IIntegrationRecipe.java deleted file mode 100644 index 8aeb25ade2..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/IIntegrationRecipe.java +++ /dev/null @@ -1,59 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.recipes; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public interface IIntegrationRecipe { - /** Get the energy cost (in RF) of the recipe. - * - * @return The energy cost of the recipe. */ - int getEnergyCost(); - - /** Get a list of example inputs. This is used for recipe preview. - * - * @return A list of example inputs. */ - List getExampleInput(); - - /** Get a list of example expansions. This is used for recipe preview. If the amount of lists of expansions is - * smaller than the maximum expansion count, the lists will be repeated. - * - * @return A list of every slot's list of example expansions. */ - List> getExampleExpansions(); - - /** Get a list of example outputs. This is used for recipe preview. - * - * @return A list of example outputs. */ - List getExampleOutput(); - - /** Check if an input is valid. - * - * @param input The input. - * @return Whether the input is valid. */ - boolean isValidInput(ItemStack input); - - /** Check if an expansion is valid. - * - * @param input The input currently in. - * @param expansion The expansion. - * @return Whether the expansion can be fitted to a given input. */ - boolean isValidExpansion(ItemStack input, ItemStack expansion); - - /** Craft the recipe. Keep in mind that you need to decrease the amount of expansions yourself - the amount of - * inputs is decreased for you. - * - * @param input The input. - * @param expansions All inserted expansions. - * @param preview If true, do not decrease the amount of expansions. - * @return The output stack. */ - ItemStack craft(ItemStack input, List expansions, boolean preview); - - /** Returns the maximum count of expansions this recipe can have. - * - * @return -1 for no limit, a different number otherwise */ - int getMaximumExpansionCount(ItemStack input); -} diff --git a/dependencies/main/java/buildcraft/api/recipes/IIntegrationRecipeManager.java b/dependencies/main/java/buildcraft/api/recipes/IIntegrationRecipeManager.java deleted file mode 100644 index 7bf51e4565..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/IIntegrationRecipeManager.java +++ /dev/null @@ -1,13 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.recipes; - -import java.util.List; - -public interface IIntegrationRecipeManager { - void addRecipe(IIntegrationRecipe recipe); - - List getRecipes(); -} diff --git a/dependencies/main/java/buildcraft/api/recipes/IProgrammingRecipe.java b/dependencies/main/java/buildcraft/api/recipes/IProgrammingRecipe.java deleted file mode 100644 index 3141196fbd..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/IProgrammingRecipe.java +++ /dev/null @@ -1,33 +0,0 @@ -package buildcraft.api.recipes; - -import java.util.List; - -import net.minecraft.item.ItemStack; - -public interface IProgrammingRecipe { - String getId(); - - /** Get a list (size at least width*height) of ItemStacks representing options. - * - * @param width The width of the Programming Table panel. - * @param height The height of the Programming Table panel. - * @return */ - List getOptions(int width, int height); - - /** Get the energy cost of a given option ItemStack. - * - * @param option - * @return */ - int getEnergyCost(ItemStack option); - - /** @param input The input stack. - * @return Whether this recipe applies to the given input stack. */ - boolean canCraft(ItemStack input); - - /** Craft the input ItemStack with the given option into an output ItemStack. - * - * @param input - * @param option - * @return The output ItemStack. */ - ItemStack craft(ItemStack input, ItemStack option); -} diff --git a/dependencies/main/java/buildcraft/api/recipes/IProgrammingRecipeManager.java b/dependencies/main/java/buildcraft/api/recipes/IProgrammingRecipeManager.java deleted file mode 100644 index 1ea444631a..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/IProgrammingRecipeManager.java +++ /dev/null @@ -1,19 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.recipes; - -import java.util.Collection; - -public interface IProgrammingRecipeManager { - void addRecipe(IProgrammingRecipe recipe); - - void removeRecipe(String id); - - void removeRecipe(IProgrammingRecipe recipe); - - IProgrammingRecipe getRecipe(String id); - - Collection getRecipes(); -} diff --git a/dependencies/main/java/buildcraft/api/recipes/IRecipeManager.java b/dependencies/main/java/buildcraft/api/recipes/IRecipeManager.java deleted file mode 100644 index fa767734a9..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/IRecipeManager.java +++ /dev/null @@ -1,29 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.recipes; - -import java.util.Collection; - -public interface IRecipeManager { - - /** Add a recipe. - * - * @param input Object... containing either an ItemStack, or a paired string and integer(ex: "dyeBlue", 1) - * @param energyCost RF cost to produce - * @param output resulting ItemStack */ - void addRecipe(String id, int energyCost, T output, Object... input); - - void addRecipe(String id, int energyCost, int craftingDelay, T output, Object... input); - - void addRecipe(IFlexibleRecipe recipe); - - void removeRecipe(String id); - - void removeRecipe(IFlexibleRecipe recipe); - - Collection> getRecipes(); - - IFlexibleRecipe getRecipe(String id); -} diff --git a/dependencies/main/java/buildcraft/api/recipes/IRefineryRecipeManager.java b/dependencies/main/java/buildcraft/api/recipes/IRefineryRecipeManager.java deleted file mode 100644 index b310fe2360..0000000000 --- a/dependencies/main/java/buildcraft/api/recipes/IRefineryRecipeManager.java +++ /dev/null @@ -1,25 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.recipes; - -import java.util.Collection; - -import net.minecraftforge.fluids.FluidStack; - -public interface IRefineryRecipeManager { - - void addRecipe(String id, FluidStack ingredient, FluidStack result, int energy, int delay); - - void addRecipe(String id, FluidStack ingredient1, FluidStack ingredient2, FluidStack result, int energy, int delay); - - void removeRecipe(String id); - - void removeRecipe(IFlexibleRecipe recipe); - - Collection> getRecipes(); - - IFlexibleRecipe getRecipe(String currentRecipeId); - -} diff --git a/dependencies/main/java/buildcraft/api/statements/ActionState.java b/dependencies/main/java/buildcraft/api/statements/ActionState.java deleted file mode 100644 index 15f547c072..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/ActionState.java +++ /dev/null @@ -1,9 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -public class ActionState { - -} diff --git a/dependencies/main/java/buildcraft/api/statements/IActionExternal.java b/dependencies/main/java/buildcraft/api/statements/IActionExternal.java deleted file mode 100644 index 21ffc92c4d..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/IActionExternal.java +++ /dev/null @@ -1,12 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; - -public interface IActionExternal extends IStatement { - void actionActivate(TileEntity target, EnumFacing side, IStatementContainer source, IStatementParameter[] parameters); -} diff --git a/dependencies/main/java/buildcraft/api/statements/IActionInternal.java b/dependencies/main/java/buildcraft/api/statements/IActionInternal.java deleted file mode 100644 index 621c317e81..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/IActionInternal.java +++ /dev/null @@ -1,15 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -public interface IActionInternal extends IStatement { - - void actionActivate(IStatementContainer source, IStatementParameter[] parameters); - - public interface IActionInternalSingle extends IActionInternal { - /** @return True if this action should only be fired for the first tick of it being active. */ - boolean singleActionTick(); - } -} diff --git a/dependencies/main/java/buildcraft/api/statements/IActionProvider.java b/dependencies/main/java/buildcraft/api/statements/IActionProvider.java deleted file mode 100644 index 63625b05a0..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/IActionProvider.java +++ /dev/null @@ -1,19 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -import java.util.Collection; - -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; - -public interface IActionProvider { - - /** Returns the list of actions that are available from the statement container holding the gate. */ - Collection getInternalActions(IStatementContainer container); - - /** Returns the list of actions available to a gate next to the given block. */ - Collection getExternalActions(EnumFacing side, TileEntity tile); -} diff --git a/dependencies/main/java/buildcraft/api/statements/IActionReceptor.java b/dependencies/main/java/buildcraft/api/statements/IActionReceptor.java deleted file mode 100644 index 34155b86ab..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/IActionReceptor.java +++ /dev/null @@ -1,9 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -public interface IActionReceptor { - void actionActivated(IStatement statement, IStatementParameter[] parameters); -} diff --git a/dependencies/main/java/buildcraft/api/statements/IOverrideDefaultStatements.java b/dependencies/main/java/buildcraft/api/statements/IOverrideDefaultStatements.java deleted file mode 100644 index cb2dc78e19..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/IOverrideDefaultStatements.java +++ /dev/null @@ -1,13 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -import java.util.List; - -public interface IOverrideDefaultStatements { - List overrideTriggers(); - - List overrideActions(); -} diff --git a/dependencies/main/java/buildcraft/api/statements/IStatement.java b/dependencies/main/java/buildcraft/api/statements/IStatement.java deleted file mode 100644 index dc02543322..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/IStatement.java +++ /dev/null @@ -1,36 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public interface IStatement { - /** Every statement needs a unique tag, it should be in the format of "<modid>:<name>. - * - * @return the unique id */ - String getUniqueTag(); - - /** Return the maximum number of parameter this statement can have, 0 if none. */ - int maxParameters(); - - /** Return the minimum number of parameter this statement can have, 0 if none. */ - int minParameters(); - - /** Return the statement description in the UI */ - String getDescription(); - - /** Create parameters for the statement. */ - IStatementParameter createParameter(int index); - - /** This returns the statement after a left rotation. Used in particular in blueprints orientation. */ - IStatement rotateLeft(); - - /** This should return the icon for this statement, suitable for rending directly into a GUI. This should refer to a - * texture on the map block texture map. */ - @SideOnly(Side.CLIENT) - TextureAtlasSprite getGuiSprite(); -} diff --git a/dependencies/main/java/buildcraft/api/statements/IStatementContainer.java b/dependencies/main/java/buildcraft/api/statements/IStatementContainer.java deleted file mode 100644 index f4a73465fa..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/IStatementContainer.java +++ /dev/null @@ -1,12 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -import net.minecraft.tileentity.TileEntity; - -/** This is implemented by objects containing Statements, such as Gates and TileEntities. */ -public interface IStatementContainer { - TileEntity getTile(); -} diff --git a/dependencies/main/java/buildcraft/api/statements/IStatementParameter.java b/dependencies/main/java/buildcraft/api/statements/IStatementParameter.java deleted file mode 100644 index 7ef29c793d..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/IStatementParameter.java +++ /dev/null @@ -1,36 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public interface IStatementParameter { - - /** Every parameter needs a unique tag, it should be in the format of "<modid>:<name>". - * - * @return the unique id */ - String getUniqueTag(); - - @SideOnly(Side.CLIENT) - TextureAtlasSprite getIcon(); - - ItemStack getItemStack(); - - /** Return the parameter description in the UI */ - String getDescription(); - - void onClick(IStatementContainer source, IStatement stmt, ItemStack stack, StatementMouseClick mouse); - - void readFromNBT(NBTTagCompound compound); - - void writeToNBT(NBTTagCompound compound); - - /** This returns the parameter after a left rotation. Used in particular in blueprints orientation. */ - IStatementParameter rotateLeft(); -} diff --git a/dependencies/main/java/buildcraft/api/statements/ITriggerExternal.java b/dependencies/main/java/buildcraft/api/statements/ITriggerExternal.java deleted file mode 100644 index 3db589cbcf..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/ITriggerExternal.java +++ /dev/null @@ -1,14 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; - -public interface ITriggerExternal extends IStatement { - - boolean isTriggerActive(TileEntity target, EnumFacing side, IStatementContainer source, IStatementParameter[] parameters); - -} diff --git a/dependencies/main/java/buildcraft/api/statements/ITriggerExternalOverride.java b/dependencies/main/java/buildcraft/api/statements/ITriggerExternalOverride.java deleted file mode 100644 index b8628deec5..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/ITriggerExternalOverride.java +++ /dev/null @@ -1,16 +0,0 @@ -package buildcraft.api.statements; - -import net.minecraft.util.EnumFacing; - -/** This interface can be used by tiles to override external trigger behaviour. - * - * Please use wisely. */ -public interface ITriggerExternalOverride { - public enum Result { - TRUE, - FALSE, - IGNORE - } - - Result override(EnumFacing side, IStatementContainer source, IStatementParameter[] parameters); -} diff --git a/dependencies/main/java/buildcraft/api/statements/ITriggerInternal.java b/dependencies/main/java/buildcraft/api/statements/ITriggerInternal.java deleted file mode 100644 index 610a5728b6..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/ITriggerInternal.java +++ /dev/null @@ -1,11 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -public interface ITriggerInternal extends IStatement { - - boolean isTriggerActive(IStatementContainer source, IStatementParameter[] parameters); - -} diff --git a/dependencies/main/java/buildcraft/api/statements/ITriggerProvider.java b/dependencies/main/java/buildcraft/api/statements/ITriggerProvider.java deleted file mode 100644 index d6ffbd42f2..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/ITriggerProvider.java +++ /dev/null @@ -1,20 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -import java.util.Collection; - -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; - -public interface ITriggerProvider { - - /** Returns the list of triggers that are available from the object holding the gate. */ - Collection getInternalTriggers(IStatementContainer container); - - /** Returns the list of triggers available to a gate next to the given block. */ - Collection getExternalTriggers(EnumFacing side, TileEntity tile); - -} diff --git a/dependencies/main/java/buildcraft/api/statements/StatementManager.java b/dependencies/main/java/buildcraft/api/statements/StatementManager.java deleted file mode 100644 index 166541ac10..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/StatementManager.java +++ /dev/null @@ -1,181 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -import java.util.Collection; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; - -import buildcraft.api.core.BCLog; - -public final class StatementManager { - - public static Map statements = new HashMap(); - public static Map> parameters = new HashMap>(); - private static List triggerProviders = new LinkedList(); - private static List actionProviders = new LinkedList(); - - /** Deactivate constructor */ - private StatementManager() {} - - public static void registerTriggerProvider(ITriggerProvider provider) { - if (provider != null && !triggerProviders.contains(provider)) { - triggerProviders.add(provider); - } - } - - public static void registerActionProvider(IActionProvider provider) { - if (provider != null && !actionProviders.contains(provider)) { - actionProviders.add(provider); - } - } - - public static void registerStatement(IStatement statement) { - statements.put(statement.getUniqueTag(), statement); - } - - public static void registerParameterClass(Class param) { - parameters.put(createParameter(param).getUniqueTag(), param); - } - - @Deprecated - public static void registerParameterClass(String name, Class param) { - parameters.put(name, param); - } - - public static List getExternalTriggers(EnumFacing side, TileEntity entity) { - List result; - - if (entity instanceof IOverrideDefaultStatements) { - result = ((IOverrideDefaultStatements) entity).overrideTriggers(); - if (result != null) { - return result; - } - } - - result = new LinkedList(); - - for (ITriggerProvider provider : triggerProviders) { - Collection toAdd = provider.getExternalTriggers(side, entity); - - if (toAdd != null) { - for (ITriggerExternal t : toAdd) { - if (!result.contains(t)) { - result.add(t); - } - } - } - } - - return result; - } - - public static List getExternalActions(EnumFacing side, TileEntity entity) { - List result = new LinkedList(); - - if (entity instanceof IOverrideDefaultStatements) { - result = ((IOverrideDefaultStatements) entity).overrideActions(); - if (result != null) { - return result; - } - } - - result = new LinkedList(); - - for (IActionProvider provider : actionProviders) { - Collection toAdd = provider.getExternalActions(side, entity); - - if (toAdd != null) { - for (IActionExternal t : toAdd) { - if (!result.contains(t)) { - result.add(t); - } - } - } - } - - return result; - } - - public static List getInternalTriggers(IStatementContainer container) { - List result = new LinkedList(); - - for (ITriggerProvider provider : triggerProviders) { - Collection toAdd = provider.getInternalTriggers(container); - - if (toAdd != null) { - for (ITriggerInternal t : toAdd) { - if (!result.contains(t)) { - result.add(t); - } - } - } - } - - return result; - } - - public static List getInternalActions(IStatementContainer container) { - List result = new LinkedList(); - - for (IActionProvider provider : actionProviders) { - Collection toAdd = provider.getInternalActions(container); - - if (toAdd != null) { - for (IActionInternal t : toAdd) { - if (!result.contains(t)) { - result.add(t); - } - } - } - } - - return result; - } - - public static IStatementParameter createParameter(String kind) { - return createParameter(parameters.get(kind)); - } - - private static IStatementParameter createParameter(Class param) { - if (param == null) { - return null; - } - - try { - return param.newInstance(); - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (Error error) { - BCLog.logErrorAPI(error, IStatementParameter.class); - throw error; - } - - return null; - } - - // /** - // * Generally, this function should be called by every mod implementing - // * the Statements API ***as a container*** (that is, adding its own gates) - // * on the client side from a given Item of choice. - // */ - // @SideOnly(Side.CLIENT) - // public static void registerIcons(TextureAtlasSpriteRegister register) { - // for (IStatement statement : statements.values()) { - // statement.registerIcons(register); - // } - // - // for (Class parameter : parameters.values()) { - // createParameter(parameter).registerIcons(register); - // } - // } -} diff --git a/dependencies/main/java/buildcraft/api/statements/StatementMouseClick.java b/dependencies/main/java/buildcraft/api/statements/StatementMouseClick.java deleted file mode 100644 index c39ed336f4..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/StatementMouseClick.java +++ /dev/null @@ -1,23 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -public final class StatementMouseClick { - private int button; - private boolean shift; - - public StatementMouseClick(int button, boolean shift) { - this.button = button; - this.shift = shift; - } - - public boolean isShift() { - return shift; - } - - public int getButton() { - return button; - } -} diff --git a/dependencies/main/java/buildcraft/api/statements/StatementParameterItemStack.java b/dependencies/main/java/buildcraft/api/statements/StatementParameterItemStack.java deleted file mode 100644 index 3ed0ec5dbd..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/StatementParameterItemStack.java +++ /dev/null @@ -1,90 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.statements; - -import java.util.Objects; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -public class StatementParameterItemStack implements IStatementParameter { - - protected ItemStack stack; - - @Override - public TextureAtlasSprite getIcon() { - return null; - } - - @Override - public ItemStack getItemStack() { - return stack; - } - - @Override - public void onClick(IStatementContainer source, IStatement stmt, ItemStack stack, StatementMouseClick mouse) { - if (stack != null) { - this.stack = stack.copy(); - this.stack.stackSize = 1; - } else { - this.stack = null; - } - } - - @Override - public void writeToNBT(NBTTagCompound compound) { - if (stack != null) { - NBTTagCompound tagCompound = new NBTTagCompound(); - stack.writeToNBT(tagCompound); - compound.setTag("stack", tagCompound); - } - } - - @Override - public void readFromNBT(NBTTagCompound compound) { - stack = ItemStack.loadItemStackFromNBT(compound.getCompoundTag("stack")); - } - - @Override - public boolean equals(Object object) { - if (object instanceof StatementParameterItemStack) { - StatementParameterItemStack param = (StatementParameterItemStack) object; - - return ItemStack.areItemStacksEqual(stack, param.stack) && ItemStack.areItemStackTagsEqual(stack, param.stack); - } else { - return false; - } - } - - @Override - public int hashCode() { - return Objects.hashCode(stack); - } - - @Override - public String getDescription() { - if (stack != null) { - return stack.getDisplayName(); - } else { - return ""; - } - } - - @Override - public String getUniqueTag() { - return "buildcraft:stack"; - } - - // @Override - // public void registerIcons(TextureAtlasSpriteRegister iconRegister) { - // - // } - - @Override - public IStatementParameter rotateLeft() { - return this; - } -} diff --git a/dependencies/main/java/buildcraft/api/statements/StatementSlot.java b/dependencies/main/java/buildcraft/api/statements/StatementSlot.java deleted file mode 100644 index 27c0071bbf..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/StatementSlot.java +++ /dev/null @@ -1,42 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * BuildCraft is distributed under the terms of the Minecraft Mod Public License 1.0, or MMPL. Please check the contents - * of the license located in http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.api.statements; - -import java.util.Arrays; -import java.util.Objects; - -public class StatementSlot { - public IStatement statement; - public IStatementParameter[] parameters; - - @Override - public boolean equals(Object o) { - if (!(o instanceof StatementSlot)) { - return false; - } - StatementSlot s = (StatementSlot) o; - if (s.statement != statement || parameters.length != s.parameters.length) { - return false; - } - for (int i = 0; i < parameters.length; i++) { - IStatementParameter p1 = parameters[i]; - IStatementParameter p2 = s.parameters[i]; - if (p1 == null) { - if (p2 != null) return false; - continue; - } - if (p2 == null) return false; - if (!(p1.equals(p2))) { - return false; - } - } - return true; - } - - @Override - public int hashCode() { - return Objects.hash(statement, Arrays.deepHashCode(parameters)); - } -} diff --git a/dependencies/main/java/buildcraft/api/statements/containers/IRedstoneStatementContainer.java b/dependencies/main/java/buildcraft/api/statements/containers/IRedstoneStatementContainer.java deleted file mode 100644 index 5b34bfd948..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/containers/IRedstoneStatementContainer.java +++ /dev/null @@ -1,17 +0,0 @@ -package buildcraft.api.statements.containers; - -import net.minecraft.util.EnumFacing; - -public interface IRedstoneStatementContainer { - /** Get the redstone input from a given side. - * - * @param side The side - use "UNKNOWN" for maximum input. - * @return The redstone input, from 0 to 15. */ - int getRedstoneInput(EnumFacing side); - - /** Set the redstone input for a given side. - * - * @param side The side - use "UNKNOWN" for all sides. - * @return Whether the set was successful. */ - boolean setRedstoneOutput(EnumFacing side, int value); -} diff --git a/dependencies/main/java/buildcraft/api/statements/containers/ISidedStatementContainer.java b/dependencies/main/java/buildcraft/api/statements/containers/ISidedStatementContainer.java deleted file mode 100644 index b65ace45ae..0000000000 --- a/dependencies/main/java/buildcraft/api/statements/containers/ISidedStatementContainer.java +++ /dev/null @@ -1,10 +0,0 @@ -package buildcraft.api.statements.containers; - -import net.minecraft.util.EnumFacing; - -import buildcraft.api.statements.IStatementContainer; - -/** Created by asie on 3/14/15. */ -public interface ISidedStatementContainer extends IStatementContainer { - EnumFacing getSide(); -} diff --git a/dependencies/main/java/buildcraft/api/tools/IToolWrench.java b/dependencies/main/java/buildcraft/api/tools/IToolWrench.java deleted file mode 100644 index 0138fdf91d..0000000000 --- a/dependencies/main/java/buildcraft/api/tools/IToolWrench.java +++ /dev/null @@ -1,33 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.tools; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.BlockPos; - -/*** Implement this interface on subclasses of Item to have that item work as a wrench for buildcraft */ -public interface IToolWrench { - - /*** Called to ensure that the wrench can be used. To get the ItemStack that is used, check - * player.inventory.getCurrentItem() - * - * @param player - The player doing the wrenching - * @param pos - The coordinates for the block being wrenched - * - * @return true if wrenching is allowed, false if not */ - boolean canWrench(EntityPlayer player, BlockPos pos); - - /*** Callback after the wrench has been used. This can be used to decrease durability or for other purposes. To get - * the ItemStack that was used, check player.inventory.getCurrentItem() - * - * @param player - The player doing the wrenching - * @param pos - The position of the block being wrenched */ - void wrenchUsed(EntityPlayer player, BlockPos pos); - - boolean canWrench(EntityPlayer player, Entity entity); - - void wrenchUsed(EntityPlayer player, Entity entity); -} diff --git a/dependencies/main/java/buildcraft/api/transport/ICustomPipeConnection.java b/dependencies/main/java/buildcraft/api/transport/ICustomPipeConnection.java deleted file mode 100644 index c4cc1efdf8..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/ICustomPipeConnection.java +++ /dev/null @@ -1,12 +0,0 @@ -package buildcraft.api.transport; - -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockPos; -import net.minecraft.util.EnumFacing; -import net.minecraft.world.World; - -public interface ICustomPipeConnection { - /** @return How long the connecting pipe should extend for. Values less than -4/16 indicate that the pipe will not - * connect at all, and will render as it it was not connected. */ - public float getExtension(World world, BlockPos pos, EnumFacing face, IBlockState state); -} diff --git a/dependencies/main/java/buildcraft/api/transport/IInjectable.java b/dependencies/main/java/buildcraft/api/transport/IInjectable.java deleted file mode 100644 index 0de9e20054..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/IInjectable.java +++ /dev/null @@ -1,18 +0,0 @@ -package buildcraft.api.transport; - -import net.minecraft.item.EnumDyeColor; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; - -public interface IInjectable { - boolean canInjectItems(EnumFacing from); - - /** Offers an ItemStack for 3addition to the pipe. Will be rejected if the pipe doesn't accept items from that side. - * - * @param stack ItemStack offered for addition. Do not manipulate this! - * @param doAdd If false no actual addition should take place. Implementors should simulate. - * @param from Orientation the ItemStack is offered from. - * @param color The color of the item to be added to the pipe, or null for no color. - * @return Amount of items used from the passed stack. */ - int injectItem(ItemStack stack, boolean doAdd, EnumFacing from, EnumDyeColor color); -} diff --git a/dependencies/main/java/buildcraft/api/transport/IItemPipe.java b/dependencies/main/java/buildcraft/api/transport/IItemPipe.java deleted file mode 100644 index c943a81a66..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/IItemPipe.java +++ /dev/null @@ -1,11 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * BuildCraft is distributed under the terms of the Minecraft Mod Public License 1.0, or MMPL. Please check the contents - * of the license located in http://www.mod-buildcraft.com/MMPL-1.0.txt */ -package buildcraft.api.transport; - -/** To be implemented by the real item pipe in Transport mod, but leaves knowledge for classes that do not have direct - * dependency on transport. */ -public interface IItemPipe { - -} diff --git a/dependencies/main/java/buildcraft/api/transport/IPipe.java b/dependencies/main/java/buildcraft/api/transport/IPipe.java deleted file mode 100644 index 96a7a764cf..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/IPipe.java +++ /dev/null @@ -1,21 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.transport; - -import net.minecraft.util.EnumFacing; - -import buildcraft.api.gates.IGate; - -public interface IPipe { - IPipeTile getTile(); - - IGate getGate(EnumFacing side); - - boolean hasGate(EnumFacing side); - - boolean isWired(PipeWire wire); - - boolean isWireActive(PipeWire wire); -} diff --git a/dependencies/main/java/buildcraft/api/transport/IPipeConnection.java b/dependencies/main/java/buildcraft/api/transport/IPipeConnection.java deleted file mode 100644 index 0b25ec8185..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/IPipeConnection.java +++ /dev/null @@ -1,24 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.transport; - -import net.minecraft.util.EnumFacing; - -public interface IPipeConnection { - - enum ConnectOverride { - - CONNECT, - DISCONNECT, - DEFAULT - } - - /** Allows you to override pipe connection logic. - * - * @param type - * @param with - * @return CONNECT to force a connection, DISCONNECT to force no connection, and DEFAULT to let the pipe decide. */ - ConnectOverride overridePipeConnection(IPipeTile.PipeType type, EnumFacing with); -} diff --git a/dependencies/main/java/buildcraft/api/transport/IPipeTile.java b/dependencies/main/java/buildcraft/api/transport/IPipeTile.java deleted file mode 100644 index d8d38c234b..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/IPipeTile.java +++ /dev/null @@ -1,54 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.transport; - -import net.minecraft.block.Block; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.BlockPos; -import net.minecraft.util.EnumFacing; -import net.minecraft.world.World; - -import buildcraft.api.transport.pluggable.PipePluggable; - -public interface IPipeTile extends IInjectable { - enum PipeType { - ITEM, - FLUID, - POWER, - STRUCTURE - } - - PipeType getPipeType(); - - World getWorldBC(); - - BlockPos getPosBC(); - - /** True if the pipe is connected to the block/pipe in the specific direction - * - * @param with - * @return true if connect */ - boolean isPipeConnected(EnumFacing with); - - Block getNeighborBlock(EnumFacing dir); - - TileEntity getNeighborTile(EnumFacing dir); - - IPipe getNeighborPipe(EnumFacing dir); - - IPipe getPipe(); - - int getPipeColor(); - - PipePluggable getPipePluggable(EnumFacing direction); // Now in IPluggableProvider - - boolean hasPipePluggable(EnumFacing direction); // Now in IPluggableProvider - - boolean hasBlockingPluggable(EnumFacing direction); - - void scheduleNeighborChange(); - - void scheduleRenderUpdate(); -} diff --git a/dependencies/main/java/buildcraft/api/transport/IStripesActivator.java b/dependencies/main/java/buildcraft/api/transport/IStripesActivator.java deleted file mode 100644 index 540346d7bc..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/IStripesActivator.java +++ /dev/null @@ -1,14 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.transport; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; - -public interface IStripesActivator { - void sendItem(ItemStack itemStack, EnumFacing direction); - - void dropItem(ItemStack itemStack, EnumFacing direction); -} diff --git a/dependencies/main/java/buildcraft/api/transport/IStripesHandler.java b/dependencies/main/java/buildcraft/api/transport/IStripesHandler.java deleted file mode 100644 index 71f4205521..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/IStripesHandler.java +++ /dev/null @@ -1,24 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.transport; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.BlockPos; -import net.minecraft.util.EnumFacing; -import net.minecraft.world.World; - -public interface IStripesHandler { - enum StripesHandlerType { - ITEM_USE, - BLOCK_BREAK - } - - StripesHandlerType getType(); - - boolean shouldHandle(ItemStack stack); - - boolean handle(World world, BlockPos pos, EnumFacing direction, ItemStack stack, EntityPlayer player, IStripesActivator activator); -} diff --git a/dependencies/main/java/buildcraft/api/transport/IStripesPipe.java b/dependencies/main/java/buildcraft/api/transport/IStripesPipe.java deleted file mode 100644 index 569c53954f..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/IStripesPipe.java +++ /dev/null @@ -1,9 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.transport; - -import cofh.api.energy.IEnergyHandler; - -public interface IStripesPipe extends IPipe, IStripesActivator, IEnergyHandler {} diff --git a/dependencies/main/java/buildcraft/api/transport/PipeConnectionAPI.java b/dependencies/main/java/buildcraft/api/transport/PipeConnectionAPI.java deleted file mode 100644 index e79da26462..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/PipeConnectionAPI.java +++ /dev/null @@ -1,48 +0,0 @@ -package buildcraft.api.transport; - -import java.util.Map; - -import com.google.common.collect.Maps; - -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockPos; -import net.minecraft.util.EnumFacing; -import net.minecraft.world.World; - -/** Use this class to register blocks with custom block sizes so that pipes can connect to them properly. Note that you - * do not need to register a custom pipe connection if your block implements ICustomPipeConnection. The registered - * version does not override your own implementation. */ -public final class PipeConnectionAPI { - private static final Map connections = Maps.newHashMap(); - private static final ICustomPipeConnection NOTHING = new ICustomPipeConnection() { - @Override - public float getExtension(World world, BlockPos pos, EnumFacing face, IBlockState state) { - return 0; - } - }; - - /** Register a block with a custom connection. Useful if you don't own the block class or are adding it for some-one - * - * @param block The block instance - * @param connection The connection instance */ - public static void registerConnection(Block block, ICustomPipeConnection connection) { - connections.put(block, connection); - } - - public static void registerConnectionAsNothing(Block block) { - connections.put(block, NOTHING); - } - - /** Gets the current custom connection that the block uses. Will be null if nothing has been set. */ - public static ICustomPipeConnection getCustomConnection(Block block) { - if (block instanceof ICustomPipeConnection) { - return (ICustomPipeConnection) block; - } - ICustomPipeConnection connection = connections.get(block); - if (connection != null) { - return connection; - } - return null; - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/PipeManager.java b/dependencies/main/java/buildcraft/api/transport/PipeManager.java deleted file mode 100644 index 0fd0f8aad8..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/PipeManager.java +++ /dev/null @@ -1,71 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.transport; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import net.minecraft.util.BlockPos; -import net.minecraft.world.World; - -import buildcraft.api.transport.pluggable.PipePluggable; - -public abstract class PipeManager { - - public static List stripesHandlers = new ArrayList(); - public static ArrayList> pipePluggables = new ArrayList>(); - private static Map> pipePluggableNames = new HashMap>(); - private static Map, String> pipePluggableByNames = new HashMap, String>(); - private static Map stripesHandlerPriorities = new HashMap(); - - @Deprecated - public static boolean canExtractItems(Object extractor, World world, BlockPos pos) { - return true; - } - - @Deprecated - public static boolean canExtractFluids(Object extractor, World world, BlockPos pos) { - return true; - } - - @Deprecated - public static void registerStripesHandler(IStripesHandler handler) { - registerStripesHandler(handler, 0); - } - - /** Register a Stripes Pipe handler. - * - * @param handler The handler. - * @param priority The priority - 0 is normal, higher numbers have higher priority. */ - public static void registerStripesHandler(IStripesHandler handler, int priority) { - stripesHandlers.add(handler); - stripesHandlerPriorities.put(handler, priority); - - Collections.sort(stripesHandlers, new Comparator() { - @Override - public int compare(IStripesHandler o1, IStripesHandler o2) { - return stripesHandlerPriorities.get(o2) - stripesHandlerPriorities.get(o1); - } - }); - } - - public static void registerPipePluggable(Class pluggable, String name) { - pipePluggables.add(pluggable); - pipePluggableNames.put(name, pluggable); - pipePluggableByNames.put(pluggable, name); - } - - public static Class getPluggableByName(String pluggableName) { - return pipePluggableNames.get(pluggableName); - } - - public static String getPluggableName(Class aClass) { - return pipePluggableByNames.get(aClass); - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/PipeWire.java b/dependencies/main/java/buildcraft/api/transport/PipeWire.java deleted file mode 100644 index 5864db9c3f..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/PipeWire.java +++ /dev/null @@ -1,73 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.transport; - -import java.util.Locale; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public enum PipeWire { - - RED, - BLUE, - GREEN, - YELLOW; - public static Item item; - public static final PipeWire[] VALUES = values(); - - public PipeWire reverse() { - switch (this) { - case RED: - return YELLOW; - case BLUE: - return GREEN; - case GREEN: - return BLUE; - default: - return RED; - } - } - - public String getTag() { - return name().toLowerCase(Locale.ENGLISH) + "PipeWire"; - } - - public String getColor() { - String name = this.toString().toLowerCase(Locale.ENGLISH); - char first = Character.toUpperCase(name.charAt(0)); - return first + name.substring(1); - } - - public ItemStack getStack() { - return getStack(1); - } - - public ItemStack getStack(int qty) { - if (item == null) { - return null; - } else { - return new ItemStack(item, qty, ordinal()); - } - } - - public boolean isPipeWire(ItemStack stack) { - if (stack == null) { - return false; - } else if (stack.getItem() != item) { - return false; - } else { - return stack.getItemDamage() == ordinal(); - } - } - - public static PipeWire fromOrdinal(int ordinal) { - if (ordinal < 0 || ordinal >= VALUES.length) { - return RED; - } else { - return VALUES[ordinal]; - } - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/BCPipeEventHandler.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/BCPipeEventHandler.java deleted file mode 100644 index bb163b9f0c..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/BCPipeEventHandler.java +++ /dev/null @@ -1,12 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target(value = ElementType.METHOD) -@Retention(value = RetentionPolicy.RUNTIME) -public @interface BCPipeEventHandler { - // TODO -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/EnumContentsJourneyPart.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/EnumContentsJourneyPart.java deleted file mode 100644 index 3bf724a427..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/EnumContentsJourneyPart.java +++ /dev/null @@ -1,7 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -public enum EnumContentsJourneyPart { - JUST_ENTERED, - TO_CENTER, - FROM_CENTER; -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IConnection_BC8.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IConnection_BC8.java deleted file mode 100644 index a18140f6b7..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IConnection_BC8.java +++ /dev/null @@ -1,35 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; - -import buildcraft.api.transport.pipe_bc8.IExtractionManager.IExtractable_BC8; -import buildcraft.api.transport.pipe_bc8.IInsertionManager.IInsertable_BC8; - -public interface IConnection_BC8 { - Object getOther(); - - /** @return The length of the connection. For connections to another buildcraft pipe or a full block this value will - * be 0.25. Values less than 0 are NOT permitted and returning values less than 0 will introduce crashes or - * errors further down! */ - double getLength(); - - IExtractable_BC8 getExtractor(); - - IInsertable_BC8 getInserter(); - - interface Pipe extends IConnection_BC8 { - @Override - IPipe_BC8 getOther(); - } - - interface MovableEntity extends IConnection_BC8 { - @Override - Entity getOther(); - } - - interface Tile extends IConnection_BC8 { - @Override - TileEntity getOther(); - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IExtractionManager.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IExtractionManager.java deleted file mode 100644 index 0983d7d166..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IExtractionManager.java +++ /dev/null @@ -1,46 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import net.minecraft.util.EnumFacing; - -import buildcraft.api.core.IFluidFilter; -import buildcraft.api.core.IStackFilter; -import buildcraft.api.transport.pipe_bc8.IInsertionManager.IInsertableFactory; -import buildcraft.api.transport.pipe_bc8.IPipeContentsEditable.IPipeContentsEditableFluid; -import buildcraft.api.transport.pipe_bc8.IPipeContentsEditable.IPipeContentsEditableItem; - -public interface IExtractionManager { - /** Gets an {@link IExtractable_BC8} interface for a given tile or movable entity. */ - IExtractable_BC8 getExtractableFor(Object obj); - - /** Registers an {@link IInsertableFactory}. Note that if two insertables are registered and have an overlapping - * class child, the most specific one is used. */ - void registerInsertable(Class clazz, IExtractableFactory factory); - - public interface IExtractableFactory { - IExtractable_BC8 createNew(T obj); - } - - public interface IExtractable_BC8 { - /** @param filter The filter to use when determining what can be extracted - * @param extractor The object the the contents are being extracted by - * @param direction The direction the contents will be going in - * @param simulate If true no changes will be made to the target inventory - * @return A pipe contents object if it was successfully extracted, or null if nothing was extracted. */ - IPipeContentsEditableItem tryExtractItems(IStackFilter filter, Object extractor, EnumFacing direction, boolean simulate); - - /** @param filter The filter to use when determining what can be extracted - * @param extractor The object the the contents are being extracted by - * @param direction The direction the contents will be going in - * @param simulate If true no changes will be made to the target tank - * @return A pipe contents object if it was successfully extracted, or null if nothing was extracted. */ - IPipeContentsEditableFluid tryExtractFluid(IFluidFilter filter, Object extractor, EnumFacing direction, boolean simulate); - - /** @return True if {@link #tryExtractItems(IStackFilter, Object, EnumFacing, boolean)} can return a non-null - * value at any future point in time. */ - boolean givesItems(); - - /** @return True if {@link #tryExtractFluid(IFluidFilter, Object, EnumFacing, boolean)} can return a non-null - * value at any future point in time. */ - boolean givesFluids(); - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IInsertionManager.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IInsertionManager.java deleted file mode 100644 index 0ae64a68a7..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IInsertionManager.java +++ /dev/null @@ -1,35 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import net.minecraft.util.EnumFacing; - -import buildcraft.api.core.IFluidFilter; -import buildcraft.api.core.IStackFilter; -import buildcraft.api.transport.pipe_bc8.IPipeContentsEditable.IPipeContentsEditableFluid; -import buildcraft.api.transport.pipe_bc8.IPipeContentsEditable.IPipeContentsEditableItem; - -public interface IInsertionManager { - /** Gets an {@link IInsertable_BC8} interface for a given tile or movable entity. */ - IInsertable_BC8 getInsertableFor(Object obj); - - /** Registers an {@link IInsertableFactory}. Note that if two insertables are registered and have an overlapping - * class child, the most specific one is used. */ - void registerInsertable(Class clazz, IInsertableFactory factory); - - public interface IInsertableFactory { - IInsertable_BC8 createNew(T obj); - } - - public interface IInsertable_BC8 { - boolean tryInsertItems(IPipeContentsEditableItem contents, Object extractor, EnumFacing direction, boolean simulate); - - boolean tryInsertFluid(IPipeContentsEditableFluid fluid, Object extractor, EnumFacing direction, boolean simulate); - - /** @return True if {@link #tryExtractItems(IStackFilter, Object, EnumFacing, boolean)} can return a non-null - * value at any future point in time. */ - boolean acceptsItems(); - - /** @return True if {@link #tryExtractFluid(IFluidFilter, Object, EnumFacing, boolean)} can return a non-null - * value at any future point in time. */ - boolean acceptsFluids(); - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeAddonItem.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeAddonItem.java deleted file mode 100644 index fa98b71df0..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeAddonItem.java +++ /dev/null @@ -1,8 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -/** - * - */ -public interface IPipeAddonItem { - -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeBehaviourFactory.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeBehaviourFactory.java deleted file mode 100644 index 8fa7afb230..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeBehaviourFactory.java +++ /dev/null @@ -1,5 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -public interface IPipeBehaviourFactory { - PipeBehaviour_BC8 createNew(IPipe_BC8 pipe); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeContents.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeContents.java deleted file mode 100644 index 23e16eeb2a..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeContents.java +++ /dev/null @@ -1,37 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumFacing; - -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; - -/** Provides a simple abstraction for items and fluids. This is intended to be useful for pipes which cover both kinds, - * without having lots of if (item) ... else ... */ -public interface IPipeContents { - EnumContentsJourneyPart getJourneyPart(); - - EnumFacing getDirection(); - - /** This should NEVER return numbers less than or equal to 0! - * - * @return The number of minecraft blocks this contents moves per minecraft ticks */ - double getSpeed(); - - public interface IPipeContentsItem extends IPipeContents { - ItemStack cloneItemStack(); - - IPipePropertyProvider getProperties(); - } - - public interface IPipeContentsFluid extends IPipeContents { - int getAmount(); - - Fluid getFluid(); - - NBTTagCompound getNBT(); - - FluidStack cloneFluidStack(); - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeContentsEditable.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeContentsEditable.java deleted file mode 100644 index 789772f128..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeContentsEditable.java +++ /dev/null @@ -1,60 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumFacing; - -import net.minecraftforge.fluids.Fluid; - -import buildcraft.api.core.INBTLoadable_BC8; -import buildcraft.api.core.INetworkLoadable_BC8; -import buildcraft.api.transport.pipe_bc8.IPipePropertyProvider.IPipePropertyProviderEditable; - -import io.netty.buffer.ByteBuf; - -/** Provides a way to change the contents of a pipe. */ -public interface IPipeContentsEditable extends IPipeContents, INetworkLoadable_BC8, INBTLoadable_BC8 { - IPipeContents asReadOnly(); - - void setJourneyPart(EnumContentsJourneyPart journeyPart); - - void setDirection(EnumFacing direction); - - void setSpeed(double speed); - - public interface IPipeContentsEditableFluid extends IPipeContentsEditable, IPipeContentsFluid { - int setAmount(int newAmount); - - void setFluid(Fluid fluid); - - void setNBT(NBTTagCompound compound); - - void setFluidStack(); - - @Override - IPipeContentsFluid asReadOnly(); - - @Override - IPipeContentsEditableFluid readFromNBT(NBTBase nbt); - - @Override - IPipeContentsEditableFluid readFromByteBuf(ByteBuf buf); - } - - public interface IPipeContentsEditableItem extends IPipeContentsEditable, IPipeContentsItem { - void setStack(ItemStack newStack); - - @Override - IPipePropertyProviderEditable getProperties(); - - @Override - IPipeContentsItem asReadOnly(); - - @Override - IPipeContentsEditableItem readFromNBT(NBTBase nbt); - - @Override - IPipeContentsEditableItem readFromByteBuf(ByteBuf buf); - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeHelper.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeHelper.java deleted file mode 100644 index 1d39da2b1c..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeHelper.java +++ /dev/null @@ -1,14 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import net.minecraft.item.ItemStack; - -import net.minecraftforge.fluids.FluidStack; - -import buildcraft.api.transport.pipe_bc8.IPipeContentsEditable.IPipeContentsEditableFluid; -import buildcraft.api.transport.pipe_bc8.IPipeContentsEditable.IPipeContentsEditableItem; - -public interface IPipeHelper { - IPipeContentsEditableItem getContentsForItem(ItemStack stack); - - IPipeContentsEditableFluid getContentsForFluid(FluidStack fluid); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeHolder_BC8.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeHolder_BC8.java deleted file mode 100644 index 1d2abc738f..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeHolder_BC8.java +++ /dev/null @@ -1,5 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -public interface IPipeHolder_BC8 { - IPipe_BC8 getPipe(); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeListener.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeListener.java deleted file mode 100644 index 1533faf593..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import buildcraft.api.core.INBTLoadable_BC8; -import buildcraft.api.core.INetworkLoadable_BC8; - -/** Something that will be saved and loaded from disk and sent across the network to the client world to be added as a - * listener. This class should be registered with {@link PipeAPI_BC8#PIPE_LISTENER_REGISTRY} in order to be successfully - * saved and loaded. */ -public interface IPipeListener extends INBTLoadable_BC8, INetworkLoadable_BC8 {} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeListenerFactory.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeListenerFactory.java deleted file mode 100644 index d2e96cf3d7..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeListenerFactory.java +++ /dev/null @@ -1,5 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -public interface IPipeListenerFactory { - IPipeListener createNewListener(IPipe_BC8 pipe); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeListenerRegistry.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeListenerRegistry.java deleted file mode 100644 index abe78251da..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeListenerRegistry.java +++ /dev/null @@ -1,9 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -public interface IPipeListenerRegistry { - IPipeListenerFactory getFactory(String globalUniqueTag); - - String getGlobalUniqueTag(IPipeListener listener); - - void registerListenerFactory(String modUniqueTag, IPipeListenerFactory factory); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipePropertyProvider.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipePropertyProvider.java deleted file mode 100644 index 5581d82ff5..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipePropertyProvider.java +++ /dev/null @@ -1,48 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import java.util.Set; - -import net.minecraft.nbt.NBTBase; - -import buildcraft.api.core.INBTLoadable_BC8; -import buildcraft.api.core.INetworkLoadable_BC8; - -public interface IPipePropertyProvider { - /** This will return either the value of the property (if {@link #hasProperty(IPipeProperty)} returns true) or the - * default value of the property. */ - T getValue(IPipeProperty property); - - boolean hasProperty(IPipeProperty property); - - Set> getPropertySet(); - - /** Defines a property key- this should be stored in a publicly accessible static variable somewhere. */ - public interface IPipeProperty { - String getName(); - - T getDefault(); - } - - /** Defines a pipe property that has its value queried every time it is asked for its value. */ - public interface IPipePropertyImplicit extends IPipeProperty { - T getValue(IPipe_BC8 pipe); - } - - /** Defines a pipe property that has a value explicitly set */ - public interface IPipePropertyValue extends IPipeProperty, INBTLoadable_BC8, INetworkLoadable_BC8 { - T getValue(); - - @Override - T readFromNBT(NBTBase tag); - } - - /** Defines a provider that can have value properties changed and added. */ - public interface IPipePropertyProviderEditable extends IPipePropertyProvider, INBTLoadable_BC8, - INetworkLoadable_BC8 { - void addProperty(IPipePropertyValue property); - - void removeProperty(IPipePropertyValue property); - - IPipePropertyProvider asReadOnly(); - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeRegistry.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeRegistry.java deleted file mode 100644 index ca0ec628b6..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeRegistry.java +++ /dev/null @@ -1,11 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import net.minecraft.item.Item; - -import buildcraft.api.ITripleRegistry; - -public interface IPipeRegistry extends ITripleRegistry { - /** Registers a definition, returning the item associated with it. Note that the item has not been registered, so - * you still need to register it with forge. */ - Item registerDefinition(PipeDefinition_BC8 definition); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeType.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeType.java deleted file mode 100644 index 28deb4eeeb..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipeType.java +++ /dev/null @@ -1,22 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import java.util.Collections; -import java.util.List; - -public interface IPipeType { - /** Creates all of the default listeners for this pipe. Normally this will be a list with a single object, that will - * normally be a pipe transport. However, you can use this to register any listeners you wish. */ - List createDefaultListeners(IPipe_BC8 pipe); - - enum Void implements IPipeType { - STRUCTURE, - POWER, - FLUID, - ITEM; - - @Override - public List createDefaultListeners(IPipe_BC8 pipe) { - return Collections.emptyList(); - } - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipe_BC8.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipe_BC8.java deleted file mode 100644 index 66dc2037c0..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPipe_BC8.java +++ /dev/null @@ -1,50 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import java.util.Map; - -import net.minecraft.util.EnumFacing; -import net.minecraft.world.World; - -import buildcraft.api.core.INBTLoadable_BC8; -import buildcraft.api.transport.pipe_bc8.event_bc8.IPipeEvent_BC8; - -/** Represents a pipe in a world. Most older (BC version less than 8.x) events, functions and querys can be called by - * firing the appropriate event, and inspecting the event afterwards. Most functionality has been delegated to */ -/* Note that this does not have a "get pipe tile" method, as pipes are not bound to just tile entities */ -public interface IPipe_BC8 extends INBTLoadable_BC8 { - World getWorld(); - - IPipeHolder_BC8 getHolder(); - - IPipePropertyProvider getProperties(); - - PipeBehaviour_BC8 getBehaviour(); - - Map getConnections(); - - void fireEvent(IPipeEvent_BC8 event); - - /** Adds an event listener that will be saved and sent over the network. - * - * @return True if the listener was added to the listener bus. If this returns false it will usually be todo with - * the listener not being allowed onto the pipe (for example it was a gate and there was already a gate on - * that side, or a facade or something similar to that) */ - boolean addEventListener(IPipeListener list); - - void removeEventListener(IPipeListener list); - - /** Sends all of the network data about this listener to the client. Note that this is called automatically by - * {@link #addEventListener(IPipeListener)}. */ - void sendClientUpdate(IPipeListener listener); - - /** Makes this pipe send a client update at some point in the future. This might send it now, or it might send it - * next tick. */ - void scheduleClientUpdate(IPipeListener listener); - - /** Makes this pipe re-render its static parts. */ - void sendRenderUpdate(); - - /** Makes this pipe send a render update at some point in the future. This might send it now, or it might send it in - * a few ticks time. */ - void scheduleRenderUpdate(); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPluggable_BC8.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPluggable_BC8.java deleted file mode 100644 index 414f10458b..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPluggable_BC8.java +++ /dev/null @@ -1,8 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import buildcraft.api.core.INBTLoadable_BC8; -import buildcraft.api.core.INetworkLoadable_BC8; - -public interface IPluggable_BC8 extends INetworkLoadable_BC8, INBTLoadable_BC8 { - -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPropertyRegistry.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPropertyRegistry.java deleted file mode 100644 index 5d54e5f94f..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/IPropertyRegistry.java +++ /dev/null @@ -1,48 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import buildcraft.api.transport.pipe_bc8.IPipePropertyProvider.IPipePropertyImplicit; -import buildcraft.api.transport.pipe_bc8.IPipePropertyProvider.IPipePropertyValue; - -public interface IPropertyRegistry { - IPipePropertyValue getValueProperty(String modId, String name); - - IPipePropertyValue registerValueProperty(String name, Class typeClass); - - IPipePropertyImplicit getImplicitProperty(String modId, String uniqueName); - - IPipePropertyImplicit registerSimpleImplicitProperty(String name, Class typeClass); - - IPipePropertyImplicit registerCutomImplicitProperty(String name, IPipePropertyImplicit property); - - // Used in case BuildCraft is not installed - enum Void implements IPropertyRegistry { - INSTANCE; - - // @formatter:off - @Override - public IPipePropertyValue getValueProperty(String a, String b) { - return null; - } - - @Override - public IPipePropertyValue registerValueProperty(String a, Class b) { - return null; - } - - @Override - public IPipePropertyImplicit getImplicitProperty(String a, String b) { - return null; - } - - @Override - public IPipePropertyImplicit registerSimpleImplicitProperty(String a, Class b) { - return null; - } - - @Override - public IPipePropertyImplicit registerCutomImplicitProperty(String a, IPipePropertyImplicit p) { - return p; - } - // @formatter:on - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/PipeAPI_BC8.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/PipeAPI_BC8.java deleted file mode 100644 index 80030d4595..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/PipeAPI_BC8.java +++ /dev/null @@ -1,58 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import net.minecraft.item.EnumDyeColor; - -import buildcraft.api.APIHelper; -import buildcraft.api.transport.pipe_bc8.IExtractionManager.IExtractable_BC8; -import buildcraft.api.transport.pipe_bc8.IInsertionManager.IInsertable_BC8; -import buildcraft.api.transport.pipe_bc8.IPipePropertyProvider.IPipePropertyImplicit; -import buildcraft.api.transport.pipe_bc8.IPipePropertyProvider.IPipePropertyValue; - -public enum PipeAPI_BC8 { - INSTANCE; - - public static final IPropertyRegistry PROPERTY_REGISTRY; - /** An insertion manager- used to get an instance of {@link IInsertable_BC8} for a given tile entity or movable - * entity. Can also be used to register custom {@link IInsertable_BC8} for custom tiles. */ - public static final IInsertionManager INSERTION_MANAGER; - /** An extraction manager- used to get an instance of {@link IExtractable_BC8} for a given tile entity or movable - * entity. Can also be used to register custom {@link IExtractable_BC8} for custom entities. */ - public static final IExtractionManager EXTRACTION_MANAGER; - - public static final IPipeRegistry PIPE_REGISTRY; - public static final IPipeListenerRegistry PIPE_LISTENER_REGISTRY; - - public static final IPipeHelper PIPE_HELPER; - - public static final IPipeType PIPE_TYPE_STRUCTURE; - public static final IPipeType PIPE_TYPE_POWER; - public static final IPipeType PIPE_TYPE_FLUID; - public static final IPipeType PIPE_TYPE_ITEM; - - public static final IPipePropertyValue ITEM_COLOUR; - public static final IPipePropertyValue ITEM_PAUSED; - - public static final IPipePropertyImplicit ITEM_COUNT; - public static final IPipePropertyImplicit STACK_COUNT; - - static { - PROPERTY_REGISTRY = APIHelper.getInstance("buildcraft.transport.api.impl.PropertyRegistry", IPropertyRegistry.class); - INSERTION_MANAGER = APIHelper.getInstance("buildcraft.transport.api.impl.InsertionManager", IInsertionManager.class); - EXTRACTION_MANAGER = APIHelper.getInstance("buildcraft.transport.api.impl.ExtractionManager", IExtractionManager.class); - - PIPE_REGISTRY = APIHelper.getInstance("buildcraft.transport.api.impl.PipeRegistry", IPipeRegistry.class); - PIPE_LISTENER_REGISTRY = APIHelper.getInstance("buildcraft.transport.api.impl.PipeListenerRegistry", IPipeListenerRegistry.class); - PIPE_HELPER = APIHelper.getInstance("buildcraft.transport.api.impl.PipeHelper", IPipeHelper.class); - - PIPE_TYPE_STRUCTURE = APIHelper.getNamedInstance("buildcraft.transport.api.impl.EnumPipeType", "STRUCTURE", IPipeType.class); - PIPE_TYPE_POWER = APIHelper.getNamedInstance("buildcraft.transport.api.impl.EnumPipeType", "POWER", IPipeType.class); - PIPE_TYPE_FLUID = APIHelper.getNamedInstance("buildcraft.transport.api.impl.EnumPipeType", "FLUID", IPipeType.class); - PIPE_TYPE_ITEM = APIHelper.getNamedInstance("buildcraft.transport.api.impl.EnumPipeType", "ITEM", IPipeType.class); - - ITEM_COLOUR = PROPERTY_REGISTRY.getValueProperty("BuildCraft|Transport", "item_colour"); - ITEM_PAUSED = PROPERTY_REGISTRY.getValueProperty("BuildCraft|Transport", "item_paused"); - - ITEM_COUNT = PROPERTY_REGISTRY.getImplicitProperty("BuildCraft|Transport", "item_count"); - STACK_COUNT = PROPERTY_REGISTRY.getImplicitProperty("BuildCraft|Transport", "stack_count"); - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/PipeBehaviour_BC8.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/PipeBehaviour_BC8.java deleted file mode 100644 index 41daf25fb1..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/PipeBehaviour_BC8.java +++ /dev/null @@ -1,35 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import net.minecraft.nbt.NBTBase; -import net.minecraft.util.EnumFacing; - -import io.netty.buffer.ByteBuf; - -/** An instance is created by instance of IBehaviourFactory per pipe block in world, and is registered with the pipe - * event bus to listen and respond to events. */ -public abstract class PipeBehaviour_BC8 implements IPipeListener { - public final PipeDefinition_BC8 definition; - public final IPipe_BC8 pipe; - - public PipeBehaviour_BC8(PipeDefinition_BC8 definition, IPipe_BC8 pipe) { - if (definition == null) throw new NullPointerException("definition"); - if (pipe == null) throw new NullPointerException("pipe"); - this.definition = definition; - this.pipe = pipe; - } - - /** @param side The side of which the pipe should be registered - * @return An integer between 0 (inclusive) and definition.maxSprites (exclusive). */ - public abstract int getIconIndex(EnumFacing side); - - /** Return the index for the icon for items. Override this if getIconIndex(null) does NOT return the item icon */ - public int getIconIndexForItem() { - return getIconIndex(null); - } - - @Override - public abstract PipeBehaviour_BC8 readFromByteBuf(ByteBuf buf); - - @Override - public abstract PipeBehaviour_BC8 readFromNBT(NBTBase nbt); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/PipeConnectionAPI.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/PipeConnectionAPI.java deleted file mode 100644 index 370f9cf1f1..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/PipeConnectionAPI.java +++ /dev/null @@ -1,46 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import java.util.Map; - -import com.google.common.collect.Maps; - -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockPos; -import net.minecraft.util.EnumFacing; -import net.minecraft.world.World; - -import buildcraft.api.transport.ICustomPipeConnection; - -/** Use this class to register blocks with custom block sizes so that pipes can connect to them properly. Note that you - * do not need to register a custom pipe connection if your block implements ICustomPipeConnection. The registered - * version also overrides your own implementation. */ -public final class PipeConnectionAPI { - private static final Map connections = Maps.newHashMap(); - private static final ICustomPipeConnection NOTHING = new ICustomPipeConnection() { - @Override - public float getExtension(World world, BlockPos pos, EnumFacing face, IBlockState state) { - return 0; - } - }; - - /** Register a block with a custom connection. Useful if you don't own the block class - * - * @param block The block instance - * @param connection The connection instance */ - public static void registerConnection(Block block, ICustomPipeConnection connection) { - connections.put(block, connection); - } - - /** Gets the current custom connection that the */ - public static ICustomPipeConnection getCustomConnection(Block block) { - ICustomPipeConnection connection = connections.get(block); - if (connection != null) { - return connection; - } - if (block instanceof ICustomPipeConnection) { - return (ICustomPipeConnection) block; - } - return NOTHING; - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/PipeDefinition_BC8.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/PipeDefinition_BC8.java deleted file mode 100644 index 909cf8c5ad..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/PipeDefinition_BC8.java +++ /dev/null @@ -1,86 +0,0 @@ -package buildcraft.api.transport.pipe_bc8; - -import java.util.Arrays; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.util.ResourceLocation; - -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import buildcraft.api.ObjectDefinition; -import buildcraft.api.core.BCLog; - -/** Contains all of the definitions of a pipe. */ -public final class PipeDefinition_BC8 extends ObjectDefinition { - /** The number of sprites to register related to this definition. */ - public final int maxSprites; - /** A string containing the location of the texture of a pipe. The final texture location will be - * {@link #textureLocationStart} + {@link #spriteLocations} */ - public final String textureLocationStart; - /** An array containing the end locations of each pipe texture. This array have a length equal to maxSprites. It is - * up to each indervidual pipe to determine which sprite to use for locations though. By default all of them will be - * initialised to {@link #textureLocationStart}+{@link #modUniqueTag}+{The texture suffixes given to the - * constructor} */ - private final String[] spriteLocations; - /** A factory the creates the behaviour of this definition. */ - public final IPipeBehaviourFactory behaviourFactory; - /** The type of this pipe. This determines how the pipe should be rendered and how the pipe should act. */ - public final IPipeType type; - - /** An array containing the actual sprites, where the positions are determined by {@link #spriteLocations} */ - @SideOnly(Side.CLIENT) - private TextureAtlasSprite[] sprites; - public final int itemSpriteIndex; - - public PipeDefinition_BC8(String tag, IPipeType type, String textureStart, String[] textureSuffixes, IPipeBehaviourFactory behaviour) { - this(tag, type, 0, textureStart, textureSuffixes, behaviour); - } - - /** @param tag A MOD-unique tag for the pipe - * @param type The type of pipe this is - * @param maxSprites The maximum number of sprites - * @param itemSpriteIndex - * @param textureStart - * @param factory */ - public PipeDefinition_BC8(String tag, IPipeType type, int itemSpriteIndex, String textureStart, String[] textureSuffixes, - IPipeBehaviourFactory factory) { - super(tag); - this.type = type; - this.maxSprites = textureSuffixes == null ? 1 : textureSuffixes.length; - this.itemSpriteIndex = itemSpriteIndex; - this.textureLocationStart = textureStart.endsWith("/") ? textureStart : (textureStart + "/"); - this.spriteLocations = new String[maxSprites]; - for (int i = 0; i < maxSprites; i++) { - spriteLocations[i] = textureLocationStart + modUniqueTag + (textureSuffixes == null ? "" : textureSuffixes[i]); - } - this.behaviourFactory = factory; - } - - @SideOnly(Side.CLIENT) - public TextureAtlasSprite getSprite(int index) { - if (sprites == null || index < 0 || index >= sprites.length) { - BCLog.logger.warn("Tried to get the sprite index " + index + " for " + globalUniqueTag); - return Minecraft.getMinecraft().getTextureMapBlocks().getMissingSprite(); - } - return sprites[index]; - } - - @SideOnly(Side.CLIENT) - public void registerSprites(TextureMap map) { - sprites = new TextureAtlasSprite[maxSprites]; - for (int i = 0; i < spriteLocations.length; i++) { - String string = spriteLocations[i]; - ResourceLocation location = new ResourceLocation(string); - sprites[i] = map.registerSprite(location); - } - } - - @Override - public String toString() { - return "PipeDefinition [globalUniqueTag=" + globalUniqueTag + ", modUniqueTag=" + modUniqueTag + ", behaviourFactory=" + behaviourFactory - + ", type=" + type + ", spriteLocations=" + Arrays.toString(spriteLocations) + "]"; - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/event_bc8/IPipeEventConnection_BC8.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/event_bc8/IPipeEventConnection_BC8.java deleted file mode 100644 index f03e246a88..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/event_bc8/IPipeEventConnection_BC8.java +++ /dev/null @@ -1,88 +0,0 @@ -package buildcraft.api.transport.pipe_bc8.event_bc8; - -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; - -import buildcraft.api.transport.IPipeConnection; -import buildcraft.api.transport.pipe_bc8.IConnection_BC8; -import buildcraft.api.transport.pipe_bc8.IPipe_BC8; - -public interface IPipeEventConnection_BC8 extends IPipeEvent_BC8 { - /** @return The connection object that is used. */ - IConnection_BC8 getConnection(); - - /** @return The face that this connection is over */ - EnumFacing getFace(); - - public interface AttemptCreate extends IPipeEventConnection_BC8 { - /** Calling this will disallow ANY connection to the pipe, regardless of any previous arguments passed. */ - void disallow(); - - /** Calling this any number of times will allow the connection to the pipe, but only if {@link #disallow()} has - * not been called. If this is never called, and the connection override type is DEFAULT (As specified by - * {@link IPipeConnection}) then there will be no connection. */ - void couldAccept(); - - /** @return The connection object that will be used if this event is not blocked. */ - @Override - IConnection_BC8 getConnection(); - - Object with(); - - public interface Pipe extends AttemptCreate { - @Override - IPipe_BC8 with(); - } - - public interface Tile extends AttemptCreate { - @Override - TileEntity with(); - } - - public interface MovableEntity extends AttemptCreate { - @Override - Entity with(); - } - } - - /** Fired after the connection object has been created and bound in the pipe, such that - * {@link IPipe_BC8#getConnections()} will include {@link #getFace()} mapped to {@link #getConnection()} */ - public interface Create extends IPipeEventConnection_BC8 { - Object with(); - - public interface Pipe extends Create { - @Override - IPipe_BC8 with(); - } - - public interface Tile extends Create { - @Override - TileEntity with(); - } - - public interface MovableEntity extends Create { - @Override - Entity with(); - } - } - - public interface Destroy extends IPipeEventConnection_BC8 { - Object with(); - - public interface Pipe extends Destroy { - @Override - IPipe_BC8 with(); - } - - public interface Tile extends Destroy { - @Override - TileEntity with(); - } - - public interface MovableEntity extends Destroy { - @Override - Entity with(); - } - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/event_bc8/IPipeEventContents_BC8.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/event_bc8/IPipeEventContents_BC8.java deleted file mode 100644 index 5b0c1f8940..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/event_bc8/IPipeEventContents_BC8.java +++ /dev/null @@ -1,88 +0,0 @@ -package buildcraft.api.transport.pipe_bc8.event_bc8; - -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; - -import buildcraft.api.transport.pipe_bc8.IPipeContents; -import buildcraft.api.transport.pipe_bc8.IPipeContentsEditable; -import buildcraft.api.transport.pipe_bc8.IPipe_BC8; - -/** In all events, the contents have had the appropriate variables set up as if they were in the pipe at the time the - * event is fired. */ -public interface IPipeEventContents_BC8 extends IPipeEvent_BC8 { - IPipeContents getContents(); - - // Attempts to put in some contents - - /** Checks to make sure all parts of the pipe agree to the insertion. The pipe object will automatically fire this - * if you fire an {@link Enter} event, so most of the time you dod not actually need to check this yourself. */ - public interface AttemptEnter extends IPipeEventContents_BC8 { - void disallow(); - - /** Gets the direction that the contents came from. So if this was a pipe below, and the item was moving - * upwards, this would be {@link EnumFacing#DOWN} */ - EnumFacing getFrom(); - - /** Gets the *thing* that tried to insert to this pipe. Most of the time this will be a tile entity, however it - * might be a robot or anything else an addon can think of. */ - Object getInserter(); - - public interface Pipe extends AttemptEnter { - @Override - IPipe_BC8 getInserter(); - } - - /** Fired whenever a tile entity attempts to insert an item. NOTE: this will NEVER call with a pipe as the - * argument. */ - public interface Tile extends AttemptEnter { - @Override - TileEntity getInserter(); - } - - public interface MovableEntity extends AttemptEnter { - @Override - Entity getInserter(); - } - } - - // Actually puts in the contents - - /** Fired after {@link AttemptEnter}. The contents will be added to the pipe at some time during this event, but the - * contents will NEVER change during the event interval. Also the contents will be the same object as when they have - * been added to the pipe. NOTE: The pipe object will automatically fire {@link AttemptEnter} before firing this - * event, just to check if the contents can be inserted. You do not have to manually fire {@link AttemptEnter} - * yourself. */ - public interface Enter extends IPipeEventContents_BC8 { - @Override - IPipeContentsEditable getContents(); - - /** Gets the direction that the contents came from. So if this was a pipe below, and the item was moving - * upwards, this would be {@link EnumFacing#DOWN} */ - EnumFacing getFrom(); - - /** Call this (while the event is firing) to make {@link #hasBeenHandled()} return true */ - void handle(); - - /** @return If a listener has handled the enter event. (Usually if this returns false after an event was fired - * it means that something went very wrong somewhere, and the contents has NOT been used up.) If this - * does return false you should keep the contents to yourself. */ - boolean hasBeenHandled(); - } - - /** Fired after the contents have been removed from the pipe, but before they have been dropped onto the ground or - * added to a different pipe or inventory. */ - public interface Exit extends IPipeEventContents_BC8 { - @Override - IPipeContentsEditable getContents(); - } - - public interface ChangeSpeed extends IPipeEventContents_BC8 { - /** @return the normalized speed for this contents. For items the actual speed has been multiplied by a constant - * that ensures that this returns 1 if the item is going at normal speed through a cobblestone pipe, and - * 4 if it is going at maximum speed through a gold pipe. */ - double getNormalizedSpeed(); - - void setNormalizedSpeed(double speed); - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/event_bc8/IPipeEventInteract_BC8.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/event_bc8/IPipeEventInteract_BC8.java deleted file mode 100644 index 5f73794dd9..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/event_bc8/IPipeEventInteract_BC8.java +++ /dev/null @@ -1,29 +0,0 @@ -package buildcraft.api.transport.pipe_bc8.event_bc8; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; - -import buildcraft.api.tools.IToolWrench; -import buildcraft.api.transport.pipe_bc8.IPipeListener; - -public interface IPipeEventInteract_BC8 extends IPipeEvent_BC8 { - EntityPlayer getPlayer(); - - /** Fired whenever a player selects a pipe. */ - public interface Select extends IPipeEventInteract_BC8 { - /** This should be called for every {@link AxisAlignedBB} that makes up your listener, and with your listener. - * The listener will receive the actual event directly. */ - void testBB(AxisAlignedBB aabb, IPipeListener callback); - } - - public interface Activate extends IPipeEventInteract_BC8 {} - - public interface UseItem extends IPipeEventInteract_BC8 { - ItemStack getItemStack(); - } - - public interface UseWrench extends IPipeEventInteract_BC8 { - IToolWrench getWrench(); - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/event_bc8/IPipeEvent_BC8.java b/dependencies/main/java/buildcraft/api/transport/pipe_bc8/event_bc8/IPipeEvent_BC8.java deleted file mode 100644 index 927aa34ed5..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pipe_bc8/event_bc8/IPipeEvent_BC8.java +++ /dev/null @@ -1,26 +0,0 @@ -package buildcraft.api.transport.pipe_bc8.event_bc8; - -import buildcraft.api.transport.pipe_bc8.IPipePropertyProvider.IPipePropertyImplicit; -import buildcraft.api.transport.pipe_bc8.IPipe_BC8; - -public interface IPipeEvent_BC8 { - IPipe_BC8 getPipe(); - - public interface Tick extends IPipeEvent_BC8 { - long getCurrentTick(); - - public interface Client extends Tick {} - - public interface Server extends Tick {} - } - - public interface PropertyQuery extends IPipeEvent_BC8 { - Class getTypeClass(); - - IPipePropertyImplicit getProperty(); - - T getValue(); - - void setValue(T newValue); - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pluggable/IConnectionMatrix.java b/dependencies/main/java/buildcraft/api/transport/pluggable/IConnectionMatrix.java deleted file mode 100644 index 4bede4d03e..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pluggable/IConnectionMatrix.java +++ /dev/null @@ -1,7 +0,0 @@ -package buildcraft.api.transport.pluggable; - -import net.minecraft.util.EnumFacing; - -public interface IConnectionMatrix { - boolean isConnected(EnumFacing face); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pluggable/IFacadePluggable.java b/dependencies/main/java/buildcraft/api/transport/pluggable/IFacadePluggable.java deleted file mode 100644 index a3ad9f329b..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pluggable/IFacadePluggable.java +++ /dev/null @@ -1,11 +0,0 @@ -package buildcraft.api.transport.pluggable; - -import net.minecraft.block.state.IBlockState; - -public interface IFacadePluggable { - IBlockState getCurrentState(); - - boolean isTransparent(); - - boolean isHollow(); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pluggable/IPipePluggableDynamicRenderer.java b/dependencies/main/java/buildcraft/api/transport/pluggable/IPipePluggableDynamicRenderer.java deleted file mode 100644 index 61c69bed4d..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pluggable/IPipePluggableDynamicRenderer.java +++ /dev/null @@ -1,13 +0,0 @@ -package buildcraft.api.transport.pluggable; - -import net.minecraft.util.EnumFacing; - -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import buildcraft.api.transport.IPipe; - -@SideOnly(Side.CLIENT) -public interface IPipePluggableDynamicRenderer { - void renderDynamicPluggable(IPipe pipe, EnumFacing side, PipePluggable pipePluggable, double x, double y, double z); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pluggable/IPipePluggableItem.java b/dependencies/main/java/buildcraft/api/transport/pluggable/IPipePluggableItem.java deleted file mode 100644 index b9295e5f0a..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pluggable/IPipePluggableItem.java +++ /dev/null @@ -1,10 +0,0 @@ -package buildcraft.api.transport.pluggable; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; - -import buildcraft.api.transport.IPipe; - -public interface IPipePluggableItem { - PipePluggable createPipePluggable(IPipe pipe, EnumFacing side, ItemStack stack); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pluggable/IPipePluggableState.java b/dependencies/main/java/buildcraft/api/transport/pluggable/IPipePluggableState.java deleted file mode 100644 index 7b657dfd06..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pluggable/IPipePluggableState.java +++ /dev/null @@ -1,9 +0,0 @@ -package buildcraft.api.transport.pluggable; - -import net.minecraft.util.EnumFacing; - -public interface IPipePluggableState { - IConnectionMatrix getPluggableConnections(); - - PipePluggable getPluggable(EnumFacing face); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pluggable/IPipeRenderState.java b/dependencies/main/java/buildcraft/api/transport/pluggable/IPipeRenderState.java deleted file mode 100644 index d923061fdd..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pluggable/IPipeRenderState.java +++ /dev/null @@ -1,5 +0,0 @@ -package buildcraft.api.transport.pluggable; - -public interface IPipeRenderState { - IConnectionMatrix getPipeConnectionMatrix(); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pluggable/IPluggableModelBaker.java b/dependencies/main/java/buildcraft/api/transport/pluggable/IPluggableModelBaker.java deleted file mode 100644 index 829eedaa80..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pluggable/IPluggableModelBaker.java +++ /dev/null @@ -1,17 +0,0 @@ -package buildcraft.api.transport.pluggable; - -import com.google.common.collect.ImmutableList; - -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.renderer.vertex.VertexFormat; - -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public interface IPluggableModelBaker> { - /** @return The vertex format used to generate the quads. */ - VertexFormat getVertexFormat(); - - ImmutableList bake(K key); -} diff --git a/dependencies/main/java/buildcraft/api/transport/pluggable/PipePluggable.java b/dependencies/main/java/buildcraft/api/transport/pluggable/PipePluggable.java deleted file mode 100644 index 5d505904c2..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pluggable/PipePluggable.java +++ /dev/null @@ -1,62 +0,0 @@ -/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com - * - * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which - * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ -package buildcraft.api.transport.pluggable; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumWorldBlockLayer; - -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import buildcraft.api.core.INBTStoreable; -import buildcraft.api.core.ISerializable; -import buildcraft.api.transport.IPipeTile; - -/** An IPipePluggable MUST have an empty constructor for client-side rendering! */ -public abstract class PipePluggable implements INBTStoreable, ISerializable { - public abstract ItemStack[] getDropItems(IPipeTile pipe); - - public void update(IPipeTile pipe, EnumFacing direction) { - - } - - public void onAttachedPipe(IPipeTile pipe, EnumFacing direction) { - validate(pipe, direction); - } - - public void onDetachedPipe(IPipeTile pipe, EnumFacing direction) { - invalidate(); - } - - public abstract boolean isBlocking(IPipeTile pipe, EnumFacing direction); - - public void invalidate() { - - } - - public void validate(IPipeTile pipe, EnumFacing direction) { - - } - - public boolean isSolidOnSide(IPipeTile pipe, EnumFacing direction) { - return false; - } - - public abstract AxisAlignedBB getBoundingBox(EnumFacing side); - - @SideOnly(Side.CLIENT) - public IPipePluggableDynamicRenderer getDynamicRenderer() { - return null; - } - - @SideOnly(Side.CLIENT) - public abstract PluggableModelKey getModelRenderKey(EnumWorldBlockLayer layer, EnumFacing side); - - public boolean requiresRenderUpdate(PipePluggable old) { - return true; - } -} diff --git a/dependencies/main/java/buildcraft/api/transport/pluggable/PluggableModelKey.java b/dependencies/main/java/buildcraft/api/transport/pluggable/PluggableModelKey.java deleted file mode 100644 index 3094cbb221..0000000000 --- a/dependencies/main/java/buildcraft/api/transport/pluggable/PluggableModelKey.java +++ /dev/null @@ -1,45 +0,0 @@ -package buildcraft.api.transport.pluggable; - -import java.util.Arrays; -import java.util.Objects; - -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumWorldBlockLayer; - -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public abstract class PluggableModelKey> { - public final EnumWorldBlockLayer layer; - public final IPluggableModelBaker baker; - public final EnumFacing side; - private final int hash; - - public PluggableModelKey(EnumWorldBlockLayer layer, IPluggableModelBaker baker, EnumFacing side) { - this.layer = layer; - if (layer != EnumWorldBlockLayer.CUTOUT && layer != EnumWorldBlockLayer.TRANSLUCENT) { - throw new IllegalArgumentException("Can only use CUTOUT or TRANSLUCENT at the moment (was " + layer + ")"); - } - if (baker == null) throw new NullPointerException("baker"); - this.baker = baker; - this.side = side; - /* Don't inclue the block layer in the hash code as there are different caches for cutout and translucent */ - this.hash = Arrays.hashCode(new int[] { System.identityHashCode(baker), Objects.hashCode(side) }); - } - - @Override - public boolean equals(Object obj) { - if (obj == this) return true; - if (obj == null) return false; - if (getClass() != obj.getClass()) return false; - PluggableModelKey other = (PluggableModelKey) obj; - if (baker != other.baker) return false; - if (side != other.side) return false; - return true; - } - - @Override - public int hashCode() { - return hash; - } -} diff --git a/dependencies/main/java/codechicken/core/CCUpdateChecker.java b/dependencies/main/java/codechicken/core/CCUpdateChecker.java deleted file mode 100644 index 9fbb4800f9..0000000000 --- a/dependencies/main/java/codechicken/core/CCUpdateChecker.java +++ /dev/null @@ -1,107 +0,0 @@ -package codechicken.core; - -import codechicken.core.launch.CodeChickenCorePlugin; -import com.google.common.base.Function; -import net.minecraft.client.Minecraft; -import net.minecraft.util.ChatComponentText; -import net.minecraftforge.fml.common.Loader; -import net.minecraftforge.fml.common.versioning.ComparableVersion; -import net.minecraftforge.fml.relauncher.FMLInjectionData; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.*; -import java.util.ArrayList; - -public class CCUpdateChecker { - private static final ArrayList updates = new ArrayList(); - - private static class ThreadUpdateCheck extends Thread { - private final URL url; - private final Function handler; - - public ThreadUpdateCheck(URL url, Function handler) { - this.url = url; - this.handler = handler; - - setName("CodeChicken Update Checker"); - } - - @Override - public void run() { - try { - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setRequestMethod("GET"); - conn.setConnectTimeout(5000); - conn.setReadTimeout(5000); - BufferedReader read = new BufferedReader(new InputStreamReader(conn.getInputStream())); - String ret = read.readLine(); - read.close(); - if (ret == null) { - ret = ""; - } - handler.apply(ret); - } catch (SocketTimeoutException ignored) { - } catch (UnknownHostException ignored) { - } catch (IOException iox) { - iox.printStackTrace(); - } - } - } - - public static void tick() { - Minecraft mc = Minecraft.getMinecraft(); - if (!mc.inGameHasFocus) { - return; - } - - synchronized (updates) { - for (String s : updates) { - mc.thePlayer.addChatMessage(new ChatComponentText(s)); - } - updates.clear(); - } - } - - public static void addUpdateMessage(String s) { - synchronized (updates) { - updates.add(s); - } - } - - public static String mcVersion() { - return (String) FMLInjectionData.data()[4]; - } - - public static void updateCheck(final String mod, final String version) { - updateCheck("http://www.chickenbones.net/Files/notification/version.php?" + - "version=" + mcVersion() + "&" + - "file=" + mod, new Function() { - @Override - public Void apply(String ret) { - if (!ret.startsWith("Ret: ")) { - CodeChickenCorePlugin.logger.error("Failed to check update for " + mod + " returned: " + ret); - return null; - } - ComparableVersion newversion = new ComparableVersion(ret.substring(5)); - if (newversion.compareTo(new ComparableVersion(version)) > 0) { - addUpdateMessage("Version " + newversion + " of " + mod + " is available"); - } - return null; - } - }); - } - - public static void updateCheck(String mod) { - updateCheck(mod, Loader.instance().getIndexedModList().get(mod).getVersion()); - } - - public static void updateCheck(String url, Function handler) { - try { - new ThreadUpdateCheck(new URL(url), handler).start(); - } catch (MalformedURLException e) { - CodeChickenCorePlugin.logger.error("Malformed URL: " + url, e); - } - } -} diff --git a/dependencies/main/java/codechicken/core/ClassDiscoverer.java b/dependencies/main/java/codechicken/core/ClassDiscoverer.java deleted file mode 100644 index 15ac276dc5..0000000000 --- a/dependencies/main/java/codechicken/core/ClassDiscoverer.java +++ /dev/null @@ -1,136 +0,0 @@ -package codechicken.core; - -import codechicken.core.launch.CodeChickenCorePlugin; -import codechicken.lib.asm.ASMHelper; -import net.minecraft.launchwrapper.Launch; -import net.minecraftforge.fml.common.Loader; -import net.minecraftforge.fml.common.ModClassLoader; -import net.minecraftforge.fml.common.ModContainer; -import org.objectweb.asm.tree.ClassNode; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; - -public class ClassDiscoverer { - public IStringMatcher matcher; - public String[] superclasses; - public ArrayList> classes; - public ModClassLoader modClassLoader; - - public ClassDiscoverer(IStringMatcher matcher, Class... superclasses) { - this.matcher = matcher; - this.superclasses = new String[superclasses.length]; - for (int i = 0; i < superclasses.length; i++) { - this.superclasses[i] = superclasses[i].getName().replace('.', '/'); - } - - classes = new ArrayList>(); - modClassLoader = (ModClassLoader) Loader.instance().getModClassLoader(); - } - - public ClassDiscoverer(Class... superclasses) { - this(new IStringMatcher() { - public boolean matches(String test) { - return true; - } - }, superclasses); - } - - public ArrayList> findClasses() { - try { - findClasspathMods(); - } catch (Exception e) { - throw new RuntimeException(e); - } - return classes; - } - - private void checkAddClass(String resource) { - try { - String classname = resource.replace(".class", "").replace("\\", ".").replace("/", "."); - byte[] bytes = Launch.classLoader.getClassBytes(classname); - if (bytes == null) { - return; - } - - ClassNode cnode = ASMHelper.createClassNode(bytes); - for (String superclass : superclasses) { - if (!cnode.interfaces.contains(superclass) && !cnode.superName.equals(superclass)) { - return; - } - } - - addClass(classname); - } catch (IOException e) { - CodeChickenCorePlugin.logger.error("Unable to load class: " + resource, e); - } - } - - private void addClass(String classname) { - try { - Class class1 = Class.forName(classname, true, modClassLoader); - classes.add(class1); - } catch (Throwable t) { - CodeChickenCorePlugin.logger.error("Unable to load class: " + classname, t); - } - } - - private void findClasspathMods() { - List mods = Loader.instance().getActiveModList(); - HashSet searched = new HashSet(); - for (ModContainer mod : mods) { - File source = mod.getSource(); - if (source == null || searched.contains(source.getAbsolutePath())) { - continue; - } - searched.add(source.getAbsolutePath()); - - if (source.isFile()) { - CodeChickenCorePlugin.logger.debug("Found a mod container %s, examining for codechicken classes", source.getAbsolutePath()); - try { - readFromZipFile(source); - } catch (Exception e) { - CodeChickenCorePlugin.logger.error("Failed to scan " + source.getAbsolutePath() + ", the zip file is invalid", e); - } - } else if (source.isDirectory()) { - CodeChickenCorePlugin.logger.debug("Found a minecraft related directory at %s, examining for codechicken classes", source.getAbsolutePath()); - readFromDirectory(source, source); - } - } - } - - private void readFromZipFile(File file) throws IOException { - FileInputStream fileinputstream = new FileInputStream(file); - ZipInputStream zipinputstream = new ZipInputStream(fileinputstream); - do { - ZipEntry zipentry = zipinputstream.getNextEntry(); - if (zipentry == null) { - break; - } - String fullname = zipentry.getName().replace('\\', '/'); - int pos = fullname.lastIndexOf('/'); - String name = pos == -1 ? fullname : fullname.substring(pos + 1); - if (!zipentry.isDirectory() && matcher.matches(name)) { - checkAddClass(fullname); - } - } while (true); - fileinputstream.close(); - } - - private void readFromDirectory(File directory, File basedirectory) { - for (File child : directory.listFiles()) { - if (child.isDirectory()) { - readFromDirectory(child, basedirectory); - } else if (child.isFile() && matcher.matches(child.getName())) { - String fullname = CommonUtils.getRelativePath(basedirectory, child); - checkAddClass(fullname); - } - } - } -} diff --git a/dependencies/main/java/codechicken/core/ClientUtils.java b/dependencies/main/java/codechicken/core/ClientUtils.java deleted file mode 100644 index 2982236c26..0000000000 --- a/dependencies/main/java/codechicken/core/ClientUtils.java +++ /dev/null @@ -1,67 +0,0 @@ -package codechicken.core; - -import codechicken.core.internal.CCCEventHandler; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.network.NetworkManager; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.world.World; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.ModContainer; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class ClientUtils extends CommonUtils { - private static Minecraft mc() { - return Minecraft.getMinecraft(); - } - - public static World getWorld() { - return mc().theWorld; - } - - public static boolean inWorld()//TODO unused - { - return mc().getNetHandler() != null; - } - - public static void openSMPGui(int windowId, GuiScreen gui) { - mc().displayGuiScreen(gui); - if (windowId != 0) { - mc().thePlayer.openContainer.windowId = windowId; - } - } - - public static float getRenderFrame() { - return CCCEventHandler.renderFrame; - } - - public static double getRenderTime() { - return CCCEventHandler.renderTime + getRenderFrame(); - } - - public static String getServerIP() { - try { - NetworkManager networkManager = mc().getNetHandler().getNetworkManager(); - String s = networkManager.getRemoteAddress().toString(); - s = s.substring(s.indexOf("/") + 1); - return s; - } catch (RuntimeException e) { - throw e; - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - @SideOnly(Side.CLIENT) - public static String getWorldSaveName() { - return mc().isSingleplayer() ? MinecraftServer.getServer().getFolderName() : null; - } - - public static void enhanceSupportersList(Object mod) { - ModContainer mc = FMLCommonHandler.instance().findContainerFor(mod); - mc.getMetadata().description = mc.getMetadata().description.replace("Supporters:", EnumChatFormatting.AQUA + "Supporters:"); - GuiModListScroll.register(mod); - } -} diff --git a/dependencies/main/java/codechicken/core/CommonUtils.java b/dependencies/main/java/codechicken/core/CommonUtils.java deleted file mode 100644 index f0920ba93b..0000000000 --- a/dependencies/main/java/codechicken/core/CommonUtils.java +++ /dev/null @@ -1,50 +0,0 @@ -package codechicken.core; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityList; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.relauncher.FMLInjectionData; - -import java.io.File; - -public class CommonUtils { - public static boolean isClient() { - return FMLCommonHandler.instance().getSide().isClient(); - } - - public static File getSaveLocation(World world) { - File base = DimensionManager.getCurrentSaveRootDirectory(); - return world.provider.getDimensionId() == 0 ? base : new File(base, world.provider.getSaveFolder()); - } - - public static File getSaveLocation(int dim) { - return getSaveLocation(DimensionManager.getWorld(dim)); - } - - public static String getWorldName(World world){ - return world.getWorldInfo().getWorldName(); - } - - public static int getDimension(World world){ - return world.provider.getDimensionId(); - } - - public static File getMinecraftDir() { - return (File) FMLInjectionData.data()[6]; - } - - public static String getRelativePath(File parent, File child) { - if (parent.isFile() || !child.getPath().startsWith(parent.getPath())) { - return null; - } - - return child.getPath().substring(parent.getPath().length() + 1); - } - - public static void registerHandledEntity(Class entityClass, String identifier) { - EntityList.classToStringMapping.put(entityClass, identifier); - EntityList.stringToClassMapping.put(identifier, entityClass); - } -} diff --git a/dependencies/main/java/codechicken/core/GuiModListScroll.java b/dependencies/main/java/codechicken/core/GuiModListScroll.java deleted file mode 100644 index 1865588c16..0000000000 --- a/dependencies/main/java/codechicken/core/GuiModListScroll.java +++ /dev/null @@ -1,169 +0,0 @@ -package codechicken.core; - -import codechicken.core.launch.CodeChickenCorePlugin; -import codechicken.lib.gui.GuiDraw; -import codechicken.lib.render.RenderUtils; -import codechicken.lib.vec.Rectangle4i; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.client.GuiModList; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.ModContainer; -import net.minecraftforge.fml.common.ModMetadata; -import org.lwjgl.BufferUtils; -import org.lwjgl.input.Keyboard; - -import javax.imageio.ImageIO; -import java.awt.*; -import java.awt.image.BufferedImage; -import java.io.File; -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.LinkedList; -import java.util.List; - -import static org.lwjgl.opengl.GL11.*; - -public class GuiModListScroll { - private static List scrollMods = new LinkedList(); - - public static void register(Object mod) { - register(FMLCommonHandler.instance().findContainerFor(mod)); - } - - private static void register(ModContainer mod) { - if (!RenderUtils.checkEnableStencil()) { - CodeChickenCorePlugin.logger.error("Unable to do mod description scrolling due to lack of stencil buffer"); - } else { - scrollMods.add(mod); - } - } - - private static void screenshotStencil(int x) { - Dimension d = GuiDraw.displayRes(); - ByteBuffer buf = BufferUtils.createByteBuffer(d.width * d.height); - BufferedImage img = new BufferedImage(d.width, d.height, BufferedImage.TYPE_INT_RGB); - - glPixelStorei(GL_PACK_ALIGNMENT, 1); - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - glReadPixels(0, 0, d.width, d.height, GL_STENCIL_INDEX, GL_UNSIGNED_BYTE, buf); - for (int i = 0; i < d.width; i++) { - for (int j = 0; j < d.height; j++) { - img.setRGB(i, d.height - j - 1, buf.get(j * d.width + i) == 0 ? 0 : 0xFFFFFF); - } - } - try { - ImageIO.write(img, "png", new File("stencil" + x + ".png")); - } catch (IOException e) { - e.printStackTrace(); - } - } - - private static ModContainer lastMod; - private static double scroll; - private static double lastFrameTime; - private static double timeStart; - - public static void draw(GuiModList gui, int mouseX, int mouseY) { - ModContainer selectedMod = ReflectionManager.getField(GuiModList.class, ModContainer.class, gui, "selectedMod"); - if (selectedMod != lastMod) { - lastMod = selectedMod; - scroll = 0; - timeStart = ClientUtils.getRenderTime(); - } - if (!scrollMods.contains(selectedMod) || selectedMod.getMetadata().autogenerated) { - return; - } - - int y1 = calcDescY(gui, selectedMod); - int y1draw = y1 + 10; - int y2 = gui.height - 38; - int x1 = ReflectionManager.getField(GuiModList.class, Integer.class, gui, "listWidth") + 20; - int x2 = gui.width - 20; - if (x2 - x1 <= 20) { - return; - } - - glEnable(GL_STENCIL_TEST); - glStencilFunc(GL_ALWAYS, 1, 1); - GlStateManager.colorMask(false, false, false, false); - glStencilOp(GL_ZERO, GL_ZERO, GL_ZERO); - GuiDraw.drawRect(0, 0, gui.width, gui.height, -1);//clear stencil buffer - - screenshotStencil(1); - - glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE); - GuiDraw.drawRect(x1, y1, gui.width - x1, gui.height - y1, -1);//add description area (even below button) - glStencilOp(GL_ZERO, GL_ZERO, GL_ZERO); - GuiDraw.drawRect(gui.width / 2 - 75, y2, 200, 20, -1);//subtract done button - - screenshotStencil(2); - - GlStateManager.colorMask(true, true, true, true); - glStencilFunc(GL_EQUAL, 1, 1); - glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); - - gui.drawDefaultBackground();//fill stencil with background - - GlStateManager.colorMask(false, false, false, false); - glStencilOp(GL_ZERO, GL_ZERO, GL_ZERO); - GuiDraw.drawRect(0, 0, gui.width, gui.height, -1); - glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE); - GuiDraw.drawRect(x1, y1draw, x2 - x1, y2 - y1draw, -1); - - screenshotStencil(3); - - GlStateManager.colorMask(true, true, true, true); - glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); - - String description = selectedMod.getMetadata().description; - int height = GuiDraw.fontRenderer.listFormattedStringToWidth(description, x2 - x1).size() * GuiDraw.fontRenderer.FONT_HEIGHT; - - boolean needsScroll = height > y2 - y1draw; - if ((ClientUtils.getRenderTime() - timeStart) > 40 && needsScroll) { - double dt = ClientUtils.getRenderTime() - lastFrameTime; - if (new Rectangle4i(x1, y1draw, x2 - x1, y2 - y1draw).contains(mouseX, mouseY)) { - double d = Keyboard.isKeyDown(Keyboard.KEY_UP) ? -1 : Keyboard.isKeyDown(Keyboard.KEY_DOWN) ? 1 : 0; - scroll += d * dt * 1.5; - } else { - scroll += dt * 0.2; - } - } - lastFrameTime = ClientUtils.getRenderTime(); - - //draw description - - double dy = scroll % (height + 20); - GlStateManager.pushMatrix(); - GlStateManager.translate(0, -dy, 0); - GuiDraw.fontRenderer.drawSplitString(description, x1, y1draw, x2 - x1, 0xDDDDDD); - if (needsScroll) { - GlStateManager.translate(0, height + 20, 0); - GuiDraw.fontRenderer.drawSplitString(description, x1, y1draw, x2 - x1, 0xDDDDDD); - } - GlStateManager.popMatrix(); - - glDisable(GL_STENCIL_TEST); - } - - /** - * Does not add the last 10 px space before the description normally starts - * Ignores empty child mods expecting a background draw overwrite - */ - private static int calcDescY(GuiModList gui, ModContainer mod) { - ModMetadata meta = mod.getMetadata(); - int y = 35; - if (!!meta.logoFile.isEmpty() && ReflectionManager.getField(GuiModList.class, ResourceLocation.class, gui, "cachedLogo") != null) { - y += 65; - } - y += 12; // title - y += 40; // necessary lines - if (!meta.credits.isEmpty()) { - y += 10; - } - if (!meta.childMods.isEmpty()) { - y += 10; - } - return y; - } -} diff --git a/dependencies/main/java/codechicken/core/IGuiPacketSender.java b/dependencies/main/java/codechicken/core/IGuiPacketSender.java deleted file mode 100644 index b8b0902c35..0000000000 --- a/dependencies/main/java/codechicken/core/IGuiPacketSender.java +++ /dev/null @@ -1,7 +0,0 @@ -package codechicken.core; - -import net.minecraft.entity.player.EntityPlayerMP; - -public interface IGuiPacketSender { - void sendPacket(EntityPlayerMP player, int windowId); -} diff --git a/dependencies/main/java/codechicken/core/IStringMatcher.java b/dependencies/main/java/codechicken/core/IStringMatcher.java deleted file mode 100644 index 781b17ab46..0000000000 --- a/dependencies/main/java/codechicken/core/IStringMatcher.java +++ /dev/null @@ -1,5 +0,0 @@ -package codechicken.core; - -public interface IStringMatcher { - public boolean matches(String test); -} diff --git a/dependencies/main/java/codechicken/core/ProfileTimer.java b/dependencies/main/java/codechicken/core/ProfileTimer.java deleted file mode 100644 index 22312abb8f..0000000000 --- a/dependencies/main/java/codechicken/core/ProfileTimer.java +++ /dev/null @@ -1,39 +0,0 @@ -package codechicken.core; - -public class ProfileTimer { - public double decay; - public long startTime; - public long nanoTime; - public int scanCount; - public int logScans; - public String logName; - - public ProfileTimer() { - this(0.98); - } - - public ProfileTimer(double decay) { - this.decay = decay; - } - - public ProfileTimer log(String logName, int scans) { - this.logScans = scans; - this.logName = logName; - return this; - } - - public void start() { - startTime = System.nanoTime(); - } - - public void end() { - long t = System.nanoTime() - startTime; - nanoTime = (long) (nanoTime * decay + t * (1 - decay)); - - scanCount++; - if (logScans > 0 && scanCount % logScans == 0) { - System.out.println("Profiled " + logName + " " + nanoTime + "ns"); - } - - } -} diff --git a/dependencies/main/java/codechicken/core/ReentrantCheck.java b/dependencies/main/java/codechicken/core/ReentrantCheck.java deleted file mode 100644 index 2f8b80862a..0000000000 --- a/dependencies/main/java/codechicken/core/ReentrantCheck.java +++ /dev/null @@ -1,30 +0,0 @@ -package codechicken.core; - -public class ReentrantCheck { - private boolean entered; - - public ReentrantCheck() { - entered = false; - } - - public boolean entered() { - return entered; - } - - public void enter() { - entered = true; - } - - public void exit() { - entered = false; - } - - public static ThreadLocal threadLocal() { - return new ThreadLocal() { - @Override - protected ReentrantCheck initialValue() { - return new ReentrantCheck(); - } - }; - } -} diff --git a/dependencies/main/java/codechicken/core/ReflectionManager.java b/dependencies/main/java/codechicken/core/ReflectionManager.java deleted file mode 100644 index 0c5b9d3a09..0000000000 --- a/dependencies/main/java/codechicken/core/ReflectionManager.java +++ /dev/null @@ -1,269 +0,0 @@ -package codechicken.core; - -import codechicken.lib.asm.ObfMapping; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.HashMap; - -public class ReflectionManager { - public static HashMap, Class> primitiveWrappers = new HashMap, Class>(); - - static { - primitiveWrappers.put(Integer.TYPE, Integer.class); - primitiveWrappers.put(Short.TYPE, Short.class); - primitiveWrappers.put(Byte.TYPE, Byte.class); - primitiveWrappers.put(Long.TYPE, Long.class); - primitiveWrappers.put(Double.TYPE, Double.class); - primitiveWrappers.put(Float.TYPE, Float.class); - primitiveWrappers.put(Boolean.TYPE, Boolean.class); - primitiveWrappers.put(Character.TYPE, Character.class); - } - - public static boolean isInstance(Class class1, Object obj) { - Class primitive = primitiveWrappers.get(class1); - if (primitive != null) { - if (primitive == Long.class && Long.class.isInstance(obj)) { - return true; - } - if ((primitive == Long.class || primitive == Integer.class) && Integer.class.isInstance(obj)) { - return true; - } - if ((primitive == Long.class || primitive == Integer.class || primitive == Short.class) && Short.class.isInstance(obj)) { - return true; - } - if ((primitive == Long.class || primitive == Integer.class || primitive == Short.class || primitive == Byte.class) && Integer.class.isInstance(obj)) { - return true; - } - - if (primitive == Double.class && Double.class.isInstance(obj)) { - return true; - } - if ((primitive == Double.class || primitive == Float.class) && Float.class.isInstance(obj)) { - return true; - } - - return primitive.isInstance(obj); - } - return class1.isInstance(obj); - } - - public static Class findClass(String name) { - return findClass(name, true); - } - - public static boolean classExists(String name) { - return findClass(name, false) != null; - } - - public static Class findClass(String name, boolean init) { - try { - return Class.forName(name, init, ReflectionManager.class.getClassLoader()); - } catch (ClassNotFoundException cnfe) { - try { - return Class.forName("net.minecraft.src." + name, init, ReflectionManager.class.getClassLoader()); - } catch (ClassNotFoundException cnfe2) { - return null; - } - } - } - - public static void setField(Class class1, Object instance, String name, Object value) throws IllegalArgumentException, IllegalAccessException { - setField(class1, instance, new String[] { name }, value); - } - - public static void setField(Class class1, Object instance, String[] names, Object value) throws IllegalArgumentException, IllegalAccessException { - for (Field field : class1.getDeclaredFields()) { - boolean match = false; - for (String name : names) { - if (field.getName().equals(name)) { - match = true; - break; - } - } - if (!match) { - continue; - } - - field.setAccessible(true); - field.set(instance, value); - return; - } - } - - public static void setField(Class class1, Object instance, int fieldindex, Object value) throws IllegalArgumentException, IllegalAccessException { - Field field = class1.getDeclaredFields()[fieldindex]; - field.setAccessible(true); - field.set(instance, value); - } - - /** - * Static function - * void return type - * single name - */ - public static void callMethod(Class class1, String name, Object... params) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { - callMethod(class1, null, new String[] { name }, params); - } - - /** - * Static function - * void return type - * single name - */ - public static void callMethod(Class class1, String[] names, Object... params) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { - callMethod(class1, null, names, params); - } - - /** - * void return type - * single name - */ - public static void callMethod(Class class1, Object instance, String name, Object... params) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { - callMethod(class1, null, instance, new String[] { name }, params); - } - - /** - * void return type - */ - public static void callMethod(Class class1, Object instance, String[] names, Object... params) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { - callMethod(class1, null, instance, names, params); - } - - /** - * Static method - * single name - */ - public static R callMethod(Class class1, Class returntype, String name, Object... params) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { - return callMethod(class1, returntype, null, new String[] { name }, params); - } - - /** - * Static method - */ - public static R callMethod(Class class1, Class returntype, String[] names, Object... params) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { - return callMethod(class1, returntype, null, names, params); - } - - /** - * sinlge name - */ - public static R callMethod(Class class1, Class returntype, Object instance, String name, Object... params) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { - return callMethod(class1, returntype, instance, new String[] { name }, params); - } - - public static R callMethod(Class class1, Class returntype, Object instance, String[] names, Object... params) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { - nextMethod: - for (Method method : class1.getDeclaredMethods()) { - boolean match = false; - for (String name : names) { - if (method.getName().equals(name)) { - match = true; - break; - } - } - if (!match) { - continue; - } - - Class[] paramtypes = method.getParameterTypes(); - if (paramtypes.length != params.length) { - continue; - } - - for (int i = 0; i < params.length; i++) { - if (!isInstance(paramtypes[i], params[i])) { - continue nextMethod; - } - } - - method.setAccessible(true); - return (R) method.invoke(instance, params); - } - return null; - } - - public static T getField(Class class1, Class fieldType, Object instance, int fieldIndex) throws IllegalArgumentException, IllegalAccessException { - Field field = class1.getDeclaredFields()[fieldIndex]; - field.setAccessible(true); - return (T) field.get(instance); - } - - public static T getField(Class class1, Class fieldType, Object instance, String fieldName) { - try { - Field field = class1.getDeclaredField(fieldName); - field.setAccessible(true); - return (T) field.get(instance); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static T newInstance(Class class1, Object... params) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException { - nextMethod: - for (Constructor constructor : class1.getDeclaredConstructors()) { - Class[] paramtypes = constructor.getParameterTypes(); - if (paramtypes.length != params.length) { - continue; - } - - for (int i = 0; i < params.length; i++) { - if (!isInstance(paramtypes[i], params[i])) { - continue nextMethod; - } - } - - constructor.setAccessible(true); - return (T) constructor.newInstance(params); - } - return null; - } - - public static boolean hasField(Class class1, String fieldName) { - try { - class1.getDeclaredField(fieldName); - return true; - } catch (NoSuchFieldException nfe) { - return false; - } - } - - public static T get(Field field, Class class1) { - return get(field, class1, null); - } - - public static T get(Field field, Class class1, Object instance) { - try { - return (T) field.get(instance); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static void set(Field field, Object value) { - set(field, null, value); - } - - public static void set(Field field, Object instance, Object value) { - try { - field.set(instance, value); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static Field getField(ObfMapping mapping) { - mapping.toRuntime(); - - try { - Class clazz = ReflectionManager.class.getClassLoader().loadClass(mapping.javaClass()); - Field field = clazz.getDeclaredField(mapping.s_name); - field.setAccessible(true); - return field; - } catch (Exception e) { - throw new RuntimeException(e); - } - } -} diff --git a/dependencies/main/java/codechicken/core/ServerUtils.java b/dependencies/main/java/codechicken/core/ServerUtils.java deleted file mode 100644 index d1fc4a08c6..0000000000 --- a/dependencies/main/java/codechicken/core/ServerUtils.java +++ /dev/null @@ -1,79 +0,0 @@ -package codechicken.core; - -import com.mojang.authlib.GameProfile; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.inventory.Container; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.management.PlayerProfileCache.ProfileEntry; -import net.minecraft.util.IChatComponent; - -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; - -public class ServerUtils extends CommonUtils { - public static MinecraftServer mc() { - return MinecraftServer.getServer(); - } - - public static EntityPlayerMP getPlayer(String playername) { - return mc().getConfigurationManager().getPlayerByUsername(playername); - } - - public static List getPlayers() { - return mc().getConfigurationManager().playerEntityList; - } - - public static ArrayList getPlayersInDimension(int dimension) { - ArrayList players = new ArrayList(); - for (EntityPlayer p : getPlayers()) { - if (p.dimension == dimension) { - players.add(p); - } - } - - return players; - } - - public static void openSMPContainer(EntityPlayerMP player, Container container, IGuiPacketSender packetSender) { - player.getNextWindowId(); - player.closeContainer(); - packetSender.sendPacket(player, player.currentWindowId); - player.openContainer = container; - player.openContainer.windowId = player.currentWindowId; - player.openContainer.onCraftGuiOpened(player); - } - - public static GameProfile getGameProfile(String username) { - EntityPlayer player = getPlayer(username); - if (player != null) { - return player.getGameProfile(); - } - - //try and access it in the cache without forcing a save - username = username.toLowerCase(Locale.ROOT); - ProfileEntry cachedEntry = (ProfileEntry) mc().getPlayerProfileCache().usernameToProfileEntryMap.get(username); - if (cachedEntry != null) { - return cachedEntry.getGameProfile(); - } - - //load it from the cache - return mc().getPlayerProfileCache().getGameProfileForUsername(username); - } - - public static boolean isPlayerOP(String username) { - GameProfile prof = getGameProfile(username); - return prof != null && mc().getConfigurationManager().canSendCommands(prof); - } - - public static boolean isPlayerOwner(String username) { - return mc().isSinglePlayer() && mc().getServerOwner().equalsIgnoreCase(username); - } - - public static void sendChatToAll(IChatComponent msg) { - for (EntityPlayer p : getPlayers()) { - p.addChatComponentMessage(msg); - } - } -} diff --git a/dependencies/main/java/codechicken/core/TaskProfiler.java b/dependencies/main/java/codechicken/core/TaskProfiler.java deleted file mode 100644 index c133705b1b..0000000000 --- a/dependencies/main/java/codechicken/core/TaskProfiler.java +++ /dev/null @@ -1,63 +0,0 @@ -package codechicken.core; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map.Entry; - -public class TaskProfiler { - public static class ProfilerResult { - public final String name; - public final long time; - public final double fraction; - - public ProfilerResult(String name, long time, long totalTime) { - this.name = name; - this.time = time; - fraction = time / (double) totalTime; - } - } - - public HashMap times = new HashMap(); - - public String currentSection; - private long startTime; - private long totalTime; - - public void start(String section) { - if (currentSection != null) { - end(); - } - - currentSection = section; - startTime = System.nanoTime(); - } - - public void end() { - long time = System.nanoTime() - startTime; - totalTime += time; - - Long prev = times.get(currentSection); - if (prev == null) { - prev = 0L; - } - times.put(currentSection, prev + time); - currentSection = null; - } - - public List getResults() { - ArrayList results = new ArrayList(times.size()); - for (Entry e : times.entrySet()) { - results.add(new ProfilerResult(e.getKey(), e.getValue(), totalTime)); - } - return results; - } - - public void clear() { - if (currentSection != null) { - end(); - } - times.clear(); - totalTime = 0; - } -} diff --git a/dependencies/main/java/codechicken/core/asm/CodeChickenAccessTransformer.java b/dependencies/main/java/codechicken/core/asm/CodeChickenAccessTransformer.java deleted file mode 100644 index f5acdf93bf..0000000000 --- a/dependencies/main/java/codechicken/core/asm/CodeChickenAccessTransformer.java +++ /dev/null @@ -1,70 +0,0 @@ -package codechicken.core.asm; - -import codechicken.lib.asm.ObfMapping; -import com.google.common.collect.ImmutableBiMap; -import net.minecraftforge.fml.common.asm.transformers.AccessTransformer; -import net.minecraftforge.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper; - -import java.io.IOException; -import java.lang.reflect.Field; - -public class CodeChickenAccessTransformer extends AccessTransformer { - private static boolean makeAllPublic; - private static Field f_classNameBiMap; - private static Object emptyMap = ImmutableBiMap.of(); - - public CodeChickenAccessTransformer() throws IOException { - super(); - loadPublicConfig(); - } - - private void loadPublicConfig() { - if (ObfMapping.obfuscated) { - return; - } - - makeAllPublic = CodeChickenCoreModContainer.config.getTag("dev.runtimePublic").setComment("Enabling this setting will make all minecraft classes public at runtime in MCP just as they are in modloader." + - "\nYou should ONLY use this when you are testing with a mod that relies on runtime publicity and doesn't include access transformers." + - "\nSuch mods are doing the wrong thing and should be fixed.").getBooleanValue(false); - - if (!makeAllPublic) { - return; - } - - try { - f_classNameBiMap = FMLDeobfuscatingRemapper.class.getDeclaredField("classNameBiMap"); - f_classNameBiMap.setAccessible(true); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - @Override - public byte[] transform(String name, String transformedName, byte[] bytes) { - boolean setPublic = makeAllPublic && name.startsWith("net.minecraft."); - if (setPublic) { - setClassMap(name); - } - bytes = super.transform(name, transformedName, bytes); - if (setPublic) { - restoreClassMap(); - } - return bytes; - } - - private void restoreClassMap() { - try { - f_classNameBiMap.set(FMLDeobfuscatingRemapper.INSTANCE, emptyMap); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - private void setClassMap(String name) { - try { - f_classNameBiMap.set(FMLDeobfuscatingRemapper.INSTANCE, ImmutableBiMap.of(name.replace('.', '/'), "")); - } catch (Exception e) { - throw new RuntimeException(e); - } - } -} diff --git a/dependencies/main/java/codechicken/core/asm/CodeChickenCoreModContainer.java b/dependencies/main/java/codechicken/core/asm/CodeChickenCoreModContainer.java deleted file mode 100644 index 8b17d1df42..0000000000 --- a/dependencies/main/java/codechicken/core/asm/CodeChickenCoreModContainer.java +++ /dev/null @@ -1,83 +0,0 @@ -package codechicken.core.asm; - -import codechicken.core.CCUpdateChecker; -import codechicken.core.featurehack.LiquidTextures; -import codechicken.core.internal.CCCEventHandler; -import codechicken.core.launch.CodeChickenCorePlugin; -import codechicken.lib.config.ConfigFile; -import com.google.common.eventbus.EventBus; -import com.google.common.eventbus.Subscribe; -import net.minecraft.launchwrapper.Launch; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.DummyModContainer; -import net.minecraftforge.fml.common.LoadController; -import net.minecraftforge.fml.common.MetadataCollection; -import net.minecraftforge.fml.common.event.FMLInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import net.minecraftforge.fml.common.versioning.ArtifactVersion; -import net.minecraftforge.fml.common.versioning.VersionParser; -import net.minecraftforge.fml.common.versioning.VersionRange; - -import java.io.File; -import java.util.LinkedList; -import java.util.List; - -public class CodeChickenCoreModContainer extends DummyModContainer { - public static ConfigFile config; - - public static void loadConfig() { - if (config == null) { - config = new ConfigFile(new File(CodeChickenCorePlugin.minecraftDir, "config/CodeChickenCore.cfg")).setComment("CodeChickenCore configuration file."); - } - } - - public CodeChickenCoreModContainer() { - super(MetadataCollection.from(MetadataCollection.class.getResourceAsStream("/cccmod.info"), "CodeChickenCore").getMetadataForId("CodeChickenCore", null)); - } - - @Override - public List getDependants() { - LinkedList deps = new LinkedList(); - //Don't add the dependants if we are in deobf. - if ((Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment")) { - return deps; - } - if (!getVersion().contains("$")) { - deps.add(VersionParser.parseVersionReference("NotEnoughItems@[2.0.1,)")); - //deps.add(VersionParser.parseVersionReference("EnderStorage@[1.4.6,)")); - //deps.add(VersionParser.parseVersionReference("ChickenChunks@[1.3.5,)")); - //deps.add(VersionParser.parseVersionReference("Translocator@[1.1.2,)")); - //deps.add(VersionParser.parseVersionReference("WR-CBE|Core@[1.4.2,)")); - } - return deps; - } - - @Override - public boolean registerBus(EventBus bus, LoadController controller) { - bus.register(this); - return true; - } - - @Subscribe - public void preInit(FMLPreInitializationEvent event) { - if (event.getSide().isClient()) { - LiquidTextures.init(); - } - } - - @Subscribe - public void init(FMLInitializationEvent event) { - if (event.getSide().isClient()) { - if (config.getTag("checkUpdates").getBooleanValue(true)) { - CCUpdateChecker.updateCheck(getModId()); - } - //FMLCommonHandler.instance().bus().register(new CCCEventHandler()); - MinecraftForge.EVENT_BUS.register(new CCCEventHandler()); - } - } - - @Override - public VersionRange acceptableMinecraftVersionRange() { - return VersionParser.parseRange(CodeChickenCorePlugin.mcVersion); - } -} diff --git a/dependencies/main/java/codechicken/core/asm/DefaultImplementationTransformer.java b/dependencies/main/java/codechicken/core/asm/DefaultImplementationTransformer.java deleted file mode 100644 index 7259aaa6df..0000000000 --- a/dependencies/main/java/codechicken/core/asm/DefaultImplementationTransformer.java +++ /dev/null @@ -1,94 +0,0 @@ -package codechicken.core.asm; - -import codechicken.lib.asm.ASMHelper; -import codechicken.lib.asm.ClassHeirachyManager; -import codechicken.lib.asm.ObfMapping; -import net.minecraft.launchwrapper.IClassTransformer; -import net.minecraft.launchwrapper.LaunchClassLoader; -import org.objectweb.asm.tree.ClassNode; -import org.objectweb.asm.tree.MethodNode; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; - -public class DefaultImplementationTransformer implements IClassTransformer { - private static LaunchClassLoader cl = (LaunchClassLoader) ClassHeirachyManager.class.getClassLoader(); - - private static ClassNode getClassNode(String name) { - try { - return ASMHelper.createClassNode(cl.getClassBytes(name.replace('/', '.'))); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - static class InterfaceImpl { - public final String iname; - public ArrayList impls = new ArrayList(); - - public InterfaceImpl(String iname, String cname) { - this.iname = iname; - HashSet names = new HashSet(); - ClassNode inode = getClassNode(iname); - for (MethodNode method : inode.methods) { - names.add(method.name + method.desc); - } - - ClassNode cnode = getClassNode(cname); - for (MethodNode method : cnode.methods) { - if (names.contains(method.name + method.desc)) { - impls.add(method); - method.desc = new ObfMapping(cnode.name, method.name, method.desc).toRuntime().s_desc; - } - } - } - - public boolean patch(ClassNode cnode) { - LinkedList names = new LinkedList(); - for (MethodNode method : cnode.methods) { - ObfMapping m = new ObfMapping(cnode.name, method.name, method.desc).toRuntime(); - names.add(m.s_name + m.s_desc); - } - - boolean changed = false; - for (MethodNode impl : impls) { - if (names.contains(impl.name + impl.desc)) { - continue; - } - - MethodNode copy = new MethodNode(impl.access, impl.name, impl.desc, impl.signature, impl.exceptions == null ? null : impl.exceptions.toArray(new String[0])); - ASMHelper.copy(impl, copy); - cnode.methods.add(impl); - changed = true; - } - return changed; - } - } - - private static HashMap impls = new HashMap(); - - public static void registerDefaultImpl(String iname, String cname) { - impls.put(iname.replace('.', '/'), new InterfaceImpl(iname, cname)); - } - - @Override - public byte[] transform(String name, String transformedName, byte[] bytes) { - if (transformedName.startsWith("net.minecraft") || impls.isEmpty()) { - return bytes; - } - - ClassNode cnode = ASMHelper.createClassNode(bytes); - boolean changed = false; - for (String iname : cnode.interfaces) { - InterfaceImpl impl = impls.get(iname); - if (impl != null) { - changed |= impl.patch(cnode); - } - } - - return changed ? ASMHelper.createBytes(cnode, 0) : bytes; - } -} diff --git a/dependencies/main/java/codechicken/core/asm/DelegatedTransformer.java b/dependencies/main/java/codechicken/core/asm/DelegatedTransformer.java deleted file mode 100644 index 78ab1d99ef..0000000000 --- a/dependencies/main/java/codechicken/core/asm/DelegatedTransformer.java +++ /dev/null @@ -1,137 +0,0 @@ -package codechicken.core.asm; - -import net.minecraft.launchwrapper.IClassTransformer; -import net.minecraft.launchwrapper.Launch; -import net.minecraft.launchwrapper.LaunchClassLoader; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.Opcodes; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Map; -import java.util.Stack; -import java.util.jar.JarFile; -import java.util.zip.ZipEntry; - -import static codechicken.core.launch.CodeChickenCorePlugin.logger; - -public class DelegatedTransformer implements IClassTransformer { - private static ArrayList delegatedTransformers; - private static Method m_defineClass; - private static Field f_cachedClasses; - - public DelegatedTransformer() { - delegatedTransformers = new ArrayList(); - try { - m_defineClass = ClassLoader.class.getDeclaredMethod("defineClass", String.class, byte[].class, Integer.TYPE, Integer.TYPE); - m_defineClass.setAccessible(true); - f_cachedClasses = LaunchClassLoader.class.getDeclaredField("cachedClasses"); - f_cachedClasses.setAccessible(true); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - @Override - public byte[] transform(String name, String tname, byte[] bytes) { - if (bytes == null) { - return null; - } - for (IClassTransformer trans : delegatedTransformers) { - bytes = trans.transform(name, tname, bytes); - } - return bytes; - } - - public static void addTransformer(String transformer, JarFile jar, File jarFile) { - logger.debug("Adding CCTransformer: " + transformer); - try { - byte[] bytes; - bytes = Launch.classLoader.getClassBytes(transformer); - - if (bytes == null) { - String resourceName = transformer.replace('.', '/') + ".class"; - ZipEntry entry = jar.getEntry(resourceName); - if (entry == null) { - throw new Exception("Failed to add transformer: " + transformer + ". Entry not found in jar file " + jarFile.getName()); - } - - bytes = readFully(jar.getInputStream(entry)); - } - - defineDependancies(bytes, jar, jarFile); - Class clazz = defineClass(transformer, bytes); - - if (!IClassTransformer.class.isAssignableFrom(clazz)) { - throw new Exception("Failed to add transformer: " + transformer + " is not an instance of IClassTransformer"); - } - - IClassTransformer classTransformer; - try { - classTransformer = (IClassTransformer) clazz.getDeclaredConstructor(File.class).newInstance(jarFile); - } catch (NoSuchMethodException nsme) { - classTransformer = (IClassTransformer) clazz.newInstance(); - } - delegatedTransformers.add(classTransformer); - } catch (Exception e) { - e.printStackTrace(); - } - } - - private static void defineDependancies(byte[] bytes, JarFile jar, File jarFile) throws Exception { - defineDependancies(bytes, jar, jarFile, new Stack()); - } - - private static void defineDependancies(byte[] bytes, JarFile jar, File jarFile, Stack depStack) throws Exception { - ClassReader reader = new ClassReader(bytes); - DependancyLister lister = new DependancyLister(Opcodes.ASM4); - reader.accept(lister, 0); - - depStack.push(reader.getClassName()); - - for (String dependancy : lister.getDependancies()) { - if (depStack.contains(dependancy)) { - continue; - } - - try { - Launch.classLoader.loadClass(dependancy.replace('/', '.')); - } catch (ClassNotFoundException cnfe) { - ZipEntry entry = jar.getEntry(dependancy + ".class"); - if (entry == null) { - throw new Exception("Dependency " + dependancy + " not found in jar file " + jarFile.getName()); - } - - byte[] depbytes = readFully(jar.getInputStream(entry)); - defineDependancies(depbytes, jar, jarFile, depStack); - - logger.debug("Defining dependancy: " + dependancy); - - defineClass(dependancy.replace('/', '.'), depbytes); - } - } - - depStack.pop(); - } - - private static Class defineClass(String classname, byte[] bytes) throws Exception { - Class clazz = (Class) m_defineClass.invoke(Launch.classLoader, classname, bytes, 0, bytes.length); - ((Map>) f_cachedClasses.get(Launch.classLoader)).put(classname, clazz); - return clazz; - } - - public static byte[] readFully(InputStream stream) throws IOException { - ByteArrayOutputStream bos = new ByteArrayOutputStream(stream.available()); - int r; - while ((r = stream.read()) != -1) { - bos.write(r); - } - - return bos.toByteArray(); - } -} diff --git a/dependencies/main/java/codechicken/core/asm/DependancyLister.java b/dependencies/main/java/codechicken/core/asm/DependancyLister.java deleted file mode 100644 index 80bd241090..0000000000 --- a/dependencies/main/java/codechicken/core/asm/DependancyLister.java +++ /dev/null @@ -1,79 +0,0 @@ -package codechicken.core.asm; - -import org.objectweb.asm.*; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class DependancyLister extends ClassVisitor { - private static Pattern classdesc = Pattern.compile("L(.+?);"); - - private class DependancyMethodLister extends MethodVisitor { - public DependancyMethodLister(int api) { - super(api); - } - - @Override - public void visitFieldInsn(int opcode, String owner, String name, String desc) { - dependDesc(desc); - } - - @Override - public void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index) { - dependDesc(desc); - } - - @Override - public void visitMethodInsn(int opcode, String owner, String name, String desc) { - depend(owner); - dependDesc(desc); - } - } - - private HashSet dependancies = new HashSet(); - - public DependancyLister(int api) { - super(api); - } - - @Override - public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { - dependDesc(desc); - return null; - } - - private void dependDesc(String desc) { - Matcher match = classdesc.matcher(desc); - while (match.find()) { - String s = match.group(); - depend(s.substring(1, s.length() - 1)); - } - } - - private void depend(String classname) { - dependancies.add(classname); - } - - @Override - public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { - dependDesc(desc); - return new DependancyMethodLister(Opcodes.ASM4); - } - - @Override - public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { - depend(superName); - if (interfaces != null) { - for (String interfacename : interfaces) { - depend(interfacename); - } - } - } - - public List getDependancies() { - return new ArrayList(dependancies); - } -} diff --git a/dependencies/main/java/codechicken/core/asm/InterfaceDependancies.java b/dependencies/main/java/codechicken/core/asm/InterfaceDependancies.java deleted file mode 100644 index 5054647025..0000000000 --- a/dependencies/main/java/codechicken/core/asm/InterfaceDependancies.java +++ /dev/null @@ -1,12 +0,0 @@ -package codechicken.core.asm; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Retention(RetentionPolicy.RUNTIME) -@Target({ ElementType.TYPE }) -public @interface InterfaceDependancies { - -} diff --git a/dependencies/main/java/codechicken/core/asm/InterfaceDependancyTransformer.java b/dependencies/main/java/codechicken/core/asm/InterfaceDependancyTransformer.java deleted file mode 100644 index e3f873ad83..0000000000 --- a/dependencies/main/java/codechicken/core/asm/InterfaceDependancyTransformer.java +++ /dev/null @@ -1,51 +0,0 @@ -package codechicken.core.asm; - -import codechicken.lib.asm.ASMHelper; -import codechicken.lib.asm.ObfMapping; -import net.minecraft.launchwrapper.IClassTransformer; -import net.minecraft.launchwrapper.Launch; -import org.objectweb.asm.Type; -import org.objectweb.asm.tree.AnnotationNode; -import org.objectweb.asm.tree.ClassNode; - -import java.util.Iterator; - -public class InterfaceDependancyTransformer implements IClassTransformer { - @Override - public byte[] transform(String name, String tname, byte[] bytes) { - if (bytes == null) { - return null; - } - ClassNode cnode = ASMHelper.createClassNode(bytes); - - boolean hasDependancyInterfaces = false; - if (cnode.visibleAnnotations != null) { - for (AnnotationNode ann : cnode.visibleAnnotations) { - if (ann.desc.equals(Type.getDescriptor(InterfaceDependancies.class))) { - hasDependancyInterfaces = true; - break; - } - } - } - - if (!hasDependancyInterfaces) { - return bytes; - } - - hasDependancyInterfaces = false; - for (Iterator iterator = cnode.interfaces.iterator(); iterator.hasNext(); ) { - try { - Launch.classLoader.findClass(new ObfMapping(iterator.next()).toRuntime().javaClass()); - } catch (ClassNotFoundException cnfe) { - iterator.remove(); - hasDependancyInterfaces = true; - } - } - - if (!hasDependancyInterfaces) { - return bytes; - } - - return ASMHelper.createBytes(cnode, 0); - } -} diff --git a/dependencies/main/java/codechicken/core/asm/MCPDeobfuscationTransformer.java b/dependencies/main/java/codechicken/core/asm/MCPDeobfuscationTransformer.java deleted file mode 100644 index d28ea0492d..0000000000 --- a/dependencies/main/java/codechicken/core/asm/MCPDeobfuscationTransformer.java +++ /dev/null @@ -1,234 +0,0 @@ -package codechicken.core.asm; - -import codechicken.lib.asm.ASMHelper; -import codechicken.lib.asm.CC_ClassWriter; -import codechicken.lib.asm.ObfMapping; -import codechicken.obfuscator.IHeirachyEvaluator; -import codechicken.obfuscator.ObfuscationMap.ObfuscationEntry; -import codechicken.obfuscator.ObfuscationRun; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; -import net.minecraft.launchwrapper.IClassTransformer; -import net.minecraft.launchwrapper.Launch; -import net.minecraft.launchwrapper.LaunchClassLoader; -import net.minecraftforge.fml.common.asm.transformers.AccessTransformer; -import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.tree.ClassNode; -import org.objectweb.asm.tree.MethodInsnNode; -import org.objectweb.asm.tree.MethodNode; - -import java.io.IOException; -import java.lang.reflect.Field; -import java.util.*; -import java.util.Map.Entry; - -public class MCPDeobfuscationTransformer implements IClassTransformer, Opcodes, IHeirachyEvaluator { - public static class LoadPlugin implements IFMLLoadingPlugin { - @Override - public String[] getASMTransformerClass() { - return new String[0]; - } - - @Override - public String getModContainerClass() { - return null; - } - - @Override - public String getSetupClass() { - return null; - } - - @Override - public void injectData(Map data) { - load(); - } - - @Override - public String getAccessTransformerClass() { - return null; - } - } - - private static ObfuscationRun run; - private static List excludedPackages = new LinkedList(); - private static MCPDeobfuscationTransformer instance = new MCPDeobfuscationTransformer(); - - private static boolean activated; - - private static Field f_transformers; - private static Field f_modifiers; - private static Field f_Modifier_name; - private static Field f_Modifier_desc; - - static { - try { - f_transformers = LaunchClassLoader.class.getDeclaredField("transformers"); - f_modifiers = AccessTransformer.class.getDeclaredField("modifiers"); - Class c_Modifier = Class.forName(AccessTransformer.class.getName() + "$Modifier", false, Launch.classLoader); - f_Modifier_name = c_Modifier.getDeclaredField("name"); - f_Modifier_desc = c_Modifier.getDeclaredField("desc"); - - f_transformers.setAccessible(true); - f_modifiers.setAccessible(true); - f_Modifier_name.setAccessible(true); - f_Modifier_desc.setAccessible(true); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - private static Object get(Field f, Object inst) { - try { - return f.get(inst); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - private static void set(Field f, Object inst, Object value) { - try { - f.set(inst, value); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - @SuppressWarnings("unchecked") - private static List getTransformers() { - return (List) get(f_transformers, Launch.classLoader); - } - - public static void load() { - CodeChickenCoreModContainer.loadConfig(); - - if (CodeChickenCoreModContainer.config.getTag("dev.deobfuscate").setComment("set to true to completely deobfuscate mcp names").getBooleanValue(!ObfMapping.obfuscated)) { - run = new ObfuscationRun(false, ObfMapping.MCPRemapper.getConfFiles(), ObfuscationRun.fillDefaults(new HashMap())); - run.obf.setHeirachyEvaluator(instance); - run.setQuiet().parseMappings(); - Collections.addAll(excludedPackages, run.config.get("excludedPackages").split(";")); - - if (ObfMapping.obfuscated) { - ObfMapping.loadMCPRemapper(); - run.setSeargeConstants(); - getTransformers().add(instance); - } else { - getTransformers().add(0, instance);//insert transformer as first. - } - } - } - - @Override - public byte[] transform(String name, String transformedName, byte[] bytes) { - if (name.equals("net.minecraftforge.fml.common.Loader")) { - bytes = injectCallback(bytes); - activated = true; - } - - if (!activated || bytes == null) { - return bytes; - } - - ClassNode cnode = ASMHelper.createClassNode(bytes, ClassReader.EXPAND_FRAMES); - ClassWriter cw = new CC_ClassWriter(0, true); - run.remap(cnode, cw); - return cw.toByteArray(); - } - - private byte[] injectCallback(byte[] bytes) { - ClassNode cnode = ASMHelper.createClassNode(bytes); - MethodNode mnode = ASMHelper.findMethod(new ObfMapping(cnode.name, "", "()V"), cnode); - mnode.instructions.insert(new MethodInsnNode(INVOKESTATIC, "codechicken/core/asm/MCPDeobfuscationTransformer", "loadCallback", "()V")); - return ASMHelper.createBytes(cnode, 0); - } - - public static void loadCallback() { - if (ObfMapping.obfuscated) { - //move ourselves to the end - List transformers = getTransformers(); - transformers.remove(instance); - transformers.add(instance); - } else { - //remap access transformers - for (IClassTransformer t : getTransformers()) { - if (t instanceof AccessTransformer) { - remapAccessTransformer(t); - } - } - } - } - - @SuppressWarnings("unchecked") - private static void remapAccessTransformer(IClassTransformer t) { - Multimap modifiers = (Multimap) get(f_modifiers, t); - Multimap t_modifiers = HashMultimap.create(); - for (Entry entry : modifiers.entries()) { - Object mod = entry.getValue(); - String m_owner = entry.getKey().replace('.', '/'); - String m_name = (String) get(f_Modifier_name, mod); - String m_desc = ((String) get(f_Modifier_desc, mod)).replace('.', '/'); - ObfMapping map; - if (m_name.equals("*")) { - map = new ObfMapping(m_owner); - map.s_name = m_name; - map.s_desc = m_desc; - } else { - try { - map = new ObfMapping(m_owner, m_name, m_desc).toClassloading(); - } catch (Exception e) { - new Object(); - continue; - } - } - - set(f_Modifier_name, mod, map.s_name); - set(f_Modifier_desc, mod, map.s_desc); - t_modifiers.put(map.javaClass(), mod); - } - set(f_modifiers, t, t_modifiers); - } - - @Override - public List getParents(ObfuscationEntry desc) { - try { - String name = ObfMapping.obfuscated ? desc.obf.s_owner : desc.mcp.s_owner; - name = name.replace('/', '.'); - byte[] bytes = Launch.classLoader.getClassBytes(name); - if (bytes != null) { - return ObfuscationRun.getParents(ASMHelper.createClassNode(bytes)); - } - } catch (IOException e) { - } - return null; - } - - @Override - public boolean isLibClass(ObfuscationEntry desc) { - String name = desc.srg.s_owner; - for (String p : excludedPackages) { - if (name.startsWith(p)) { - return true; - } - } - - return false; - } - - public static String unmap(String name) { - if (run == null) { - return null; - } - ObfuscationEntry e = run.obf.lookupMcpClass(name); - if (e == null) { - return null; - } - return e.obf.s_owner; - } - - public static MCPDeobfuscationTransformer instance() { - return instance; - } -} diff --git a/dependencies/main/java/codechicken/core/asm/MethodASMifier.java b/dependencies/main/java/codechicken/core/asm/MethodASMifier.java deleted file mode 100644 index aacd600dcd..0000000000 --- a/dependencies/main/java/codechicken/core/asm/MethodASMifier.java +++ /dev/null @@ -1,73 +0,0 @@ -package codechicken.core.asm; - -import codechicken.lib.asm.ObfMapping; -import net.minecraft.launchwrapper.Launch; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.util.Printer; -import org.objectweb.asm.util.TraceMethodVisitor; - -import java.io.File; -import java.io.PrintWriter; - -import static org.objectweb.asm.Opcodes.ASM4; - -public class MethodASMifier extends ClassVisitor { - PrintWriter printWriter; - ObfMapping method; - Printer asmifier; - - public MethodASMifier(ObfMapping method, Printer printer, PrintWriter printWriter) { - super(ASM4); - this.method = method; - this.printWriter = printWriter; - asmifier = printer; - } - - @Override - public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { - if (method.matches(name, desc)) { - Printer localPrinter = asmifier.visitMethod(access, name, desc, signature, exceptions); - return new TraceMethodVisitor(null, localPrinter); - } - - return null; - } - - @Override - public void visitEnd() { - asmifier.visitClassEnd(); - asmifier.print(printWriter); - super.visitEnd(); - } - - public static void printMethod(ObfMapping method, Printer printer, File toFile) { - try { - printMethod(method, Launch.classLoader.getClassBytes(method.javaClass()), printer, toFile); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public static void printMethod(ObfMapping method, byte[] bytes, Printer printer, File toFile) { - try { - if (!toFile.getParentFile().exists()) { - toFile.getParentFile().mkdirs(); - } - if (!toFile.exists()) { - toFile.createNewFile(); - } - - PrintWriter printWriter = new PrintWriter(toFile); - - ClassVisitor cv = new MethodASMifier(method, printer, printWriter); - ClassReader cr = new ClassReader(bytes); - cr.accept(cv, 0); - - printWriter.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } -} diff --git a/dependencies/main/java/codechicken/core/asm/TweakTransformer.java b/dependencies/main/java/codechicken/core/asm/TweakTransformer.java deleted file mode 100644 index 598ce24fd5..0000000000 --- a/dependencies/main/java/codechicken/core/asm/TweakTransformer.java +++ /dev/null @@ -1,70 +0,0 @@ -package codechicken.core.asm; - -import codechicken.lib.asm.*; -import codechicken.lib.asm.ModularASMTransformer.MethodReplacer; -import codechicken.lib.asm.ModularASMTransformer.MethodTransformer; -import codechicken.lib.config.ConfigTag; -import net.minecraft.launchwrapper.IClassTransformer; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.tree.JumpInsnNode; -import org.objectweb.asm.tree.MethodNode; - -import java.util.Map; - -import static codechicken.lib.asm.InsnComparator.findOnce; - -public class TweakTransformer implements IClassTransformer, Opcodes { - private static ModularASMTransformer transformer = new ModularASMTransformer(); - private static Map blocks = ASMReader.loadResource("/assets/codechickencore/asm/tweaks.asm"); - public static ConfigTag tweaks; - - public static void load() { - CodeChickenCoreModContainer.loadConfig(); - tweaks = CodeChickenCoreModContainer.config.getTag("tweaks").setComment("Various tweaks that can be applied to game mechanics.").useBraces(); - tweaks.removeTag("persistantLava"); - - if (tweaks.getTag("environmentallyFriendlyCreepers").setComment("If set to true, creepers will not destroy landscape. (A version of mobGriefing setting just for creepers)").getBooleanValue(false)) { - transformer.add(new MethodReplacer(new ObfMapping("net/minecraft/entity/monster/EntityCreeper", "func_146077_cc", "()V"), blocks.get("d_environmentallyFriendlyCreepers"), blocks.get("environmentallyFriendlyCreepers"))); - } - - /*if (!tweaks.getTag("softLeafReplace") - .setComment("If set to false, leaves will only replace air when growing") - .getBooleanValue(false)) { - transformer.add(new MethodWriter(ACC_PUBLIC, new ObfMapping("net/minecraft/block/Block", "canBeReplacedByLeaves", "(Lnet/minecraft/world/IBlockAccess;III)Z"), blocks.get("softLeafReplace"))); - } - - if (tweaks.getTag("doFireTickOut") - .setComment("If set to true and doFireTick is disabled in the game rules, fire will still dissipate if it's not over a fire source") - .getBooleanValue(true)) { - transformer.add(new MethodTransformer(new ObfMapping("net/minecraft/block/BlockFire", "func_149674_a", "(Lnet/minecraft/world/World;IIILjava/util/Random;)V")) - { - @Override - public void transform(MethodNode mv) { - ASMBlock needle = blocks.get("n_doFireTick"); - ASMBlock inject = blocks.get("doFireTick"); - - ASMBlock key = needle.applyLabels(findOnce(mv.instructions, needle.list)); - LabelNode jlabel = key.get("LRET"); - mv.instructions.insertBefore(jlabel, new JumpInsnNode(GOTO, inject.get("LSKIP"))); - mv.instructions.insert(jlabel, inject.list.list); - } - }); - }*/ - - if (tweaks.getTag("finiteWater").setComment("If set to true two adjacent water source blocks will not generate a third.").getBooleanValue(false)) { - transformer.add(new MethodTransformer(new ObfMapping("net/minecraft/block/BlockDynamicLiquid", "func_149674_a", "(Lnet/minecraft/world/World;IIILjava/util/Random;)V")) { - @Override - public void transform(MethodNode mv) { - InsnListSection key = findOnce(mv.instructions, blocks.get("finiteWater").list); - key.setLast(((JumpInsnNode) key.getLast()).label); - key.remove(); - } - }); - } - } - - @Override - public byte[] transform(String name, String tname, byte[] bytes) { - return transformer.transform(name, bytes); - } -} diff --git a/dependencies/main/java/codechicken/core/commands/CoreCommand.java b/dependencies/main/java/codechicken/core/commands/CoreCommand.java deleted file mode 100644 index f85a481eeb..0000000000 --- a/dependencies/main/java/codechicken/core/commands/CoreCommand.java +++ /dev/null @@ -1,101 +0,0 @@ -package codechicken.core.commands; - -import codechicken.core.ServerUtils; -import net.minecraft.command.ICommand; -import net.minecraft.command.ICommandSender; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.BlockPos; -import net.minecraft.util.ChatComponentTranslation; -import net.minecraft.world.WorldServer; -import net.minecraftforge.common.DimensionManager; - -import java.util.ArrayList; -import java.util.List; - -public abstract class CoreCommand implements ICommand { - public static void chatT(ICommandSender sender, String s, Object... params) { - sender.addChatMessage(new ChatComponentTranslation(s, params)); - } - - public static void chatOpsT(String s, Object... params) { - for (EntityPlayerMP player : ServerUtils.getPlayers()) { - if (MinecraftServer.getServer().getConfigurationManager().canSendCommands(player.getGameProfile())) { - player.addChatMessage(new ChatComponentTranslation(s, params)); - } - } - } - - public abstract boolean OPOnly(); - - @Override - public String getCommandUsage(ICommandSender var1) { - return "/" + getCommandName() + " help"; - } - - @Override - public void processCommand(ICommandSender sender, String[] args) { - if (args.length < minimumParameters() || args.length == 1 && args[0].equals("help")) { - printHelp(sender); - return; - } - - String command = getCommandName(); - for (String arg : args) { - command += " " + arg; - } - - handleCommand(command, sender.getName(), args, sender); - } - - public abstract void handleCommand(String command, String playername, String[] args, ICommandSender listener); - - public abstract void printHelp(ICommandSender sender); - - public final EntityPlayerMP getPlayer(String name) { - return ServerUtils.getPlayer(name); - } - - public WorldServer getWorld(int dimension) { - return DimensionManager.getWorld(dimension); - } - - public WorldServer getWorld(EntityPlayer player) { - return (WorldServer) player.worldObj; - } - - @Override - public int compareTo(ICommand o) { - return getCommandName().compareTo(o.getCommandName()); - } - - @Override - public List getCommandAliases() { - return new ArrayList(); - } - - @Override - public List addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { - return null; - } - - @Override - public boolean isUsernameIndex(String[] args, int index) { - return false; - } - - @Override - public boolean canCommandSenderUseCommand(ICommandSender var1) { - if (OPOnly()) { - if (var1 instanceof EntityPlayer) { - return MinecraftServer.getServer().getConfigurationManager().canSendCommands(((EntityPlayer) var1).getGameProfile()); - } - - return var1 instanceof MinecraftServer; - } - return true; - } - - public abstract int minimumParameters(); -} diff --git a/dependencies/main/java/codechicken/core/commands/PlayerCommand.java b/dependencies/main/java/codechicken/core/commands/PlayerCommand.java deleted file mode 100644 index 45600ad3fb..0000000000 --- a/dependencies/main/java/codechicken/core/commands/PlayerCommand.java +++ /dev/null @@ -1,32 +0,0 @@ -package codechicken.core.commands; - -import codechicken.lib.raytracer.RayTracer; -import net.minecraft.command.ICommandSender; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.util.BlockPos; -import net.minecraft.world.WorldServer; - -public abstract class PlayerCommand extends CoreCommand { - @Override - public boolean canCommandSenderUseCommand(ICommandSender var1) { - return super.canCommandSenderUseCommand(var1) && var1 instanceof EntityPlayer; - } - - @Override - public void handleCommand(String command, String playername, String[] args, ICommandSender listener) { - EntityPlayerMP player = (EntityPlayerMP) listener; - handleCommand(getWorld(player), player, args); - } - - public abstract void handleCommand(WorldServer world, EntityPlayerMP player, String[] args); - - public static BlockPos traceBlock(EntityPlayerMP player, float reach) { - return RayTracer.retrace(player, reach).getBlockPos(); - } - - public static Entity traceEntity(EntityPlayerMP player, float reach) { - return RayTracer.retrace(player, reach).entityHit; - } -} diff --git a/dependencies/main/java/codechicken/core/commands/ServerCommand.java b/dependencies/main/java/codechicken/core/commands/ServerCommand.java deleted file mode 100644 index cb4a0dae3b..0000000000 --- a/dependencies/main/java/codechicken/core/commands/ServerCommand.java +++ /dev/null @@ -1,22 +0,0 @@ -package codechicken.core.commands; - -import net.minecraft.command.ICommandSender; -import net.minecraft.server.MinecraftServer; - -public abstract class ServerCommand extends CoreCommand { - @Override - public void processCommand(ICommandSender var1, String[] var2) { - handleCommand(var2, (MinecraftServer) var1); - } - - @Override - public boolean canCommandSenderUseCommand(ICommandSender var1) { - return super.canCommandSenderUseCommand(var1) && var1 instanceof MinecraftServer; - } - - public abstract void handleCommand(String[] args, MinecraftServer listener); - - public final boolean OPOnly() { - return false; - } -} diff --git a/dependencies/main/java/codechicken/core/featurehack/GameDataManipulator.java b/dependencies/main/java/codechicken/core/featurehack/GameDataManipulator.java deleted file mode 100644 index 87368b695d..0000000000 --- a/dependencies/main/java/codechicken/core/featurehack/GameDataManipulator.java +++ /dev/null @@ -1,23 +0,0 @@ -package codechicken.core.featurehack; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.common.registry.GameData; - -public class GameDataManipulator { - public static void replaceItem(int id, Item item) { - try { - ResourceLocation name = (ResourceLocation) Item.itemRegistry.getNameForObject(Item.getItemById(id)); - Item.itemRegistry.registryObjects.put(name, item); - Item.itemRegistry.underlyingIntegerMap.put(item, id); - Block block = Block.getBlockById(id); - if (block != Blocks.air) { - GameData.getBlockItemMap().put(block, item); - } - } catch (Exception e) { - throw new RuntimeException(e); - } - } -} diff --git a/dependencies/main/java/codechicken/core/featurehack/LiquidTextures.java b/dependencies/main/java/codechicken/core/featurehack/LiquidTextures.java deleted file mode 100644 index c566236a04..0000000000 --- a/dependencies/main/java/codechicken/core/featurehack/LiquidTextures.java +++ /dev/null @@ -1,51 +0,0 @@ -package codechicken.core.featurehack; - -import codechicken.core.asm.TweakTransformer; -import codechicken.core.featurehack.mc.TextureLavaFX; -import codechicken.core.featurehack.mc.TextureLavaFlowFX; -import codechicken.core.featurehack.mc.TextureWaterFX; -import codechicken.core.featurehack.mc.TextureWaterFlowFX; -import codechicken.lib.render.TextureSpecial; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -import java.util.Map; - -public class LiquidTextures { - public static TextureSpecial[] newTextures = new TextureSpecial[4]; - - public static boolean replaceLava; - public static boolean replaceWater; - - public static void init() { - replaceWater = TweakTransformer.tweaks.getTag("replaceWaterFX").setComment("Set this to true to use the pre1.5 water textures").getBooleanValue(false); - replaceLava = TweakTransformer.tweaks.getTag("replaceLavaFX").setComment("Set this to true to use the pre1.5 lava textures").getBooleanValue(false); - if (replaceWater) { - newTextures[0] = new TextureWaterFX().texture; - newTextures[1] = new TextureWaterFlowFX().texture; - } - if (replaceLava) { - newTextures[2] = new TextureLavaFX().texture; - newTextures[3] = new TextureLavaFlowFX().texture; - } - - if (replaceWater || replaceLava) { - MinecraftForge.EVENT_BUS.register(new LiquidTextures()); - } - } - - @SubscribeEvent - public void postStitch(TextureStitchEvent.Post event) { - Map uploadedSprites = event.map.mapUploadedSprites; - if (replaceWater) { - uploadedSprites.put("minecraft:blocks/water_still", newTextures[0]); - uploadedSprites.put("minecraft:blocks/water_flow", newTextures[1]); - } - if (replaceLava) { - uploadedSprites.put("minecraft:blocks/lava_still", newTextures[2]); - uploadedSprites.put("minecraft:blocks/lava_flow", newTextures[3]); - } - } -} diff --git a/dependencies/main/java/codechicken/core/featurehack/TweakTransformerHelper.java b/dependencies/main/java/codechicken/core/featurehack/TweakTransformerHelper.java deleted file mode 100644 index adef0c652c..0000000000 --- a/dependencies/main/java/codechicken/core/featurehack/TweakTransformerHelper.java +++ /dev/null @@ -1,32 +0,0 @@ -package codechicken.core.featurehack; - -//import static net.minecraftforge.common.util.ForgeDirection.UP; - -public class TweakTransformerHelper { - /*public static void quenchFireTick(World world, int x, int y, int z, Random rand) - { - Block base = world.getBlock(x, y - 1, z); - boolean supported = (base != null && base.isFireSource(world, x, y - 1, z, UP)); - - if (!Blocks.fire.canPlaceBlockAt(world, x, y, z) || - !supported && world.isRaining() && (world.canLightningStrikeAt(x, y, z) || world.canLightningStrikeAt(x - 1, y, z) || world.canLightningStrikeAt(x + 1, y, z) || world.canLightningStrikeAt(x, y, z - 1) || world.canLightningStrikeAt(x, y, z + 1))) - world.setBlockToAir(x, y, z); - else - { - int meta = world.getBlockMetadata(x, y, z); - if(meta < 15) - world.setBlockMetadataWithNotify(x, y, z, meta+rand.nextInt(3)/2, 0); - - world.scheduleBlockUpdate(x, y, z, Blocks.fire, Blocks.fire.tickRate(world) + rand.nextInt(10)); - - if(!supported && !Blocks.fire.canCatchFire(world, x, y - 1, z, UP) && meta == 15 && rand.nextInt(4) == 0) - world.setBlockToAir(x, y, z); - } - } - - public static boolean canPlaceBlockAt(World world, int x, int y, int z) - { - Block block = world.getBlock(x, y, z); - return block.isAir(world, x, y, z) || block.isReplaceable(world, x, y, z); - }*/ -} diff --git a/dependencies/main/java/codechicken/core/featurehack/mc/TextureLavaFX.java b/dependencies/main/java/codechicken/core/featurehack/mc/TextureLavaFX.java deleted file mode 100644 index d1362aec0f..0000000000 --- a/dependencies/main/java/codechicken/core/featurehack/mc/TextureLavaFX.java +++ /dev/null @@ -1,99 +0,0 @@ -package codechicken.core.featurehack.mc; - -import codechicken.lib.colour.ColourRGBA; -import codechicken.lib.render.TextureFX; -import net.minecraft.util.MathHelper; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class TextureLavaFX extends TextureFX { - protected float[] field_76876_g = new float[256]; - protected float[] field_76878_h = new float[256]; - protected float[] field_76879_i = new float[256]; - protected float[] field_76877_j = new float[256]; - - public TextureLavaFX() { - super(16, "lava_still_fx"); - setup(); - } - - @Override - public void setup() { - super.setup(); - field_76876_g = new float[tileSizeSquare]; - field_76878_h = new float[tileSizeSquare]; - field_76879_i = new float[tileSizeSquare]; - field_76877_j = new float[tileSizeSquare]; - } - - public void onTick() { - int var2; - float var3; - int var5; - int var6; - int var7; - int var8; - int var9; - - for (int var1 = 0; var1 < tileSizeBase; ++var1) { - for (var2 = 0; var2 < tileSizeBase; ++var2) { - var3 = 0.0F; - int var4 = (int) (MathHelper.sin(var2 * (float) Math.PI * 2.0F / 16.0F) * 1.2F); - var5 = (int) (MathHelper.sin(var1 * (float) Math.PI * 2.0F / 16.0F) * 1.2F); - - for (var6 = var1 - 1; var6 <= var1 + 1; ++var6) { - for (var7 = var2 - 1; var7 <= var2 + 1; ++var7) { - var8 = var6 + var4 & tileSizeMask; - var9 = var7 + var5 & tileSizeMask; - var3 += this.field_76876_g[var8 + var9 * tileSizeBase]; - } - } - - this.field_76878_h[var1 + var2 * tileSizeBase] = var3 / 10.0F + (this.field_76879_i[(var1 + 0 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_76879_i[(var1 + 1 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_76879_i[(var1 + 1 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase] + this.field_76879_i[(var1 + 0 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase]) / 4.0F * 0.8F; - this.field_76879_i[var1 + var2 * tileSizeBase] += this.field_76877_j[var1 + var2 * tileSizeBase] * 0.01F; - - if (this.field_76879_i[var1 + var2 * tileSizeBase] < 0.0F) { - this.field_76879_i[var1 + var2 * tileSizeBase] = 0.0F; - } - - this.field_76877_j[var1 + var2 * tileSizeBase] -= 0.06F; - - if (Math.random() < 0.005D) { - this.field_76877_j[var1 + var2 * tileSizeBase] = 1.5F; - } - } - } - - float[] var11 = this.field_76878_h; - this.field_76878_h = this.field_76876_g; - this.field_76876_g = var11; - - for (var2 = 0; var2 < tileSizeSquare; ++var2) { - var3 = this.field_76876_g[var2] * 2.0F; - - if (var3 > 1.0F) { - var3 = 1.0F; - } - - if (var3 < 0.0F) { - var3 = 0.0F; - } - - var5 = (int) (var3 * 100.0F + 155.0F); - var6 = (int) (var3 * var3 * 255.0F); - var7 = (int) (var3 * var3 * var3 * var3 * 128.0F); - - if (this.anaglyphEnabled) { - var8 = (var5 * 30 + var6 * 59 + var7 * 11) / 100; - var9 = (var5 * 30 + var6 * 70) / 100; - int var10 = (var5 * 30 + var7 * 70) / 100; - var5 = var8; - var6 = var9; - var7 = var10; - } - - imageData[var2] = new ColourRGBA(var5, var6, var7, -1).argb(); - } - } -} diff --git a/dependencies/main/java/codechicken/core/featurehack/mc/TextureLavaFlowFX.java b/dependencies/main/java/codechicken/core/featurehack/mc/TextureLavaFlowFX.java deleted file mode 100644 index ac4ec30f78..0000000000 --- a/dependencies/main/java/codechicken/core/featurehack/mc/TextureLavaFlowFX.java +++ /dev/null @@ -1,116 +0,0 @@ -package codechicken.core.featurehack.mc; - -import codechicken.lib.colour.ColourRGBA; -import codechicken.lib.render.TextureFX; -import net.minecraft.util.MathHelper; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class TextureLavaFlowFX extends TextureFX { - protected float[] field_76871_g = new float[256]; - protected float[] field_76874_h = new float[256]; - protected float[] field_76875_i = new float[256]; - protected float[] field_76872_j = new float[256]; - int field_76873_k = 0; - - //shadow - public int tileSizeBase = 16; - public int tileSizeSquare = 256; - public int tileSizeMask = 15; - public int tileSizeSquareMask = 255; - - public TextureLavaFlowFX() { - super(32, "lava_flow_fx"); - } - - @Override - public void setup() { - super.setup(); - field_76871_g = new float[tileSizeSquare]; - field_76874_h = new float[tileSizeSquare]; - field_76875_i = new float[tileSizeSquare]; - field_76872_j = new float[tileSizeSquare]; - field_76873_k = 0; - } - - public void onTick() { - ++this.field_76873_k; - int var2; - float var3; - int var5; - int var6; - int var7; - int var8; - int var9; - - for (int var1 = 0; var1 < tileSizeBase; ++var1) { - for (var2 = 0; var2 < tileSizeBase; ++var2) { - var3 = 0.0F; - int var4 = (int) (MathHelper.sin(var2 * (float) Math.PI * 2.0F / 16.0F) * 1.2F); - var5 = (int) (MathHelper.sin(var1 * (float) Math.PI * 2.0F / 16.0F) * 1.2F); - - for (var6 = var1 - 1; var6 <= var1 + 1; ++var6) { - for (var7 = var2 - 1; var7 <= var2 + 1; ++var7) { - var8 = var6 + var4 & tileSizeMask; - var9 = var7 + var5 & tileSizeMask; - var3 += this.field_76871_g[var8 + var9 * tileSizeBase]; - } - } - - this.field_76874_h[var1 + var2 * tileSizeBase] = var3 / 10.0F + (this.field_76875_i[(var1 + 0 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_76875_i[(var1 + 1 & tileSizeMask) + (var2 + 0 & tileSizeMask) * tileSizeBase] + this.field_76875_i[(var1 + 1 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase] + this.field_76875_i[(var1 + 0 & tileSizeMask) + (var2 + 1 & tileSizeMask) * tileSizeBase]) / 4.0F * 0.8F; - this.field_76875_i[var1 + var2 * tileSizeBase] += this.field_76872_j[var1 + var2 * tileSizeBase] * 0.01F; - - if (this.field_76875_i[var1 + var2 * tileSizeBase] < 0.0F) { - this.field_76875_i[var1 + var2 * tileSizeBase] = 0.0F; - } - - this.field_76872_j[var1 + var2 * tileSizeBase] -= 0.06F; - - if (Math.random() < 0.005D) { - this.field_76872_j[var1 + var2 * tileSizeBase] = 1.5F; - } - } - } - - float[] var11 = this.field_76874_h; - this.field_76874_h = this.field_76871_g; - this.field_76871_g = var11; - - for (var2 = 0; var2 < tileSizeSquare; ++var2) { - var3 = this.field_76871_g[(var2 - this.field_76873_k / 3 * tileSizeBase) & tileSizeSquareMask] * 2.0F; - - if (var3 > 1.0F) { - var3 = 1.0F; - } - - if (var3 < 0.0F) { - var3 = 0.0F; - } - - var5 = (int) (var3 * 100.0F + 155.0F); - var6 = (int) (var3 * var3 * 255.0F); - var7 = (int) (var3 * var3 * var3 * var3 * 128.0F); - - if (this.anaglyphEnabled) { - var8 = (var5 * 30 + var6 * 59 + var7 * 11) / 100; - var9 = (var5 * 30 + var6 * 70) / 100; - int var10 = (var5 * 30 + var7 * 70) / 100; - var5 = var8; - var6 = var9; - var7 = var10; - } - - int px = var2 & tileSizeMask; - int py = var2 / tileSizeBase; - writeColour(px, py, var5, var6, var7, -1); - writeColour(px + 16, py, var5, var6, var7, -1); - writeColour(px, py + 16, var5, var6, var7, -1); - writeColour(px + 16, py + 16, var5, var6, var7, -1); - } - } - - private void writeColour(int px, int py, int var5, int var6, int var7, int var8) { - imageData[py * 32 + px] = new ColourRGBA(var5, var6, var7, var8).argb(); - } -} diff --git a/dependencies/main/java/codechicken/core/featurehack/mc/TextureWaterFX.java b/dependencies/main/java/codechicken/core/featurehack/mc/TextureWaterFX.java deleted file mode 100644 index 34311c7ed0..0000000000 --- a/dependencies/main/java/codechicken/core/featurehack/mc/TextureWaterFX.java +++ /dev/null @@ -1,114 +0,0 @@ -package codechicken.core.featurehack.mc; - -import codechicken.lib.colour.ColourRGBA; -import codechicken.lib.render.TextureFX; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class TextureWaterFX extends TextureFX { - /** - * red RGB value for water texture - */ - protected float[] red = new float[256]; - - /** - * green RGB value for water texture - */ - protected float[] green = new float[256]; - - /** - * blue RGB value for water texture - */ - protected float[] blue = new float[256]; - - /** - * alpha RGB value for water texture - */ - protected float[] alpha = new float[256]; - - public TextureWaterFX() { - super(16, "water_still_fx"); - setup(); - } - - @Override - public void setup() { - super.setup(); - red = new float[tileSizeSquare]; - green = new float[tileSizeSquare]; - blue = new float[tileSizeSquare]; - alpha = new float[tileSizeSquare]; - } - - public void onTick() { - int var1; - int var2; - float var3; - int var5; - int var6; - - for (var1 = 0; var1 < tileSizeBase; ++var1) { - for (var2 = 0; var2 < tileSizeBase; ++var2) { - var3 = 0.0F; - - for (int var4 = var1 - 1; var4 <= var1 + 1; ++var4) { - var5 = var4 & tileSizeMask; - var6 = var2 & tileSizeMask; - var3 += this.red[var5 + var6 * tileSizeBase]; - } - - this.green[var1 + var2 * tileSizeBase] = var3 / 3.3F + this.blue[var1 + var2 * tileSizeBase] * 0.8F; - } - } - - for (var1 = 0; var1 < tileSizeBase; ++var1) { - for (var2 = 0; var2 < tileSizeBase; ++var2) { - this.blue[var1 + var2 * tileSizeBase] += this.alpha[var1 + var2 * tileSizeBase] * 0.05F; - - if (this.blue[var1 + var2 * tileSizeBase] < 0.0F) { - this.blue[var1 + var2 * tileSizeBase] = 0.0F; - } - - this.alpha[var1 + var2 * tileSizeBase] -= 0.1F; - - if (Math.random() < 0.05D) { - this.alpha[var1 + var2 * tileSizeBase] = 0.5F; - } - } - } - - float[] var12 = this.green; - this.green = this.red; - this.red = var12; - - for (var2 = 0; var2 < tileSizeSquare; ++var2) { - var3 = this.red[var2]; - - if (var3 > 1.0F) { - var3 = 1.0F; - } - - if (var3 < 0.0F) { - var3 = 0.0F; - } - - float var13 = var3 * var3; - var5 = (int) (32.0F + var13 * 32.0F); - var6 = (int) (50.0F + var13 * 64.0F); - int var7 = 255; - int var8 = (int) (146.0F + var13 * 50.0F); - - if (this.anaglyphEnabled) { - int var9 = (var5 * 30 + var6 * 59 + var7 * 11) / 100; - int var10 = (var5 * 30 + var6 * 70) / 100; - int var11 = (var5 * 30 + var7 * 70) / 100; - var5 = var9; - var6 = var10; - var7 = var11; - } - - imageData[var2] = new ColourRGBA(var5, var6, var7, var8).argb(); - } - } -} diff --git a/dependencies/main/java/codechicken/core/featurehack/mc/TextureWaterFlowFX.java b/dependencies/main/java/codechicken/core/featurehack/mc/TextureWaterFlowFX.java deleted file mode 100644 index 56038a02ce..0000000000 --- a/dependencies/main/java/codechicken/core/featurehack/mc/TextureWaterFlowFX.java +++ /dev/null @@ -1,116 +0,0 @@ -package codechicken.core.featurehack.mc; - -import codechicken.lib.colour.ColourRGBA; -import codechicken.lib.render.TextureFX; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class TextureWaterFlowFX extends TextureFX { - protected float[] field_76880_g = new float[256]; - protected float[] field_76883_h = new float[256]; - protected float[] field_76884_i = new float[256]; - protected float[] field_76881_j = new float[256]; - private int tickCounter = 0; - - //shadow - public int tileSizeBase = 16; - public int tileSizeSquare = 256; - public int tileSizeMask = 15; - public int tileSizeSquareMask = 255; - - public TextureWaterFlowFX() { - super(32, "water_flow_fx"); - } - - @Override - public void setup() { - super.setup(); - field_76880_g = new float[tileSizeSquare]; - field_76883_h = new float[tileSizeSquare]; - field_76884_i = new float[tileSizeSquare]; - field_76881_j = new float[tileSizeSquare]; - tickCounter = 0; - } - - public void onTick() { - ++this.tickCounter; - int var1; - int var2; - float var3; - int var5; - int var6; - - for (var1 = 0; var1 < tileSizeBase; ++var1) { - for (var2 = 0; var2 < tileSizeBase; ++var2) { - var3 = 0.0F; - - for (int var4 = var2 - 2; var4 <= var2; ++var4) { - var5 = var1 & tileSizeMask; - var6 = var4 & tileSizeMask; - var3 += this.field_76880_g[var5 + var6 * tileSizeBase]; - } - - this.field_76883_h[var1 + var2 * tileSizeBase] = var3 / 3.2F + this.field_76884_i[var1 + var2 * tileSizeBase] * 0.8F; - } - } - - for (var1 = 0; var1 < tileSizeBase; ++var1) { - for (var2 = 0; var2 < tileSizeBase; ++var2) { - this.field_76884_i[var1 + var2 * tileSizeBase] += this.field_76881_j[var1 + var2 * tileSizeBase] * 0.05F; - - if (this.field_76884_i[var1 + var2 * tileSizeBase] < 0.0F) { - this.field_76884_i[var1 + var2 * tileSizeBase] = 0.0F; - } - - this.field_76881_j[var1 + var2 * tileSizeBase] -= 0.3F; - - if (Math.random() < 0.2D) { - this.field_76881_j[var1 + var2 * tileSizeBase] = 0.5F; - } - } - } - - float[] var12 = this.field_76883_h; - this.field_76883_h = this.field_76880_g; - this.field_76880_g = var12; - - for (var2 = 0; var2 < tileSizeSquare; ++var2) { - var3 = this.field_76880_g[var2 - this.tickCounter * tileSizeBase & tileSizeSquareMask]; - - if (var3 > 1.0F) { - var3 = 1.0F; - } - - if (var3 < 0.0F) { - var3 = 0.0F; - } - - float var13 = var3 * var3; - var5 = (int) (32.0F + var13 * 32.0F); - var6 = (int) (50.0F + var13 * 64.0F); - int var7 = 255; - int var8 = (int) (146.0F + var13 * 50.0F); - - if (this.anaglyphEnabled) { - int var9 = (var5 * 30 + var6 * 59 + var7 * 11) / 100; - int var10 = (var5 * 30 + var6 * 70) / 100; - int var11 = (var5 * 30 + var7 * 70) / 100; - var5 = var9; - var6 = var10; - var7 = var11; - } - - int px = var2 & tileSizeMask; - int py = var2 / tileSizeBase; - writeColour(px, py, var5, var6, var7, var8); - writeColour(px + 16, py, var5, var6, var7, var8); - writeColour(px, py + 16, var5, var6, var7, var8); - writeColour(px + 16, py + 16, var5, var6, var7, var8); - } - } - - private void writeColour(int px, int py, int var5, int var6, int var7, int var8) { - imageData[py * 32 + px] = new ColourRGBA(var5, var6, var7, var8).argb(); - } -} diff --git a/dependencies/main/java/codechicken/core/fluid/ExtendedFluidTank.java b/dependencies/main/java/codechicken/core/fluid/ExtendedFluidTank.java deleted file mode 100644 index e2c83b8d88..0000000000 --- a/dependencies/main/java/codechicken/core/fluid/ExtendedFluidTank.java +++ /dev/null @@ -1,108 +0,0 @@ -package codechicken.core.fluid; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidTankInfo; -import net.minecraftforge.fluids.IFluidTank; - -public class ExtendedFluidTank implements IFluidTank { - private FluidStack fluid; - private boolean changeType; - private int capacity; - - //TODO - public ExtendedFluidTank(FluidStack type, int capacity) { - if (type == null) { - fluid = new FluidStack(new Fluid("none", null, null), 0); - changeType = true; - } else { - fluid = FluidUtils.copy(type, 0); - } - this.capacity = capacity; - } - - public ExtendedFluidTank(int capacity) { - this(null, capacity); - } - - @Override - public FluidStack getFluid() { - return fluid.copy(); - } - - @Override - public int getCapacity() { - return capacity; - } - - public boolean canAccept(FluidStack type) { - return type == null || !type.getFluid().getName().equals("none") || (fluid.amount == 0 && changeType) || fluid.isFluidEqual(type); - } - - @Override - public int fill(FluidStack resource, boolean doFill) { - if (resource == null || resource.getFluid().getName().equals("none")) { - return 0; - } - - if (!canAccept(resource)) { - return 0; - } - - int tofill = Math.min(getCapacity() - fluid.amount, resource.amount); - if (doFill && tofill > 0) { - if (!fluid.isFluidEqual(resource)) { - fluid = FluidUtils.copy(resource, fluid.amount + tofill); - } else { - fluid.amount += tofill; - } - onLiquidChanged(); - } - - return tofill; - } - - @Override - public FluidStack drain(int maxDrain, boolean doDrain) { - if (fluid.amount == 0 || maxDrain <= 0) { - return null; - } - - int todrain = Math.min(maxDrain, fluid.amount); - if (doDrain && todrain > 0) { - fluid.amount -= todrain; - onLiquidChanged(); - } - return FluidUtils.copy(fluid, todrain); - } - - public FluidStack drain(FluidStack resource, boolean doDrain) { - if (resource == null || !resource.isFluidEqual(fluid)) { - return null; - } - - return drain(resource.amount, doDrain); - } - - public void onLiquidChanged() { - } - - public void fromTag(NBTTagCompound tag) { - fluid = FluidUtils.read(tag); - } - - public NBTTagCompound toTag() { - return FluidUtils.write(fluid, new NBTTagCompound()); - } - - @Override - public int getFluidAmount() { - return fluid.amount; - } - - @Override - public FluidTankInfo getInfo() { - return new FluidTankInfo(this); - } -} diff --git a/dependencies/main/java/codechicken/core/fluid/FluidUtils.java b/dependencies/main/java/codechicken/core/fluid/FluidUtils.java deleted file mode 100644 index bdcb289016..0000000000 --- a/dependencies/main/java/codechicken/core/fluid/FluidUtils.java +++ /dev/null @@ -1,92 +0,0 @@ -package codechicken.core.fluid; - -import codechicken.lib.inventory.InventoryUtils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.*; - -public class FluidUtils { - public static int B = FluidContainerRegistry.BUCKET_VOLUME; - public static FluidStack water = new FluidStack(FluidRegistry.WATER, 1000); - public static FluidStack lava = new FluidStack(FluidRegistry.LAVA, 1000); - - public static boolean fillTankWithContainer(IFluidHandler tank, EntityPlayer player) { - ItemStack stack = player.getCurrentEquippedItem(); - FluidStack liquid = FluidContainerRegistry.getFluidForFilledItem(stack); - - if (liquid == null) { - return false; - } - - if (tank.fill(null, liquid, false) != liquid.amount && !player.capabilities.isCreativeMode) { - return false; - } - - tank.fill(null, liquid, true); - - if (!player.capabilities.isCreativeMode) { - InventoryUtils.consumeItem(player.inventory, player.inventory.currentItem); - } - - player.inventoryContainer.detectAndSendChanges(); - return true; - } - - public static boolean emptyTankIntoContainer(IFluidHandler tank, EntityPlayer player, FluidStack tankLiquid) { - ItemStack stack = player.getCurrentEquippedItem(); - - if (!FluidContainerRegistry.isEmptyContainer(stack)) { - return false; - } - - ItemStack filled = FluidContainerRegistry.fillFluidContainer(tankLiquid, stack); - FluidStack liquid = FluidContainerRegistry.getFluidForFilledItem(filled); - - if (liquid == null || filled == null) { - return false; - } - - tank.drain(null, liquid.amount, true); - - if (!player.capabilities.isCreativeMode) { - if (stack.stackSize == 1) { - player.inventory.setInventorySlotContents(player.inventory.currentItem, filled); - } else if (player.inventory.addItemStackToInventory(filled)) { - stack.stackSize--; - } else { - return false; - } - } - - player.inventoryContainer.detectAndSendChanges(); - return true; - } - - public static FluidStack copy(FluidStack liquid, int quantity) { - liquid = liquid.copy(); - liquid.amount = quantity; - return liquid; - } - - public static FluidStack read(NBTTagCompound tag) { - FluidStack stack = FluidStack.loadFluidStackFromNBT(tag); - return stack != null ? stack : new FluidStack(new Fluid("none", null, null), 0); - } - - public static NBTTagCompound write(FluidStack fluid, NBTTagCompound tag) { - return fluid == null || fluid.getFluid() == null ? new NBTTagCompound() : fluid.writeToNBT(new NBTTagCompound()); - } - - public static int getLuminosity(FluidStack stack, double density) { - Fluid fluid = stack.getFluid(); - if (fluid == null) { - return 0; - } - int light = fluid.getLuminosity(stack); - if (fluid.isGaseous()) { - light = (int) (light * density); - } - return light; - } -} diff --git a/dependencies/main/java/codechicken/core/fluid/TankAccess.java b/dependencies/main/java/codechicken/core/fluid/TankAccess.java deleted file mode 100644 index e55d1972e8..0000000000 --- a/dependencies/main/java/codechicken/core/fluid/TankAccess.java +++ /dev/null @@ -1,27 +0,0 @@ -package codechicken.core.fluid; - -import net.minecraft.util.EnumFacing; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidHandler; - -public class TankAccess { - public IFluidHandler tank; - public EnumFacing face; - - public TankAccess(IFluidHandler tank, EnumFacing face) { - this.tank = tank; - this.face = face; - } - - public TankAccess(IFluidHandler tank, int side) { - this(tank, EnumFacing.values()[side]); - } - - public int fill(FluidStack resource, boolean doFill) { - return tank.fill(face, resource, doFill); - } - - public FluidStack drain(int maxDrain, boolean doDrain) { - return tank.drain(face, maxDrain, doDrain); - } -} diff --git a/dependencies/main/java/codechicken/core/gui/ClickCounter.java b/dependencies/main/java/codechicken/core/gui/ClickCounter.java deleted file mode 100644 index 76a423c4ef..0000000000 --- a/dependencies/main/java/codechicken/core/gui/ClickCounter.java +++ /dev/null @@ -1,55 +0,0 @@ -package codechicken.core.gui; - -import com.google.common.base.Objects; - -import java.util.Map; -import java.util.TreeMap; - -public class ClickCounter { - public class ClickCount { - public T clicked; - public long time; - public int count; - - public boolean update(T clicked) { - if (!Objects.equal(this.clicked, clicked)) { - this.clicked = clicked; - count = 0; - time = Long.MIN_VALUE; - return false; - } - return true; - } - } - - public Map buttons = new TreeMap(); - - public ClickCount getCount(int button) { - ClickCount c = buttons.get(button); - if (c == null) { - buttons.put(button, c = new ClickCount()); - } - return c; - } - - public void mouseDown(T clicked, int button) { - ClickCount c = getCount(button); - c.update(clicked); - } - - public int mouseUp(T clicked, int button) { - ClickCount c = getCount(button); - if (!c.update(clicked)) { - return 0; - } - - long time = System.currentTimeMillis(); - if (time - c.time < 500) { - c.count++; - } else { - c.count = 1; - } - c.time = time; - return c.count; - } -} diff --git a/dependencies/main/java/codechicken/core/gui/GuiCCButton.java b/dependencies/main/java/codechicken/core/gui/GuiCCButton.java deleted file mode 100644 index c72046c4a3..0000000000 --- a/dependencies/main/java/codechicken/core/gui/GuiCCButton.java +++ /dev/null @@ -1,77 +0,0 @@ -package codechicken.core.gui; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.ResourceLocation; - -public class GuiCCButton extends GuiWidget { - public String text; - public String actionCommand; - private boolean isEnabled = true; - public boolean visible = true; - - public GuiCCButton(int x, int y, int width, int height, String text) { - super(x, y, width, height); - this.text = text; - } - - public void setText(String s) { - text = s; - } - - public boolean isEnabled() { - return isEnabled; - } - - public void setEnabled(boolean b) { - isEnabled = b; - } - - @Override - public void mouseClicked(int x, int y, int button) { - if (isEnabled && pointInside(x, y) && actionCommand != null) { - sendAction(actionCommand, button); - Minecraft.getMinecraft().getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); - } - } - - @Override - public void draw(int mousex, int mousey, float frame) { - if (!visible) { - return; - } - - drawButtonTex(mousex, mousey); - if (text != null) { - drawText(mousex, mousey); - } - } - - public void drawButtonTex(int mousex, int mousey) { - GlStateManager.color(1, 1, 1, 1); - renderEngine.bindTexture(guiTex); - int state = getButtonTex(mousex, mousey); - drawTexturedModalRect(x, y, 0, 46 + state * 20, width / 2, height / 2);//top left - drawTexturedModalRect(x + width / 2, y, 200 - width / 2, 46 + state * 20, width / 2, height / 2);//top right - drawTexturedModalRect(x, y + height / 2, 0, 46 + state * 20 + 20 - height / 2, width / 2, height / 2);//bottom left - drawTexturedModalRect(x + width / 2, y + height / 2, 200 - width / 2, 46 + state * 20 + 20 - height / 2, width / 2, height / 2);//bottom right - } - - public int getButtonTex(int mousex, int mousey) { - return !isEnabled ? 0 : pointInside(mousex, mousey) ? 2 : 1; - } - - public void drawText(int mousex, int mousey) { - drawCenteredString(fontRenderer, text, x + width / 2, y + (height - 8) / 2, getTextColour(mousex, mousey)); - } - - public int getTextColour(int mousex, int mousey) { - return !isEnabled ? 0xFFA0A0A0 : pointInside(mousex, mousey) ? 0xFFFFFFA0 : 0xFFE0E0E0; - } - - public GuiCCButton setActionCommand(String string) { - actionCommand = string; - return this; - } -} diff --git a/dependencies/main/java/codechicken/core/gui/GuiCCTextField.java b/dependencies/main/java/codechicken/core/gui/GuiCCTextField.java deleted file mode 100644 index b1097db368..0000000000 --- a/dependencies/main/java/codechicken/core/gui/GuiCCTextField.java +++ /dev/null @@ -1,175 +0,0 @@ -package codechicken.core.gui; - -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.util.ChatAllowedCharacters; -import org.lwjgl.input.Keyboard; - -public class GuiCCTextField extends GuiWidget { - private String text; - private boolean isFocused; - private boolean isEnabled; - - public int maxStringLength; - public int cursorCounter; - public String actionCommand; - - private String allowedCharacters; - - public GuiCCTextField(int x, int y, int width, int height, String text) { - super(x, y, width, height); - isFocused = false; - isEnabled = true; - this.text = text; - } - - public GuiCCTextField setActionCommand(String s) { - actionCommand = s; - return this; - } - - public void setText(String s) { - if (s.equals(text)) { - return; - } - - String oldText = text; - text = s; - onTextChanged(oldText); - } - - public void onTextChanged(String oldText) { - } - - public final String getText() { - return text; - } - - public final boolean isEnabled() { - return isEnabled; - } - - public void setEnabled(boolean b) { - isEnabled = b; - if (!isEnabled && isFocused) { - setFocused(false); - } - } - - public final boolean isFocused() { - return isFocused; - } - - @Override - public void update() { - cursorCounter++; - } - - @Override - public void keyTyped(char c, int keycode) { - if (!isEnabled || !isFocused) { - return; - } - - /*if(c == '\t')//tab - { - parentGuiScreen.selectNextField(); - }*/ - if (c == '\026')//paste - { - String s = GuiScreen.getClipboardString(); - if (s == null || s.equals("")) { - return; - } - - for (int i = 0; i < s.length(); i++) { - if (text.length() == maxStringLength) { - return; - } - - char tc = s.charAt(i); - if (canAddChar(tc)) { - setText(text + tc); - } - } - } - if (keycode == Keyboard.KEY_RETURN) { - setFocused(false); - sendAction(actionCommand, getText()); - } - - if (keycode == Keyboard.KEY_BACK && text.length() > 0) { - setText(text.substring(0, text.length() - 1)); - } - - if ((text.length() < maxStringLength || maxStringLength == 0) && canAddChar(c)) { - setText(text + c); - } - } - - public boolean canAddChar(char c) { - return allowedCharacters == null ? ChatAllowedCharacters.isAllowedCharacter(c) : allowedCharacters.indexOf(c) >= 0; - } - - @Override - public void mouseClicked(int x, int y, int button) { - if (isEnabled && pointInside(x, y)) { - setFocused(true); - if (button == 1) { - setText(""); - } - } else { - setFocused(false); - } - } - - public void setFocused(boolean focus) { - if (focus == isFocused) { - return; - } - isFocused = focus; - onFocusChanged(); - } - - public void onFocusChanged() { - if (isFocused) { - cursorCounter = 0; - } - } - - @Override - public void draw(int i, int j, float f) { - drawBackground(); - drawText(); - } - - public void drawBackground() { - drawRect(x - 1, y - 1, x + width + 1, y + height + 1, 0xffa0a0a0); - drawRect(x, y, x + width, y + height, 0xff000000); - } - - public String getDrawText() { - String s = getText(); - if (isEnabled && isFocused && (cursorCounter / 6) % 2 == 0) { - s += "_"; - } - return s; - } - - public void drawText() { - drawString(fontRenderer, getDrawText(), x + 4, y + height / 2 - 4, getTextColour()); - } - - public int getTextColour() { - return isEnabled ? 0xe0e0e0 : 0x707070; - } - - public GuiCCTextField setMaxStringLength(int i) { - maxStringLength = i; - return this; - } - - public GuiCCTextField setAllowedCharacters(String s) { - allowedCharacters = s; - return this; - } -} diff --git a/dependencies/main/java/codechicken/core/gui/GuiScreenWidget.java b/dependencies/main/java/codechicken/core/gui/GuiScreenWidget.java deleted file mode 100644 index ab1c33d860..0000000000 --- a/dependencies/main/java/codechicken/core/gui/GuiScreenWidget.java +++ /dev/null @@ -1,139 +0,0 @@ -package codechicken.core.gui; - -import codechicken.lib.gui.GuiDraw; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; -import org.lwjgl.input.Mouse; - -import java.awt.*; -import java.io.IOException; -import java.util.ArrayList; - -public class GuiScreenWidget extends GuiScreen implements IGuiActionListener { - public ArrayList widgets = new ArrayList(); - public int xSize, ySize, guiTop, guiLeft; - - public GuiScreenWidget() { - this(176, 166); - } - - public GuiScreenWidget(int xSize, int ySize) { - super(); - this.xSize = xSize; - this.ySize = ySize; - } - - @Override - public void initGui() { - guiTop = (height - ySize) / 2; - guiLeft = (width - xSize) / 2; - if (!widgets.isEmpty()) { - resize(); - } - } - - public void reset() { - widgets.clear(); - initGui(); - addWidgets(); - resize(); - } - - @Override - public void setWorldAndResolution(Minecraft mc, int i, int j) { - boolean init = this.mc == null; - super.setWorldAndResolution(mc, i, j); - if (init) { - addWidgets(); - resize(); - } - } - - public void add(GuiWidget widget) { - widgets.add(widget); - widget.onAdded(this); - } - - @Override - public void drawScreen(int mousex, int mousey, float f) { - GlStateManager.translate(guiLeft, guiTop, 0); - drawBackground(); - for (GuiWidget widget : widgets) { - widget.draw(mousex - guiLeft, mousey - guiTop, f); - } - drawForeground(); - GlStateManager.translate(-guiLeft, -guiTop, 0); - } - - public void drawBackground() { - } - - public void drawForeground() { - } - - @Override - protected void mouseClicked(int x, int y, int button) throws IOException { - super.mouseClicked(x, y, button); - for (GuiWidget widget : widgets) { - widget.mouseClicked(x - guiLeft, y - guiTop, button); - } - } - - @Override - protected void mouseReleased(int x, int y, int button) { - super.mouseReleased(x, y, button); - for (GuiWidget widget : widgets) { - widget.mouseReleased(x - guiLeft, y - guiTop, button); - } - } - - @Override - protected void mouseClickMove(int x, int y, int button, long time) { - super.mouseClickMove(x, y, button, time); - for (GuiWidget widget : widgets) { - widget.mouseDragged(x - guiLeft, y - guiTop, button, time); - } - } - - @Override - public void updateScreen() { - super.updateScreen(); - if (mc.currentScreen == this) { - for (GuiWidget widget : widgets) { - widget.update(); - } - } - } - - @Override - public void keyTyped(char c, int keycode) throws IOException { - super.keyTyped(c, keycode); - for (GuiWidget widget : widgets) { - widget.keyTyped(c, keycode); - } - } - - @Override - public void handleMouseInput() throws IOException { - super.handleMouseInput(); - int i = Mouse.getEventDWheel(); - if (i != 0) { - Point p = GuiDraw.getMousePosition(); - int scroll = i > 0 ? 1 : -1; - for (GuiWidget widget : widgets) { - widget.mouseScrolled(p.x, p.y, scroll); - } - } - } - - @Override - public void actionPerformed(String ident, Object... params) { - } - - public void resize() { - } - - public void addWidgets() { - } -} diff --git a/dependencies/main/java/codechicken/core/gui/GuiScrollPane.java b/dependencies/main/java/codechicken/core/gui/GuiScrollPane.java deleted file mode 100644 index 764c7fd79d..0000000000 --- a/dependencies/main/java/codechicken/core/gui/GuiScrollPane.java +++ /dev/null @@ -1,221 +0,0 @@ -package codechicken.core.gui; - -import codechicken.lib.math.MathHelper; -import codechicken.lib.vec.Rectangle4i; - -import java.awt.*; - -public abstract class GuiScrollPane extends GuiWidget { - protected int scrollclicky = -1; - protected float scrollpercent; - protected int scrollmousey; - protected float percentscrolled; - - public int marginleft; - public int margintop; - public int marginright; - public int marginbottom; - - public GuiScrollPane(int x, int y, int width, int height) { - super(x, y, width, height); - } - - public void setMargins(int left, int top, int right, int bottom) { - marginleft = left; - margintop = top; - marginright = right; - marginbottom = bottom; - } - - public Rectangle windowBounds() { - return new Rectangle(x + marginleft, y + margintop, width - marginleft - marginright, height - margintop - marginbottom); - } - - public abstract int contentHeight(); - - public Dimension scrollbarDim() { - int h = (int) ((windowBounds().getHeight() / contentHeight()) * height); - return new Dimension(5, h > height ? height : h < height / 15 ? height / 15 : h); - } - - public Rectangle scrollbarBounds() { - Dimension dim = scrollbarDim(); - return new Rectangle(x + width - dim.width, y + (int) ((height - dim.height) * percentscrolled + 0.4999), dim.width, dim.height); - } - - public void scrollUp() { - scroll(-5); - } - - public void scrollDown() { - scroll(5); - } - - public void scroll(int i) { - percentscrolled += i * height / (float) (2 * contentHeight()); - calculatePercentScrolled(); - } - - public void calculatePercentScrolled() { - int barempty = height - scrollbarDim().height; - if (isScrolling()) { - int scrolldiff = scrollmousey - scrollclicky; - percentscrolled = scrolldiff / (float) barempty + scrollpercent; - } - percentscrolled = (float) MathHelper.clip(percentscrolled, 0, 1); - } - - public boolean isScrolling() { - return scrollclicky >= 0; - } - - public boolean hasScrollbar() { - return contentHeight() > height; - } - - /** - * @return -1 for left, 0 for none, 1 for right - */ - public int scrollbarGuideAlignment() { - return -1; - } - - public void showSlot(int sloty, int slotHeight) { - Rectangle w = windowBounds(); - if (sloty + slotHeight > w.y + w.height) { - int diff = sloty - (w.y + w.height - slotHeight); - percentscrolled += diff / (double) (contentHeight() - w.height); - calculatePercentScrolled(); - } else if (sloty < w.y) { - int diff = w.y - sloty; - percentscrolled -= diff / (double) (contentHeight() - w.height); - calculatePercentScrolled(); - } - } - - @Override - public void mouseClicked(int mx, int my, int button) { - Rectangle sbar = scrollbarBounds(); - Rectangle w = windowBounds(); - int barempty = height - sbar.height; - - if (button == 0 && - sbar.height < height && //the scroll bar can move (not full length) - mx >= sbar.x && mx <= sbar.x + sbar.width && - my >= y && my <= y + height)//in the scroll pane - { - if (my < sbar.y) { - percentscrolled = (my - y) / (float) barempty; - calculatePercentScrolled(); - } else if (my > sbar.y + sbar.height) { - percentscrolled = (my - y - sbar.height + 1) / (float) barempty; - calculatePercentScrolled(); - } else { - scrollclicky = my; - scrollpercent = percentscrolled; - scrollmousey = my; - } - } else if (w.contains(mx, my)) { - slotDown(mx - w.x, my - w.y + scrolledPixels(), button); - } - } - - /** - * Mouse down on slot area - * Coordinates relative to slot content area - */ - public void slotDown(int mx, int my, int button) { - } - - /** - * Mouse up on slot area - * Coordinates relative to slot content area - */ - public void slotUp(int mx, int my, int button) { - } - - @Override - public void mouseReleased(int mx, int my, int button) { - Rectangle w = windowBounds(); - if (isScrolling() && button == 0)//we were scrolling and we released mouse - { - scrollclicky = -1; - } else if (w.contains(mx, my)) { - slotUp(mx - w.x, my - w.y + scrolledPixels(), button); - } - } - - @Override - public void mouseDragged(int mousex, int mousey, int button, long time) { - if (isScrolling()) { - int scrolldiff = mousey - scrollclicky; - int sbarh = scrollbarDim().height; - int barupallowed = (int) ((height - sbarh) * scrollpercent + 0.5); - int bardownallowed = (height - sbarh) - barupallowed; - - if (-scrolldiff > barupallowed) { - scrollmousey = scrollclicky - barupallowed; - } else if (scrolldiff > bardownallowed) { - scrollmousey = scrollclicky + bardownallowed; - } else { - scrollmousey = mousey; - } - - calculatePercentScrolled(); - } - } - - public int scrolledPixels() { - int scrolled = (int) ((contentHeight() - windowBounds().height) * percentscrolled + 0.5); - if (scrolled < 0) { - scrolled = 0; - } - return scrolled; - } - - public Rectangle4i bounds() { - return new Rectangle4i(x, y, width, height); - } - - public boolean contains(int mx, int my) { - return bounds().contains(mx, my); - } - - @Override - public void draw(int mx, int my, float frame) { - Rectangle w = windowBounds(); - drawBackground(frame); - drawContent(mx - w.x, my + scrolledPixels() - w.y, frame); - drawOverlay(frame); - drawScrollbar(frame); - } - - public void drawBackground(float frame) { - drawRect(x, y, x + width, y + height, 0xff000000); - } - - public abstract void drawContent(int mx, int my, float frame); - - public void drawOverlay(float frame) { - //outlines - drawRect(x, y - 1, x + width, y, 0xffa0a0a0);//top - drawRect(x, y + height, x + width, y + height + 1, 0xffa0a0a0);//bottom - drawRect(x - 1, y - 1, x, y + height + 1, 0xffa0a0a0);//left - drawRect(x + width, y - 1, x + width + 1, y + height + 1, 0xffa0a0a0);//right - } - - public void drawScrollbar(float frame) { - Rectangle r = scrollbarBounds(); - - drawRect(r.x, r.y, r.x + r.width, r.y + r.height, 0xFF8B8B8B);//corners - drawRect(r.x, r.y, r.x + r.width - 1, r.y + r.height - 1, 0xFFF0F0F0);//topleft up - drawRect(r.x + 1, r.y + 1, r.x + r.width, r.y + r.height, 0xFF555555);//bottom right down - drawRect(r.x + 1, r.y + 1, r.x + r.width - 1, r.y + r.height - 1, 0xFFC6C6C6);//scrollbar - - int algn = scrollbarGuideAlignment(); - if (algn != 0) { - drawRect(algn > 0 ? r.x + r.width : r.x - 1, y, r.x, y + height, 0xFF808080);//lineguide - } - } - -} diff --git a/dependencies/main/java/codechicken/core/gui/GuiScrollSlot.java b/dependencies/main/java/codechicken/core/gui/GuiScrollSlot.java deleted file mode 100644 index f33f315dfb..0000000000 --- a/dependencies/main/java/codechicken/core/gui/GuiScrollSlot.java +++ /dev/null @@ -1,169 +0,0 @@ -package codechicken.core.gui; - -import org.lwjgl.input.Keyboard; - -import java.awt.*; - -public abstract class GuiScrollSlot extends GuiScrollPane { - protected String actionCommand; - public boolean focused; - protected ClickCounter click = new ClickCounter(); - public boolean smoothScroll = true; - - public GuiScrollSlot(int x, int y, int width, int height) { - super(x, y, width, height); - setMargins(3, 2, 3, 2); - } - - public GuiScrollSlot setActionCommand(String s) { - actionCommand = s; - return this; - } - - public void setSmoothScroll(boolean b) { - smoothScroll = b; - } - - public abstract int getSlotHeight(int slot); - - protected abstract int getNumSlots(); - - public void selectNext() { - } - - public void selectPrev() { - } - - /** - * Coordinates are relative to slot area - */ - protected abstract void slotClicked(int slot, int button, int mx, int my, int count); - - protected abstract void drawSlot(int slot, int x, int y, int mx, int my, float frame); - - protected void unfocus() { - } - - public void setFocused(boolean focus) { - focused = focus; - if (!focused) { - unfocus(); - } - } - - @Override - public int contentHeight() { - return getSlotY(getNumSlots()); - } - - public int getSlotY(int slot) { - int h = 0; - for (int i = 0; i < slot; i++) { - h += getSlotHeight(i); - } - return h; - } - - public int getSlot(int my) { - if (my < 0) { - return -1; - } - - int y = 0; - for (int i = 0; i < getNumSlots(); i++) { - int h = getSlotHeight(i); - if (my >= y && my < y + h) { - return i; - } - y += h; - } - return -1; - } - - public int getClickedSlot(int my) { - return getSlot(my - windowBounds().y + scrolledPixels()); - } - - @Override - public int scrolledPixels() { - int scrolled = super.scrolledPixels(); - if (!smoothScroll) { - int slot = getSlot(scrolled); - int sloty = getSlotY(slot); - int sloth = getSlotHeight(slot); - scrolled = sloty + (int) ((scrolled - sloty) / (double) sloth + 0.5) * sloth; - } - return scrolled; - } - - /** - * @return -1 for left, 1 for right - */ - public int scrollbarAlignment() { - return 1; - } - - @Override - public int scrollbarGuideAlignment() { - return scrollbarAlignment(); - } - - @Override - public Rectangle scrollbarBounds() { - Rectangle r = super.scrollbarBounds(); - if (scrollbarAlignment() == -1) { - r.x = x; - } - return r; - } - - public void showSlot(int slot) { - showSlot(getSlotY(slot), getSlotHeight(slot)); - } - - @Override - public void slotDown(int mx, int my, int button) { - int slot = getSlot(my); - click.mouseDown(slot >= 0 ? slot : null, button); - } - - @Override - public void slotUp(int mx, int my, int button) { - int slot = getSlot(my); - int c = click.mouseUp(slot >= 0 ? slot : null, button); - if (c > 0 && slot >= 0) { - slotClicked(slot, button, mx, my - getSlotY(slot), c); - } - } - - @Override - public void keyTyped(char c, int keycode) { - if (!focused) { - return; - } - - if (keycode == Keyboard.KEY_UP) { - selectPrev(); - } - if (keycode == Keyboard.KEY_DOWN) { - selectNext(); - } - if (keycode == Keyboard.KEY_RETURN && actionCommand != null) { - sendAction(actionCommand); - } - } - - @Override - public void drawContent(int mx, int my, float frame) { - int scrolled = scrolledPixels(); - Rectangle w = windowBounds(); - int y = 0; - for (int slot = 0; slot < getNumSlots(); slot++) { - int h = getSlotHeight(slot); - if (y + h > scrolled && y < scrolled + w.height) { - drawSlot(slot, w.x, w.y + y - scrolledPixels(), mx, my - y, frame); - } - y += h; - } - } -} diff --git a/dependencies/main/java/codechicken/core/gui/GuiWidget.java b/dependencies/main/java/codechicken/core/gui/GuiWidget.java deleted file mode 100644 index ed4905fe95..0000000000 --- a/dependencies/main/java/codechicken/core/gui/GuiWidget.java +++ /dev/null @@ -1,74 +0,0 @@ -package codechicken.core.gui; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.util.ResourceLocation; - -public class GuiWidget extends Gui { - protected static final ResourceLocation guiTex = new ResourceLocation("textures/gui/widgets.png"); - - public GuiScreen parentScreen; - public TextureManager renderEngine; - public FontRenderer fontRenderer; - - public int x; - public int y; - public int width; - public int height; - - public GuiWidget(int x, int y, int width, int height) { - setSize(x, y, width, height); - } - - public void setSize(int x, int y, int width, int height) { - this.x = x; - this.y = y; - this.width = width; - this.height = height; - } - - public boolean pointInside(int px, int py) { - return px >= x && px < x + width && py >= y && py < y + height; - } - - public void sendAction(String actionCommand, Object... params) { - sendAction(parentScreen, actionCommand, params); - } - - public static void sendAction(GuiScreen screen, String actionCommand, Object... params) { - if (actionCommand != null && screen instanceof IGuiActionListener) { - ((IGuiActionListener) screen).actionPerformed(actionCommand, params); - } - } - - public void mouseClicked(int x, int y, int button) { - } - - public void mouseReleased(int x, int y, int button) { - } - - public void mouseDragged(int x, int y, int button, long time) { - } - - public void update() { - } - - public void draw(int mousex, int mousey, float frame) { - } - - public void keyTyped(char c, int keycode) { - } - - public void mouseScrolled(int x, int y, int scroll) { - } - - public void onAdded(GuiScreen s) { - Minecraft mc = Minecraft.getMinecraft(); - parentScreen = s; - renderEngine = mc.renderEngine; - fontRenderer = mc.fontRendererObj; - } -} diff --git a/dependencies/main/java/codechicken/core/gui/IGuiActionListener.java b/dependencies/main/java/codechicken/core/gui/IGuiActionListener.java deleted file mode 100644 index 3504f10691..0000000000 --- a/dependencies/main/java/codechicken/core/gui/IGuiActionListener.java +++ /dev/null @@ -1,5 +0,0 @@ -package codechicken.core.gui; - -public interface IGuiActionListener { - public void actionPerformed(String actionCommand, Object... params); -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/core/internal/CCCEventHandler.java b/dependencies/main/java/codechicken/core/internal/CCCEventHandler.java deleted file mode 100644 index 885570217c..0000000000 --- a/dependencies/main/java/codechicken/core/internal/CCCEventHandler.java +++ /dev/null @@ -1,39 +0,0 @@ -package codechicken.core.internal; - -import codechicken.core.CCUpdateChecker; -import codechicken.core.GuiModListScroll; -import net.minecraftforge.client.event.GuiScreenEvent; -import net.minecraftforge.fml.client.GuiModList; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent.Phase; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class CCCEventHandler { - public static int renderTime; - public static float renderFrame; - - @SubscribeEvent - public void clientTick(TickEvent.ClientTickEvent event) { - if (event.phase == Phase.END) { - CCUpdateChecker.tick(); - renderTime++; - } - } - - @SubscribeEvent - public void renderTick(TickEvent.RenderTickEvent event) { - if (event.phase == Phase.START) { - renderFrame = event.renderTickTime; - } - } - - @SubscribeEvent - @SideOnly(Side.CLIENT) - public void posGuiRender(GuiScreenEvent.DrawScreenEvent.Post event) { - if (event.gui instanceof GuiModList) { - GuiModListScroll.draw((GuiModList) event.gui, event.mouseX, event.mouseY); - } - } -} diff --git a/dependencies/main/java/codechicken/core/inventory/ContainerExtended.java b/dependencies/main/java/codechicken/core/inventory/ContainerExtended.java deleted file mode 100644 index 952cf62b97..0000000000 --- a/dependencies/main/java/codechicken/core/inventory/ContainerExtended.java +++ /dev/null @@ -1,250 +0,0 @@ -package codechicken.core.inventory; - -import codechicken.lib.packet.PacketCustom; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -import java.util.Arrays; -import java.util.LinkedList; -import java.util.List; - -public abstract class ContainerExtended extends Container implements ICrafting { - public LinkedList playerCrafters = new LinkedList(); - - public ContainerExtended() { - crafters.add(this); - } - - @Override - public void onCraftGuiOpened(ICrafting icrafting) { - if (icrafting instanceof EntityPlayerMP) { - playerCrafters.add((EntityPlayerMP) icrafting); - sendContainerAndContentsToPlayer(this, getInventory(), Arrays.asList((EntityPlayerMP) icrafting)); - detectAndSendChanges(); - } else { - super.onCraftGuiOpened(icrafting); - } - } - - @Override - public void removeCraftingFromCrafters(ICrafting icrafting) { - if (icrafting instanceof EntityPlayerMP) { - playerCrafters.remove(icrafting); - } else { - super.removeCraftingFromCrafters(icrafting); - } - } - - @Override - public void updateCraftingInventory(Container container, List list) { - sendContainerAndContentsToPlayer(container, list, playerCrafters); - } - - @Override - public void sendAllWindowProperties(Container p_175173_1_, IInventory p_175173_2_) { - } - - public void sendContainerAndContentsToPlayer(Container container, List list, List playerCrafters) { - LinkedList largeStacks = new LinkedList(); - for (int i = 0; i < list.size(); i++) { - ItemStack stack = list.get(i); - if (stack != null && stack.stackSize > Byte.MAX_VALUE) { - list.set(i, null); - largeStacks.add(stack); - } else { - largeStacks.add(null); - } - } - - for (EntityPlayerMP player : playerCrafters) { - player.updateCraftingInventory(container, list); - } - - for (int i = 0; i < largeStacks.size(); i++) { - ItemStack stack = largeStacks.get(i); - if (stack != null) { - sendLargeStack(stack, i, playerCrafters); - } - } - } - - public void sendLargeStack(ItemStack stack, int slot, List players) { - } - - @Override - public void sendProgressBarUpdate(Container container, int i, int j) { - for (EntityPlayerMP player : playerCrafters) { - player.sendProgressBarUpdate(container, i, j); - } - } - - @Override - public void sendSlotContents(Container container, int slot, ItemStack stack) { - if (stack != null && stack.stackSize > Byte.MAX_VALUE) { - sendLargeStack(stack, slot, playerCrafters); - } else { - for (EntityPlayerMP player : playerCrafters) { - player.sendSlotContents(container, slot, stack); - } - } - } - - @Override - public ItemStack slotClick(int par1, int par2, int par3, EntityPlayer player) { - if (par1 >= 0 && par1 < inventorySlots.size()) { - Slot slot = getSlot(par1); - if (slot instanceof SlotHandleClicks) { - return ((SlotHandleClicks) slot).slotClick(this, player, par2, par3); - } - } - return super.slotClick(par1, par2, par3, player); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int slotIndex) { - ItemStack transferredStack = null; - Slot slot = (Slot) inventorySlots.get(slotIndex); - - if (slot != null && slot.getHasStack()) { - ItemStack stack = slot.getStack(); - transferredStack = stack.copy(); - - if (!doMergeStackAreas(slotIndex, stack)) { - return null; - } - - if (stack.stackSize == 0) { - slot.putStack(null); - } else { - slot.onSlotChanged(); - } - } - - return transferredStack; - } - - @Override - public boolean mergeItemStack(ItemStack stack, int startIndex, int endIndex, boolean reverse) { - boolean merged = false; - int slotIndex = reverse ? endIndex - 1 : startIndex; - - if (stack == null) { - return false; - } - - if (stack.isStackable())//search for stacks to increase - { - while (stack.stackSize > 0 && (reverse ? slotIndex >= startIndex : slotIndex < endIndex)) { - Slot slot = (Slot) inventorySlots.get(slotIndex); - ItemStack slotStack = slot.getStack(); - - if (slotStack != null && slotStack.getItem() == stack.getItem() && - (!stack.getHasSubtypes() || stack.getItemDamage() == slotStack.getItemDamage()) && - ItemStack.areItemStackTagsEqual(stack, slotStack)) { - int totalStackSize = slotStack.stackSize + stack.stackSize; - int maxStackSize = Math.min(stack.getMaxStackSize(), slot.getSlotStackLimit()); - if (totalStackSize <= maxStackSize) { - stack.stackSize = 0; - slotStack.stackSize = totalStackSize; - slot.onSlotChanged(); - merged = true; - } else if (slotStack.stackSize < maxStackSize) { - stack.stackSize -= maxStackSize - slotStack.stackSize; - slotStack.stackSize = maxStackSize; - slot.onSlotChanged(); - merged = true; - } - } - - slotIndex += reverse ? -1 : 1; - } - } - - if (stack.stackSize > 0)//normal transfer :) - { - slotIndex = reverse ? endIndex - 1 : startIndex; - - while (stack.stackSize > 0 && (reverse ? slotIndex >= startIndex : slotIndex < endIndex)) { - Slot slot = (Slot) this.inventorySlots.get(slotIndex); - - if (!slot.getHasStack() && slot.isItemValid(stack)) { - int maxStackSize = Math.min(stack.getMaxStackSize(), slot.getSlotStackLimit()); - if (stack.stackSize <= maxStackSize) { - slot.putStack(stack.copy()); - slot.onSlotChanged(); - stack.stackSize = 0; - merged = true; - } else { - slot.putStack(stack.splitStack(maxStackSize)); - slot.onSlotChanged(); - merged = true; - } - } - - slotIndex += reverse ? -1 : 1; - } - } - - return merged; - } - - public boolean doMergeStackAreas(int slotIndex, ItemStack stack) { - return false; - } - - protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) { - bindPlayerInventory(inventoryPlayer, 8, 84); - } - - protected void bindPlayerInventory(InventoryPlayer inventoryPlayer, int x, int y) { - for (int row = 0; row < 3; row++) { - for (int col = 0; col < 9; col++) { - addSlotToContainer(new Slot(inventoryPlayer, col + row * 9 + 9, x + col * 18, y + row * 18)); - } - } - for (int slot = 0; slot < 9; slot++) { - addSlotToContainer(new Slot(inventoryPlayer, slot, x + slot * 18, y + 58)); - } - } - - @Override - public boolean canInteractWith(EntityPlayer var1) { - return true; - } - - public void sendContainerPacket(PacketCustom packet) { - for (EntityPlayerMP player : playerCrafters) { - packet.sendToPlayer(player); - } - } - - /** - * May be called from a client packet handler to handle additional info - */ - public void handleOutputPacket(PacketCustom packet) { - } - - /** - * May be called from a server packet handler to handle additional info - */ - public void handleInputPacket(PacketCustom packet) { - } - - /** - * May be called from a server packet handler to handle client input - */ - public void handleGuiChange(int ID, int value) { - } - - public void sendProgressBarUpdate(int barID, int value) { - for (ICrafting crafting : (List) crafters) { - crafting.sendProgressBarUpdate(this, barID, value); - } - } -} diff --git a/dependencies/main/java/codechicken/core/inventory/ContainerSynchronised.java b/dependencies/main/java/codechicken/core/inventory/ContainerSynchronised.java deleted file mode 100644 index 4a0bf5b7c1..0000000000 --- a/dependencies/main/java/codechicken/core/inventory/ContainerSynchronised.java +++ /dev/null @@ -1,60 +0,0 @@ -package codechicken.core.inventory; - -import codechicken.lib.packet.PacketCustom; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public abstract class ContainerSynchronised extends ContainerExtended { - private ArrayList syncVars = new ArrayList(); - - public abstract PacketCustom createSyncPacket(); - - @Override - public final void detectAndSendChanges() { - super.detectAndSendChanges(); - - for (int i = 0; i < syncVars.size(); i++) { - IContainerSyncVar var = syncVars.get(i); - if (var.changed()) { - PacketCustom packet = createSyncPacket(); - packet.writeByte(i); - var.writeChange(packet); - sendContainerPacket(packet); - var.reset(); - } - } - } - - @Override - public void sendContainerAndContentsToPlayer(Container container, List list, List playerCrafters) { - super.sendContainerAndContentsToPlayer(container, list, playerCrafters); - for (int i = 0; i < syncVars.size(); i++) { - IContainerSyncVar var = syncVars.get(i); - PacketCustom packet = createSyncPacket(); - packet.writeByte(i); - var.writeChange(packet); - var.reset(); - for (EntityPlayerMP player : playerCrafters) { - packet.sendToPlayer(player); - } - } - } - - public void addSyncVar(IContainerSyncVar var) { - syncVars.add(var); - } - - @Override - public final void handleOutputPacket(PacketCustom packet) { - syncVars.get(packet.readUByte()).readChange(packet); - } - - public List getSyncedVars() { - return Collections.unmodifiableList(syncVars); - } -} diff --git a/dependencies/main/java/codechicken/core/inventory/GuiContainerWidget.java b/dependencies/main/java/codechicken/core/inventory/GuiContainerWidget.java deleted file mode 100644 index 53be82e5a9..0000000000 --- a/dependencies/main/java/codechicken/core/inventory/GuiContainerWidget.java +++ /dev/null @@ -1,123 +0,0 @@ -package codechicken.core.inventory; - -import codechicken.core.gui.GuiWidget; -import codechicken.core.gui.IGuiActionListener; -import codechicken.lib.gui.GuiDraw; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.inventory.Container; -import org.lwjgl.input.Mouse; - -import java.awt.*; -import java.io.IOException; -import java.util.ArrayList; - -public class GuiContainerWidget extends GuiContainer implements IGuiActionListener { - public ArrayList widgets = new ArrayList(); - - public GuiContainerWidget(Container inventorySlots) { - this(inventorySlots, 176, 166); - } - - public GuiContainerWidget(Container inventorySlots, int xSize, int ySize) { - super(inventorySlots); - this.xSize = xSize; - this.ySize = ySize; - } - - @Override - public void setWorldAndResolution(Minecraft mc, int i, int j) { - super.setWorldAndResolution(mc, i, j); - if (widgets.isEmpty()) { - addWidgets(); - } - } - - public void add(GuiWidget widget) { - widgets.add(widget); - widget.onAdded(this); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float f, int mousex, int mousey) { - GlStateManager.translate(guiLeft, guiTop, 0); - drawBackground(); - for (GuiWidget widget : widgets) { - widget.draw(mousex - guiLeft, mousey - guiTop, f); - } - - GlStateManager.translate(-guiLeft, -guiTop, 0); - } - - public void drawBackground() { - } - - @Override - protected void mouseClicked(int x, int y, int button) throws IOException { - super.mouseClicked(x, y, button); - for (GuiWidget widget : widgets) { - widget.mouseClicked(x - guiLeft, y - guiTop, button); - } - } - - @Override - protected void mouseReleased(int x, int y, int button) { - super.mouseReleased(x, y, button); - for (GuiWidget widget : widgets) { - widget.mouseReleased(x - guiLeft, y - guiTop, button); - } - } - - @Override - protected void mouseClickMove(int x, int y, int button, long time) { - super.mouseClickMove(x, y, button, time); - for (GuiWidget widget : widgets) { - widget.mouseDragged(x - guiLeft, y - guiTop, button, time); - } - } - - @Override - public void updateScreen() { - super.updateScreen(); - if (mc.currentScreen == this) { - for (GuiWidget widget : widgets) { - widget.update(); - } - } - } - - @Override - public void keyTyped(char c, int keycode) throws IOException { - super.keyTyped(c, keycode); - for (GuiWidget widget : widgets) { - widget.keyTyped(c, keycode); - } - } - - @Override - public void handleMouseInput() throws IOException { - super.handleMouseInput(); - int i = Mouse.getEventDWheel(); - if (i != 0) { - Point p = GuiDraw.getMousePosition(); - int scroll = i > 0 ? 1 : -1; - for (GuiWidget widget : widgets) { - widget.mouseScrolled(p.x, p.y, scroll); - } - } - } - - @Override - public void actionPerformed(String ident, Object... params) { - } - - public void addWidgets() { - } - - @Override - public void onGuiClosed() { - super.onGuiClosed(); - widgets.clear(); - } -} diff --git a/dependencies/main/java/codechicken/core/inventory/IContainerSyncVar.java b/dependencies/main/java/codechicken/core/inventory/IContainerSyncVar.java deleted file mode 100644 index c9912eef08..0000000000 --- a/dependencies/main/java/codechicken/core/inventory/IContainerSyncVar.java +++ /dev/null @@ -1,13 +0,0 @@ -package codechicken.core.inventory; - -import codechicken.lib.packet.PacketCustom; - -public interface IContainerSyncVar { - public boolean changed(); - - public void reset(); - - public void writeChange(PacketCustom packet); - - public void readChange(PacketCustom packet); -} diff --git a/dependencies/main/java/codechicken/core/inventory/IntegerSync.java b/dependencies/main/java/codechicken/core/inventory/IntegerSync.java deleted file mode 100644 index a9280663dd..0000000000 --- a/dependencies/main/java/codechicken/core/inventory/IntegerSync.java +++ /dev/null @@ -1,29 +0,0 @@ -package codechicken.core.inventory; - -import codechicken.lib.packet.PacketCustom; - -public abstract class IntegerSync implements IContainerSyncVar { - public int c_value; - - @Override - public boolean changed() { - return getValue() != c_value; - } - - @Override - public void reset() { - c_value = getValue(); - } - - @Override - public void writeChange(PacketCustom packet) { - packet.writeInt(getValue()); - } - - @Override - public void readChange(PacketCustom packet) { - c_value = packet.readInt(); - } - - public abstract int getValue(); -} diff --git a/dependencies/main/java/codechicken/core/inventory/MappedInventoryAccess.java b/dependencies/main/java/codechicken/core/inventory/MappedInventoryAccess.java deleted file mode 100644 index ff8f1dd4ee..0000000000 --- a/dependencies/main/java/codechicken/core/inventory/MappedInventoryAccess.java +++ /dev/null @@ -1,145 +0,0 @@ -package codechicken.core.inventory; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IChatComponent; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public class MappedInventoryAccess implements IInventory { - public static interface InventoryAccessor { - public boolean canAccessSlot(int slot); - } - - public static final InventoryAccessor fullAccess = new InventoryAccessor() { - public boolean canAccessSlot(int slot) { - return true; - } - }; - - private ArrayList slotMap = new ArrayList(); - private IInventory inv; - private ArrayList accessors = new ArrayList(); - - public MappedInventoryAccess(IInventory inv, InventoryAccessor... accessors) { - this.inv = inv; - Collections.addAll(this.accessors, accessors); - reset(); - } - - public void reset() { - slotMap.clear(); - nextslot: - for (int i = 0; i < inv.getSizeInventory(); i++) { - for (InventoryAccessor a : accessors) { - if (!a.canAccessSlot(i)) { - continue nextslot; - } - } - - slotMap.add(i); - } - } - - @Override - public int getSizeInventory() { - return slotMap.size(); - } - - @Override - public ItemStack getStackInSlot(int slot) { - return inv.getStackInSlot(slotMap.get(slot)); - } - - @Override - public ItemStack decrStackSize(int slot, int amount) { - return inv.decrStackSize(slotMap.get(slot), amount); - } - - @Override - public ItemStack removeStackFromSlot(int slot) { - return inv.removeStackFromSlot(slotMap.get(slot)); - } - - @Override - public void setInventorySlotContents(int slot, ItemStack stack) { - inv.setInventorySlotContents(slotMap.get(slot), stack); - } - - @Override - public int getInventoryStackLimit() { - return inv.getInventoryStackLimit(); - } - - @Override - public void markDirty() { - inv.markDirty(); - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - return inv.isUseableByPlayer(player); - } - - public void addAccessor(InventoryAccessor accessor) { - accessors.add(accessor); - reset(); - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack stack) { - return inv.isItemValidForSlot(slotMap.get(slot), stack); - } - - @Override - public void openInventory(EntityPlayer player) { - inv.openInventory(player); - } - - @Override - public void closeInventory(EntityPlayer player) { - inv.closeInventory(player); - } - - @Override - public int getField(int id) { - return inv.getField(id); - } - - @Override - public void setField(int id, int value) { - inv.setField(id, value); - } - - @Override - public int getFieldCount() { - return inv.getFieldCount(); - } - - @Override - public void clear() { - inv.clear(); - } - - @Override - public String getName() { - return inv.getName(); - } - - @Override - public boolean hasCustomName() { - return inv.hasCustomName(); - } - - @Override - public IChatComponent getDisplayName() { - return inv.getDisplayName(); - } - - public List accessors() { - return accessors; - } -} diff --git a/dependencies/main/java/codechicken/core/inventory/SlotDummy.java b/dependencies/main/java/codechicken/core/inventory/SlotDummy.java deleted file mode 100644 index 8b0b5a6c73..0000000000 --- a/dependencies/main/java/codechicken/core/inventory/SlotDummy.java +++ /dev/null @@ -1,68 +0,0 @@ -package codechicken.core.inventory; - -import codechicken.lib.inventory.InventoryUtils; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -public class SlotDummy extends SlotHandleClicks { - public final int stackLimit; - - public SlotDummy(IInventory inv, int slot, int x, int y) { - this(inv, slot, x, y, 64); - } - - public SlotDummy(IInventory inv, int slot, int x, int y, int limit) { - super(inv, slot, x, y); - stackLimit = limit; - } - - @Override - public ItemStack slotClick(ContainerExtended container, EntityPlayer player, int button, int modifier) { - ItemStack held = player.inventory.getItemStack(); - boolean shift = modifier == 1; - slotClick(held, button, shift); - return null; - } - - public void slotClick(ItemStack held, int button, boolean shift) { - ItemStack tstack = getStack(); - if (held != null && (tstack == null || !InventoryUtils.canStack(held, tstack))) { - int quantity = Math.min(held.stackSize, stackLimit); - if (shift) { - quantity = Math.min(stackLimit, held.getMaxStackSize() * 16); - } - if (button == 1) { - quantity = 1; - } - putStack(InventoryUtils.copyStack(held, quantity)); - } else if (tstack != null) { - int inc; - if (held != null) { - inc = button == 1 ? -held.stackSize : held.stackSize; - if (shift) { - inc *= 16; - } - } else { - inc = button == 1 ? -1 : 1; - if (shift) { - inc *= 16; - } - } - int quantity = tstack.stackSize + inc; - if (quantity <= 0) { - putStack(null); - } else { - putStack(InventoryUtils.copyStack(tstack, quantity)); - } - } - } - - @Override - public void putStack(ItemStack stack) { - if (stack != null && stack.stackSize > stackLimit) { - stack = InventoryUtils.copyStack(stack, stackLimit); - } - super.putStack(stack); - } -} diff --git a/dependencies/main/java/codechicken/core/inventory/SlotDummyOutput.java b/dependencies/main/java/codechicken/core/inventory/SlotDummyOutput.java deleted file mode 100644 index 2899d6e4b2..0000000000 --- a/dependencies/main/java/codechicken/core/inventory/SlotDummyOutput.java +++ /dev/null @@ -1,16 +0,0 @@ -package codechicken.core.inventory; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -public class SlotDummyOutput extends SlotHandleClicks { - public SlotDummyOutput(IInventory inv, int slot, int x, int y) { - super(inv, slot, x, y); - } - - @Override - public ItemStack slotClick(ContainerExtended container, EntityPlayer player, int button, int modifier) { - return null; - } -} diff --git a/dependencies/main/java/codechicken/core/inventory/SlotHandleClicks.java b/dependencies/main/java/codechicken/core/inventory/SlotHandleClicks.java deleted file mode 100644 index 4c93479b02..0000000000 --- a/dependencies/main/java/codechicken/core/inventory/SlotHandleClicks.java +++ /dev/null @@ -1,14 +0,0 @@ -package codechicken.core.inventory; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public abstract class SlotHandleClicks extends Slot { - public SlotHandleClicks(IInventory inv, int slot, int x, int y) { - super(inv, slot, x, y); - } - - public abstract ItemStack slotClick(ContainerExtended container, EntityPlayer player, int button, int modifier); -} diff --git a/dependencies/main/java/codechicken/core/launch/CodeChickenCorePlugin.java b/dependencies/main/java/codechicken/core/launch/CodeChickenCorePlugin.java deleted file mode 100644 index 0e40d56785..0000000000 --- a/dependencies/main/java/codechicken/core/launch/CodeChickenCorePlugin.java +++ /dev/null @@ -1,169 +0,0 @@ -package codechicken.core.launch; - -import codechicken.core.asm.CodeChickenCoreModContainer; -import codechicken.core.asm.DelegatedTransformer; -import codechicken.core.asm.MCPDeobfuscationTransformer; -import codechicken.core.asm.TweakTransformer; -import net.minecraftforge.fml.common.versioning.DefaultArtifactVersion; -import net.minecraftforge.fml.common.versioning.VersionParser; -import net.minecraftforge.fml.relauncher.CoreModManager; -import net.minecraftforge.fml.relauncher.FMLInjectionData; -import net.minecraftforge.fml.relauncher.IFMLCallHook; -import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; -import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin.TransformerExclusions; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import javax.swing.*; -import javax.swing.event.HyperlinkEvent; -import javax.swing.event.HyperlinkListener; -import java.awt.*; -import java.io.File; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.util.List; -import java.util.Map; -import java.util.jar.Attributes; -import java.util.jar.JarFile; -import java.util.jar.Manifest; - -@TransformerExclusions(value = { "codechicken.core.asm", "codechicken.obfuscator" }) -public class CodeChickenCorePlugin implements IFMLLoadingPlugin, IFMLCallHook { - public static final String mcVersion = "[1.8.9]"; - public static final String version = "${mod_version}"; - - public static File minecraftDir; - public static String currentMcVersion; - public static Logger logger = LogManager.getLogger("CodeChickenCore"); - - public CodeChickenCorePlugin() { - if (minecraftDir != null) { - return;//get called twice, once for IFMLCallHook - } - - minecraftDir = (File) FMLInjectionData.data()[6]; - currentMcVersion = (String) FMLInjectionData.data()[4]; - - DepLoader.load(); - injectDeobfPlugin(); - } - - private void injectDeobfPlugin() { - try { - Class wrapperClass = Class.forName("net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper"); - Constructor wrapperConstructor = wrapperClass.getConstructor(String.class, IFMLLoadingPlugin.class, File.class, Integer.TYPE, String[].class); - Field f_loadPlugins = CoreModManager.class.getDeclaredField("loadPlugins"); - wrapperConstructor.setAccessible(true); - f_loadPlugins.setAccessible(true); - ((List) f_loadPlugins.get(null)).add(2, wrapperConstructor.newInstance("CCCDeobfPlugin", new MCPDeobfuscationTransformer.LoadPlugin(), null, 0, new String[0])); - } catch (Exception e) { - logger.error("Failed to inject MCPDeobfuscation Transformer", e); - } - } - - public static void versionCheck(String reqVersion, String mod) { - String mcVersion = (String) FMLInjectionData.data()[4]; - if (!VersionParser.parseRange(reqVersion).containsVersion(new DefaultArtifactVersion(mcVersion))) { - String err = "This version of " + mod + " does not support minecraft version " + mcVersion; - logger.error(err); - - JEditorPane ep = new JEditorPane("text/html", "" + - err + - "
Remove it from your coremods folder and check here for updates" + - ""); - - ep.setEditable(false); - ep.setOpaque(false); - ep.addHyperlinkListener(new HyperlinkListener() { - @Override - public void hyperlinkUpdate(HyperlinkEvent event) { - try { - if (event.getEventType().equals(HyperlinkEvent.EventType.ACTIVATED)) { - Desktop.getDesktop().browse(event.getURL().toURI()); - } - } catch (Exception ignored) { - } - } - }); - - JOptionPane.showMessageDialog(null, ep, "Fatal error", JOptionPane.ERROR_MESSAGE); - System.exit(1); - } - } - - @Override - public String[] getASMTransformerClass() { - versionCheck(mcVersion, "CodeChickenCore"); - return new String[] { "codechicken.core.asm.InterfaceDependancyTransformer", "codechicken.core.asm.TweakTransformer", "codechicken.core.asm.DelegatedTransformer", "codechicken.core.asm.DefaultImplementationTransformer" }; - } - - @Override - public String getAccessTransformerClass() { - return "codechicken.core.asm.CodeChickenAccessTransformer"; - } - - @Override - public String getModContainerClass() { - return "codechicken.core.asm.CodeChickenCoreModContainer"; - } - - @Override - public String getSetupClass() { - return getClass().getName(); - } - - @Override - public void injectData(Map data) { - } - - @Override - public Void call() { - CodeChickenCoreModContainer.loadConfig(); - TweakTransformer.load(); - scanCodeChickenMods(); - - return null; - } - - private void scanCodeChickenMods() { - File modsDir = new File(minecraftDir, "mods"); - for (File file : modsDir.listFiles()) { - scanMod(file); - } - File versionModsDir = new File(minecraftDir, "mods/" + currentMcVersion); - if (versionModsDir.exists()) { - for (File file : versionModsDir.listFiles()) { - scanMod(file); - } - } - } - - private void scanMod(File file) { - if (!file.getName().endsWith(".jar") && !file.getName().endsWith(".zip")) { - return; - } - - try { - JarFile jar = new JarFile(file); - try { - Manifest manifest = jar.getManifest(); - if (manifest == null) { - return; - } - Attributes attr = manifest.getMainAttributes(); - if (attr == null) { - return; - } - - String transformer = attr.getValue("CCTransformer"); - if (transformer != null) { - DelegatedTransformer.addTransformer(transformer, jar, file); - } - } finally { - jar.close(); - } - } catch (Exception e) { - logger.error("CodeChickenCore: Failed to read jar file: " + file.getName(), e); - } - } -} diff --git a/dependencies/main/java/codechicken/core/launch/DepLoader.java b/dependencies/main/java/codechicken/core/launch/DepLoader.java deleted file mode 100644 index 36a111aa6c..0000000000 --- a/dependencies/main/java/codechicken/core/launch/DepLoader.java +++ /dev/null @@ -1,752 +0,0 @@ -package codechicken.core.launch; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import net.minecraft.launchwrapper.LaunchClassLoader; -import net.minecraftforge.fml.common.asm.transformers.ModAccessTransformer; -import net.minecraftforge.fml.common.versioning.ComparableVersion; -import net.minecraftforge.fml.relauncher.*; -import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import sun.misc.URLClassPath; -import sun.net.util.URLUtil; - -import javax.swing.*; -import javax.swing.event.HyperlinkEvent; -import javax.swing.event.HyperlinkListener; -import java.awt.*; -import java.awt.Dialog.ModalityType; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.io.*; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLClassLoader; -import java.net.URLConnection; -import java.nio.ByteBuffer; -import java.util.*; -import java.util.List; -import java.util.jar.Attributes; -import java.util.jar.JarFile; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -/** - * For autodownloading stuff. - * This is really unoriginal, mostly ripped off FML, credits to cpw. - */ -public class DepLoader implements IFMLLoadingPlugin, IFMLCallHook { - private static ByteBuffer downloadBuffer = ByteBuffer.allocateDirect(1 << 23); - private static final String owner = "DepLoader"; - private static DepLoadInst inst; - private static final Logger logger = LogManager.getLogger(owner); - - public interface IDownloadDisplay { - void resetProgress(int sizeGuess); - - void setPokeThread(Thread currentThread); - - void updateProgress(int fullLength); - - boolean shouldStopIt(); - - void updateProgressString(String string, Object... data); - - Object makeDialog(); - - void showErrorDialog(String name, String url); - } - - @SuppressWarnings("serial") - public static class Downloader extends JOptionPane implements IDownloadDisplay { - private JDialog container; - private JLabel currentActivity; - private JProgressBar progress; - boolean stopIt; - Thread pokeThread; - - private Box makeProgressPanel() { - Box box = Box.createVerticalBox(); - box.add(Box.createRigidArea(new Dimension(0, 10))); - JLabel welcomeLabel = new JLabel("" + owner + " is setting up your minecraft environment"); - box.add(welcomeLabel); - welcomeLabel.setAlignmentY(LEFT_ALIGNMENT); - welcomeLabel = new JLabel("Please wait, " + owner + " has some tasks to do before you can play"); - welcomeLabel.setAlignmentY(LEFT_ALIGNMENT); - box.add(welcomeLabel); - box.add(Box.createRigidArea(new Dimension(0, 10))); - currentActivity = new JLabel("Currently doing ..."); - box.add(currentActivity); - box.add(Box.createRigidArea(new Dimension(0, 10))); - progress = new JProgressBar(0, 100); - progress.setStringPainted(true); - box.add(progress); - box.add(Box.createRigidArea(new Dimension(0, 30))); - return box; - } - - @Override - public JDialog makeDialog() { - if (container != null) { - return container; - } - - setMessageType(JOptionPane.INFORMATION_MESSAGE); - setMessage(makeProgressPanel()); - setOptions(new Object[] { "Stop" }); - addPropertyChangeListener(new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - if (evt.getSource() == Downloader.this && evt.getPropertyName() == VALUE_PROPERTY) { - requestClose("This will stop minecraft from launching\nAre you sure you want to do this?"); - } - } - }); - container = new JDialog(null, "Hello", ModalityType.MODELESS); - container.setResizable(false); - container.setLocationRelativeTo(null); - container.add(this); - this.updateUI(); - container.pack(); - container.setMinimumSize(container.getPreferredSize()); - container.setVisible(true); - container.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); - container.addWindowListener(new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - requestClose("Closing this window will stop minecraft from launching\nAre you sure you wish to do this?"); - } - }); - return container; - } - - protected void requestClose(String message) { - int shouldClose = JOptionPane.showConfirmDialog(container, message, "Are you sure you want to stop?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); - if (shouldClose == JOptionPane.YES_OPTION) { - container.dispose(); - } - - stopIt = true; - if (pokeThread != null) { - pokeThread.interrupt(); - } - } - - @Override - public void updateProgressString(String progressUpdate, Object... data) { - //FMLLog.finest(progressUpdate, data); - if (currentActivity != null) { - currentActivity.setText(String.format(progressUpdate, data)); - } - } - - @Override - public void resetProgress(int sizeGuess) { - if (progress != null) { - progress.getModel().setRangeProperties(0, 0, 0, sizeGuess, false); - } - } - - @Override - public void updateProgress(int fullLength) { - if (progress != null) { - progress.getModel().setValue(fullLength); - } - } - - @Override - public void setPokeThread(Thread currentThread) { - this.pokeThread = currentThread; - } - - @Override - public boolean shouldStopIt() { - return stopIt; - } - - @Override - public void showErrorDialog(String name, String url) { - JEditorPane ep = new JEditorPane("text/html", "" + - owner + " was unable to download required library " + name + - "
Check your internet connection and try restarting or download it manually from" + - "
" + url + " and put it in your mods folder" + - ""); - - ep.setEditable(false); - ep.setOpaque(false); - ep.addHyperlinkListener(new HyperlinkListener() { - @Override - public void hyperlinkUpdate(HyperlinkEvent event) { - try { - if (event.getEventType().equals(HyperlinkEvent.EventType.ACTIVATED)) { - Desktop.getDesktop().browse(event.getURL().toURI()); - } - } catch (Exception e) { - } - } - }); - - JOptionPane.showMessageDialog(null, ep, "A download error has occured", JOptionPane.ERROR_MESSAGE); - } - } - - public static class DummyDownloader implements IDownloadDisplay { - @Override - public void resetProgress(int sizeGuess) { - } - - @Override - public void setPokeThread(Thread currentThread) { - } - - @Override - public void updateProgress(int fullLength) { - } - - @Override - public boolean shouldStopIt() { - return false; - } - - @Override - public void updateProgressString(String string, Object... data) { - } - - @Override - public Object makeDialog() { - return null; - } - - @Override - public void showErrorDialog(String name, String url) { - } - } - - public static class VersionedFile { - public final Pattern pattern; - public final String filename; - public final ComparableVersion version; - public final String name; - - public VersionedFile(String filename, Pattern pattern) { - this.pattern = pattern; - this.filename = filename; - Matcher m = pattern.matcher(filename); - if (m.matches()) { - name = m.group(1); - version = new ComparableVersion(m.group(2)); - } else { - name = null; - version = null; - } - } - - public boolean matches() { - return name != null; - } - } - - public static class Dependency { - /** - * Zip file to extract packed dependencies from - */ - public File source; - public String repo; - public String packed; - public VersionedFile file; - public String testClass; - public boolean coreLib; - - public String existing; - - /** - * Flag set to add this dep to the classpath immediately because it is required for a coremod. - */ - - public Dependency(File source, String repo, String packed, VersionedFile file, String testClass, boolean coreLib) { - this.source = source; - this.repo = repo; - this.packed = packed; - this.file = file; - this.coreLib = coreLib; - this.testClass = testClass; - } - - public void set(Dependency dep) { - this.source = dep.source; - this.repo = dep.repo; - this.packed = dep.packed; - this.file = dep.file; - } - } - - public static class DepLoadInst { - private File modsDir; - private File v_modsDir; - private IDownloadDisplay downloadMonitor; - private JDialog popupWindow; - - private Map depMap = new HashMap(); - private HashSet depSet = new HashSet(); - - private File scanning; - private LaunchClassLoader loader = (LaunchClassLoader) DepLoader.class.getClassLoader(); - - public DepLoadInst() { - String mcVer = (String) FMLInjectionData.data()[4]; - File mcDir = (File) FMLInjectionData.data()[6]; - - modsDir = new File(mcDir, "mods"); - v_modsDir = new File(mcDir, "mods/" + mcVer); - if (!v_modsDir.exists()) { - v_modsDir.mkdirs(); - } - } - - private void addClasspath(File file) { - try { - loader.addURL(file.toURI().toURL()); - } catch (MalformedURLException e) { - throw new RuntimeException(e); - } - } - - private void deleteMod(File mod) { - if (mod.delete()) { - return; - } - - try { - URL url = mod.toURI().toURL(); - Field f_ucp = URLClassLoader.class.getDeclaredField("ucp"); - Field f_loaders = URLClassPath.class.getDeclaredField("loaders"); - Field f_lmap = URLClassPath.class.getDeclaredField("lmap"); - f_ucp.setAccessible(true); - f_loaders.setAccessible(true); - f_lmap.setAccessible(true); - - URLClassPath ucp = (URLClassPath) f_ucp.get(loader); - Closeable loader = ((Map) f_lmap.get(ucp)).remove(URLUtil.urlNoFragString(url)); - if (loader != null) { - loader.close(); - ((List) f_loaders.get(ucp)).remove(loader); - } - } catch (Exception e) { - e.printStackTrace(); - } - - if (!mod.delete()) { - mod.deleteOnExit(); - String msg = owner + " was unable to delete file " + mod.getPath() + " the game will now try to delete it on exit. If this dialog appears again, delete it manually."; - logger.error(msg); - if (!GraphicsEnvironment.isHeadless()) { - JOptionPane.showMessageDialog(null, msg, "An update error has occured", JOptionPane.ERROR_MESSAGE); - } - - System.exit(1); - } - } - - private void install(Dependency dep) { - popupWindow = (JDialog) downloadMonitor.makeDialog(); - - if (!extract(dep)) { - download(dep); - } - - dep.existing = dep.file.filename; - scanDepInfo(new File(v_modsDir, dep.existing)); - } - - private boolean extract(Dependency dep) { - if (dep.packed == null) { - return false; - } - - ZipFile zip = null; - try { - zip = new ZipFile(dep.source); - ZipEntry libEntry = zip.getEntry(dep.packed + dep.file.filename); - if (libEntry == null) { - return false; - } - - downloadMonitor.updateProgressString("Extracting file %s\n", dep.source.getPath() + '!' + libEntry.toString()); - logger.info("Extracting file " + dep.source.getPath() + '!' + libEntry.toString()); - - download(zip.getInputStream(libEntry), (int) libEntry.getSize(), dep); - - downloadMonitor.updateProgressString("Extraction complete"); - logger.info("Extraction complete"); - } catch (Exception e) { - installError(e, dep, "extraction"); - } finally { - try { - if (zip != null) { - zip.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - return true; - } - - private void download(Dependency dep) { - try { - URL libDownload = new URL(dep.repo + dep.file.filename); - downloadMonitor.updateProgressString("Downloading file %s", libDownload.toString()); - logger.info("Downloading file " + libDownload.toString()); - URLConnection connection = libDownload.openConnection(); - connection.setConnectTimeout(5000); - connection.setReadTimeout(5000); - connection.setRequestProperty("User-Agent", "" + owner + " Downloader"); - download(connection.getInputStream(), connection.getContentLength(), dep); - downloadMonitor.updateProgressString("Download complete"); - logger.info("Download complete"); - } catch (Exception e) { - installError(e, dep, "download"); - } - } - - private void installError(Exception e, Dependency dep, String s) { - if (downloadMonitor.shouldStopIt()) { - logger.error("You have stopped the " + s + " before it could complete"); - System.exit(1); - } - downloadMonitor.showErrorDialog(dep.file.filename, dep.repo + '/' + dep.file.filename); - throw new RuntimeException(s + " error", e); - } - - private void download(InputStream is, int sizeGuess, Dependency dep) throws Exception { - File target = new File(v_modsDir, dep.file.filename); - if (sizeGuess > downloadBuffer.capacity()) { - throw new Exception(String.format("The file %s is too large to be downloaded by " + owner + " - the download is invalid", target.getName())); - } - - downloadBuffer.clear(); - - int read, fullLength = 0; - - downloadMonitor.resetProgress(sizeGuess); - try { - downloadMonitor.setPokeThread(Thread.currentThread()); - byte[] buffer = new byte[1024]; - while ((read = is.read(buffer)) >= 0) { - downloadBuffer.put(buffer, 0, read); - fullLength += read; - if (downloadMonitor.shouldStopIt()) { - break; - } - - downloadMonitor.updateProgress(fullLength); - } - is.close(); - downloadMonitor.setPokeThread(null); - downloadBuffer.limit(fullLength); - downloadBuffer.position(0); - } catch (InterruptedIOException e) { - // We were interrupted by the stop button. We're stopping now.. clear interruption flag. - Thread.interrupted(); - throw new Exception("Stop"); - } - - if (!target.exists()) { - target.createNewFile(); - } - - downloadBuffer.position(0); - FileOutputStream fos = new FileOutputStream(target); - fos.getChannel().write(downloadBuffer); - fos.close(); - } - - private String checkExisting(Dependency dep) { - for (File f : modsDir.listFiles()) { - VersionedFile vfile = new VersionedFile(f.getName(), dep.file.pattern); - if (!vfile.matches() || !vfile.name.equals(dep.file.name)) { - continue; - } - - if (f.renameTo(new File(v_modsDir, f.getName()))) { - continue; - } - - deleteMod(f); - } - - for (File f : v_modsDir.listFiles()) { - VersionedFile vfile = new VersionedFile(f.getName(), dep.file.pattern); - if (!vfile.matches() || !vfile.name.equals(dep.file.name)) { - continue; - } - - int cmp = vfile.version.compareTo(dep.file.version); - if (cmp < 0) { - logger.info("Deleted old version " + f.getName()); - deleteMod(f); - return null; - } - if (cmp > 0) { - logger.info("Warning: version of " + dep.file.name + ", " + vfile.version + " is newer than request " + dep.file.version); - return f.getName(); - } - return f.getName();//found dependency - } - return null; - } - - public void load() { - scanDepInfos(); - if (depMap.isEmpty()) { - return; - } - - loadDeps(); - activateDeps(); - } - - private void activateDeps() { - for (Dependency dep : depMap.values()) { - File file = new File(v_modsDir, dep.existing); - if (!searchCoreMod(file) && dep.coreLib) { - addClasspath(file); - } - } - } - - /** - * Looks for FMLCorePlugin attributes and adds to CoreModManager - */ - private boolean searchCoreMod(File coreMod) { - JarFile jar = null; - Attributes mfAttributes; - try { - jar = new JarFile(coreMod); - if (jar.getManifest() == null) { - return false; - } - - ModAccessTransformer.addJar(jar); - mfAttributes = jar.getManifest().getMainAttributes(); - } catch (IOException ioe) { - FMLRelaunchLog.log(Level.ERROR, ioe, "Unable to read the jar file %s - ignoring", coreMod.getName()); - return false; - } finally { - try { - if (jar != null) { - jar.close(); - } - } catch (IOException ignored) { - } - } - - String fmlCorePlugin = mfAttributes.getValue("FMLCorePlugin"); - if (fmlCorePlugin == null) { - return false; - } - - addClasspath(coreMod); - - try { - Class c = CoreModManager.class; - if (!mfAttributes.containsKey(new Attributes.Name("FMLCorePluginContainsFMLMod"))) { - FMLRelaunchLog.finer("Adding %s to the list of known coremods, it will not be examined again", coreMod.getName()); - Field f_loadedCoremods = c.getDeclaredField("ignoredModFiles"); - f_loadedCoremods.setAccessible(true); - ((List) f_loadedCoremods.get(null)).add(coreMod.getName()); - } else { - FMLRelaunchLog.finer("Found FMLCorePluginContainsFMLMod marker in %s, it will be examined later for regular @Mod instances", coreMod.getName()); - Field f_reparsedCoremods = c.getDeclaredField("candidateModFiles"); - f_reparsedCoremods.setAccessible(true); - ((List) f_reparsedCoremods.get(null)).add(coreMod.getName()); - } - Method m_loadCoreMod = c.getDeclaredMethod("loadCoreMod", LaunchClassLoader.class, String.class, File.class); - m_loadCoreMod.setAccessible(true); - m_loadCoreMod.invoke(null, loader, fmlCorePlugin, coreMod); - } catch (Exception e) { - throw new RuntimeException(e); - } - - return true; - } - - private void loadDeps() { - downloadMonitor = FMLLaunchHandler.side().isClient() ? new Downloader() : new DummyDownloader(); - try { - while (!depSet.isEmpty()) { - Iterator it = depSet.iterator(); - Dependency dep = depMap.get(it.next()); - it.remove(); - load(dep); - } - } finally { - if (popupWindow != null) { - popupWindow.setVisible(false); - popupWindow.dispose(); - } - } - } - - private void load(Dependency dep) { - dep.existing = checkExisting(dep); - if (dep.existing == null && DepLoader.class.getResource("/" + dep.testClass.replace('.', '/') + ".class") == null) { - install(dep); - } - } - - private List modFiles() { - List list = new LinkedList(); - list.addAll(Arrays.asList(modsDir.listFiles())); - list.addAll(Arrays.asList(v_modsDir.listFiles())); - return list; - } - - private void scanDepInfos() { - for (File file : modFiles()) { - if (!file.getName().endsWith(".jar") && !file.getName().endsWith(".zip")) { - continue; - } - - scanDepInfo(file); - } - } - - private void scanDepInfo(File file) { - try { - scanning = file; - ZipFile zip = new ZipFile(file); - ZipEntry e = zip.getEntry("dependencies.info"); - if (e != null) { - loadJSon(zip.getInputStream(e)); - } - - zip.close(); - } catch (Exception e) { - logger.error("Failed to load dependencies.info from " + file.getName() + " as JSON", e); - } - } - - private void loadJSon(InputStream input) throws IOException { - InputStreamReader reader = new InputStreamReader(input); - JsonElement root = new JsonParser().parse(reader); - if (root.isJsonArray()) { - loadJSonArr(root); - } else { - loadJson(root.getAsJsonObject()); - } - reader.close(); - } - - private void loadJSonArr(JsonElement root) throws IOException { - for (JsonElement node : root.getAsJsonArray()) { - loadJson(node.getAsJsonObject()); - } - } - - private void loadJson(JsonObject node) throws IOException { - boolean obfuscated = ((LaunchClassLoader) DepLoader.class.getClassLoader()).getClassBytes("net.minecraft.world.World") == null; - - String repo = node.has("repo") ? node.get("repo").getAsString() : null; - String packed = node.has("packed") ? node.get("packed").getAsString() : null; - String testClass = node.get("class").getAsString(); - - String filename = node.get("file").getAsString(); - if (!obfuscated && node.has("dev")) { - filename = node.get("dev").getAsString(); - } - - boolean coreLib = node.has("coreLib") && node.get("coreLib").getAsBoolean(); - - Pattern pattern = null; - try { - if (node.has("pattern")) { - pattern = Pattern.compile(node.get("pattern").getAsString()); - } - } catch (PatternSyntaxException e) { - logger.error("Invalid filename pattern: " + node.get("pattern"), e); - } - if (pattern == null) { - pattern = Pattern.compile("(\\w+).*?([\\d\\.]+)[-\\w]*\\.[^\\d]+"); - } - - VersionedFile file = new VersionedFile(filename, pattern); - if (!file.matches()) { - throw new RuntimeException("Invalid filename format for dependency: " + filename); - } - - addDep(new Dependency(scanning, repo, packed, file, testClass, coreLib)); - } - - private void addDep(Dependency newDep) { - Dependency oldDep = depMap.get(newDep.file.name); - if (oldDep == null) { - depMap.put(newDep.file.name, newDep); - depSet.add(newDep.file.name); - return; - } - - //combine newer info from newDep into oldDep - oldDep.coreLib |= newDep.coreLib; - int cmp = newDep.file.version.compareTo(oldDep.file.version); - if (cmp == 1) { - oldDep.set(newDep); - } else if (cmp == 0) { - if (oldDep.repo == null) { - oldDep.repo = newDep.repo; - } - if (oldDep.packed == null) { - oldDep.source = newDep.source; - oldDep.packed = newDep.packed; - } - } - } - } - - public static void load() { - if (inst == null) { - inst = new DepLoadInst(); - inst.load(); - } - } - - @Override - public String[] getASMTransformerClass() { - return null; - } - - @Override - public String getModContainerClass() { - return null; - } - - @Override - public String getSetupClass() { - return getClass().getName(); - } - - @Override - public void injectData(Map data) { - } - - @Override - public Void call() { - load(); - - return null; - } - - @Override - public String getAccessTransformerClass() { - return null; - } -} diff --git a/dependencies/main/java/codechicken/lib/asm/ASMBlock.java b/dependencies/main/java/codechicken/lib/asm/ASMBlock.java deleted file mode 100644 index 6cffff09f2..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/ASMBlock.java +++ /dev/null @@ -1,190 +0,0 @@ -package codechicken.lib.asm; - -import com.google.common.collect.BiMap; -import com.google.common.collect.HashBiMap; -import com.google.common.collect.ImmutableMap; -import org.objectweb.asm.tree.AbstractInsnNode; -import org.objectweb.asm.tree.InsnList; -import org.objectweb.asm.tree.JumpInsnNode; -import org.objectweb.asm.tree.LabelNode; - -import java.util.*; -import java.util.Map.Entry; - -import static org.objectweb.asm.tree.AbstractInsnNode.*; - -public class ASMBlock { - public InsnListSection list; - private BiMap labels; - - public ASMBlock(InsnListSection list, BiMap labels) { - this.list = list; - this.labels = labels; - } - - public ASMBlock(InsnListSection list) { - this(list, HashBiMap.create()); - } - - public ASMBlock(InsnList list) { - this(new InsnListSection(list)); - } - - public ASMBlock() { - this(new InsnListSection()); - } - - public LabelNode getOrAdd(String s) { - LabelNode l = get(s); - if (l == null) { - labels.put(s, l = new LabelNode()); - } - return l; - } - - public LabelNode get(String s) { - return labels.get(s); - } - - public void replaceLabels(Map labelMap, Set usedLabels) { - for (AbstractInsnNode insn : list) { - switch (insn.getType()) { - case LABEL: - AbstractInsnNode insn2 = insn.clone(labelMap); - if (insn2 == insn)//identity mapping - { - continue; - } - if (usedLabels.contains(insn2)) { - throw new IllegalStateException("LabelNode cannot be a part of two InsnLists"); - } - list.replace(insn, insn2); - break; - case JUMP_INSN: - case FRAME: - case LOOKUPSWITCH_INSN: - case TABLESWITCH_INSN: - list.replace(insn, insn.clone(labelMap)); - } - } - - for (Entry entry : labelMap.entrySet()) { - String key = labels.inverse().get(entry.getKey()); - if (key != null) { - labels.put(key, entry.getValue()); - } - } - } - - public void replaceLabels(Map labelMap) { - replaceLabels(labelMap, Collections.EMPTY_SET); - } - - public void replaceLabel(String s, LabelNode l) { - LabelNode old = get(s); - if (old != null) { - replaceLabels(ImmutableMap.of(old, l)); - } - } - - /** - * Pulls all common labels from other into this - * - * @return this - */ - public ASMBlock mergeLabels(ASMBlock other) { - if (labels.isEmpty() || other.labels.isEmpty()) { - return this; - } - - //common labels, give them our nodes - HashMap labelMap = list.identityLabelMap(); - for (Entry entry : other.labels.entrySet()) { - LabelNode old = labels.get(entry.getKey()); - if (old != null) { - labelMap.put(old, entry.getValue()); - } - } - HashSet usedLabels = new HashSet(); - for (AbstractInsnNode insn = other.list.list.getFirst(); insn != null; insn = insn.getNext()) { - if (insn.getType() == LABEL) { - usedLabels.add((LabelNode) insn); - } - } - - replaceLabels(labelMap, usedLabels); - return this; - } - - /** - * Like mergeLabels but pulls insns from other list into this so LabelNodes can be transferred - * - * @return this - */ - public ASMBlock pullLabels(ASMBlock other) { - other.list.remove(); - return mergeLabels(other); - } - - public ASMBlock copy() { - BiMap labels = HashBiMap.create(); - Map labelMap = list.cloneLabels(); - - for (Entry entry : this.labels.entrySet()) { - labels.put(entry.getKey(), labelMap.get(entry.getValue())); - } - - return new ASMBlock(list.copy(labelMap), labels); - } - - public ASMBlock applyLabels(InsnListSection list2) { - if (labels.isEmpty()) { - return new ASMBlock(list2); - } - - Set cFlowLabels1 = labels.values(); - Set cFlowLabels2 = InsnComparator.getControlFlowLabels(list2); - ASMBlock block = new ASMBlock(list2); - - HashMap labelMap = new HashMap(); - - for (int i = 0, k = 0; i < list.size() && k < list2.size(); ) { - AbstractInsnNode insn1 = list.get(i); - if (!InsnComparator.insnImportant(insn1, cFlowLabels1)) { - i++; - continue; - } - - AbstractInsnNode insn2 = list2.get(k); - if (!InsnComparator.insnImportant(insn2, cFlowLabels2)) { - k++; - continue; - } - - if (insn1.getOpcode() != insn2.getOpcode()) { - throw new IllegalArgumentException("Lists do not match:\n" + list + "\n\n" + list2); - } - - switch (insn1.getType()) { - case LABEL: - labelMap.put((LabelNode) insn1, (LabelNode) insn2); - break; - case JUMP_INSN: - labelMap.put(((JumpInsnNode) insn1).label, ((JumpInsnNode) insn2).label); - break; - } - i++; - k++; - } - - for (Entry entry : labels.entrySet()) { - block.labels.put(entry.getKey(), labelMap.get(entry.getValue())); - } - - return block; - } - - public InsnList rawListCopy() { - return list.copy().list; - } -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/lib/asm/ASMHelper.java b/dependencies/main/java/codechicken/lib/asm/ASMHelper.java deleted file mode 100644 index cd168228ed..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/ASMHelper.java +++ /dev/null @@ -1,205 +0,0 @@ -package codechicken.lib.asm; - -import codechicken.lib.config.ConfigFile; -import codechicken.lib.config.DefaultingConfigFile; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.tree.*; -import org.objectweb.asm.util.ASMifier; -import org.objectweb.asm.util.Textifier; -import org.objectweb.asm.util.TraceClassVisitor; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public class ASMHelper { - public static ConfigFile config = loadConfig(); - public static Logger logger = LogManager.getLogger("CCL ASM"); - - private static ConfigFile loadConfig() { - try {//weak reference for environments without FML - File mcDir = (File) ((Object[]) Class.forName("net.minecraftforge.fml.relauncher.FMLInjectionData").getMethod("data").invoke(null))[6]; - File file = new File(mcDir, "config/CodeChickenLib.cfg"); - if (ObfMapping.obfuscated) { - return new DefaultingConfigFile(file); - } else { - return new ConfigFile(file).setComment("CodeChickenLib development configuration file."); - } - } catch (Exception ignored) { - return null;//no config for these systems - } - } - - public static interface Acceptor { - public void accept(ClassVisitor cv) throws IOException; - } - - public static MethodNode findMethod(ObfMapping methodmap, ClassNode cnode) { - for (MethodNode mnode : cnode.methods) { - if (methodmap.matches(mnode)) { - return mnode; - } - } - return null; - } - - public static FieldNode findField(ObfMapping fieldmap, ClassNode cnode) { - for (FieldNode fnode : cnode.fields) { - if (fieldmap.matches(fnode)) { - return fnode; - } - } - return null; - } - - public static ClassNode createClassNode(byte[] bytes) { - return createClassNode(bytes, 0); - } - - public static ClassNode createClassNode(byte[] bytes, int flags) { - ClassNode cnode = new ClassNode(); - ClassReader reader = new ClassReader(bytes); - reader.accept(cnode, flags); - return cnode; - } - - public static byte[] createBytes(ClassNode cnode, int flags) { - ClassWriter cw = new CC_ClassWriter(flags); - cnode.accept(cw); - return cw.toByteArray(); - } - - public static Map cloneLabels(InsnList list) { - return new InsnListSection(list).cloneLabels(); - } - - public static InsnList cloneInsnList(InsnList list) { - return new InsnListSection(list).copy().list; - } - - public static InsnList cloneInsnList(Map labelMap, InsnList list) { - return new InsnListSection(list).copy(labelMap).list; - } - - public static List cloneTryCatchBlocks(Map labelMap, List tcblocks) { - ArrayList clone = new ArrayList(); - for (TryCatchBlockNode node : tcblocks) { - clone.add(new TryCatchBlockNode(labelMap.get(node.start), labelMap.get(node.end), labelMap.get(node.handler), node.type)); - } - - return clone; - } - - public static List cloneLocals(Map labelMap, List locals) { - ArrayList clone = new ArrayList(locals.size()); - for (LocalVariableNode node : locals) { - clone.add(new LocalVariableNode(node.name, node.desc, node.signature, labelMap.get(node.start), labelMap.get(node.end), node.index)); - } - - return clone; - } - - public static void copy(MethodNode src, MethodNode dst) { - Map labelMap = cloneLabels(src.instructions); - dst.instructions = cloneInsnList(labelMap, src.instructions); - dst.tryCatchBlocks = cloneTryCatchBlocks(labelMap, src.tryCatchBlocks); - if (src.localVariables != null) { - dst.localVariables = cloneLocals(labelMap, src.localVariables); - } - dst.visibleAnnotations = src.visibleAnnotations; - dst.invisibleAnnotations = src.invisibleAnnotations; - dst.visitMaxs(src.maxStack, src.maxLocals); - } - - public static String toString(InsnList list) { - return new InsnListSection(list).toString(); - } - - public static int getLocal(List list, String name) { - int found = -1; - for (LocalVariableNode node : list) { - if (node.name.equals(name)) { - if (found >= 0) { - throw new RuntimeException("Duplicate local variable: " + name + " not coded to handle this scenario."); - } - - found = node.index; - } - } - return found; - } - - public static void replaceMethod(MethodNode original, MethodNode replacement) { - original.instructions.clear(); - if (original.localVariables != null) { - original.localVariables.clear(); - } - if (original.tryCatchBlocks != null) { - original.tryCatchBlocks.clear(); - } - replacement.accept(original); - } - - public static void dump(Acceptor acceptor, File file, boolean filterImportant, boolean sortLocals, boolean textify) { - try { - if (!file.getParentFile().exists()) { - file.getParentFile().mkdirs(); - } - if (!file.exists()) { - file.createNewFile(); - } - - PrintWriter pout = new PrintWriter(file); - ClassVisitor cv = new TraceClassVisitor(null, textify ? new Textifier() : new ASMifier(), pout); - if (filterImportant) { - cv = new ImportantInsnVisitor(cv); - } - if (sortLocals) { - cv = new LocalVariablesSorterVisitor(cv); - } - acceptor.accept(cv); - pout.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public static void dump(Acceptor acceptor, File file, boolean filterImportant, boolean sortLocals) { - dump(acceptor, file, filterImportant, sortLocals, config.getTag("textify").getBooleanValue(true)); - } - - public static void dump(final byte[] bytes, File file, boolean filterImportant, boolean sortLocals) { - dump(new Acceptor() { - @Override - public void accept(ClassVisitor cv) { - new ClassReader(bytes).accept(cv, ClassReader.EXPAND_FRAMES); - } - }, file, filterImportant, sortLocals); - } - - public static void dump(final InputStream is, File file, boolean filterImportant, boolean sortLocals) { - dump(new Acceptor() { - @Override - public void accept(ClassVisitor cv) throws IOException { - new ClassReader(is).accept(cv, ClassReader.EXPAND_FRAMES); - } - }, file, filterImportant, sortLocals); - } - - public static void dump(final ClassNode cnode, File file, boolean filterImportant, boolean sortLocals) { - dump(new Acceptor() { - @Override - public void accept(ClassVisitor cv) { - cnode.accept(cv); - } - }, file, filterImportant, sortLocals); - } -} diff --git a/dependencies/main/java/codechicken/lib/asm/ASMReader.java b/dependencies/main/java/codechicken/lib/asm/ASMReader.java deleted file mode 100644 index a0ea35e124..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/ASMReader.java +++ /dev/null @@ -1,310 +0,0 @@ -package codechicken.lib.asm; - -import org.objectweb.asm.tree.*; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.HashMap; -import java.util.Map; - -import static org.objectweb.asm.Opcodes.*; -import static org.objectweb.asm.tree.AbstractInsnNode.*; - -public class ASMReader { - public static Map opCodes = new HashMap(); - public static byte[] TYPE; - - static { - opCodes.put("NOP", NOP); - opCodes.put("ACONST_NULL", ACONST_NULL); - opCodes.put("ICONST_M1", ICONST_M1); - opCodes.put("ICONST_0", ICONST_0); - opCodes.put("ICONST_1", ICONST_1); - opCodes.put("ICONST_2", ICONST_2); - opCodes.put("ICONST_3", ICONST_3); - opCodes.put("ICONST_4", ICONST_4); - opCodes.put("ICONST_5", ICONST_5); - opCodes.put("LCONST_0", LCONST_0); - opCodes.put("LCONST_1", LCONST_1); - opCodes.put("FCONST_0", FCONST_0); - opCodes.put("FCONST_1", FCONST_1); - opCodes.put("FCONST_2", FCONST_2); - opCodes.put("DCONST_0", DCONST_0); - opCodes.put("DCONST_1", DCONST_1); - opCodes.put("BIPUSH", BIPUSH); - opCodes.put("SIPUSH", SIPUSH); - opCodes.put("LDC", LDC); - opCodes.put("ILOAD", ILOAD); - opCodes.put("LLOAD", LLOAD); - opCodes.put("FLOAD", FLOAD); - opCodes.put("DLOAD", DLOAD); - opCodes.put("ALOAD", ALOAD); - opCodes.put("IALOAD", IALOAD); - opCodes.put("LALOAD", LALOAD); - opCodes.put("FALOAD", FALOAD); - opCodes.put("DALOAD", DALOAD); - opCodes.put("AALOAD", AALOAD); - opCodes.put("BALOAD", BALOAD); - opCodes.put("CALOAD", CALOAD); - opCodes.put("SALOAD", SALOAD); - opCodes.put("ISTORE", ISTORE); - opCodes.put("LSTORE", LSTORE); - opCodes.put("FSTORE", FSTORE); - opCodes.put("DSTORE", DSTORE); - opCodes.put("ASTORE", ASTORE); - opCodes.put("IASTORE", IASTORE); - opCodes.put("LASTORE", LASTORE); - opCodes.put("FASTORE", FASTORE); - opCodes.put("DASTORE", DASTORE); - opCodes.put("AASTORE", AASTORE); - opCodes.put("BASTORE", BASTORE); - opCodes.put("CASTORE", CASTORE); - opCodes.put("SASTORE", SASTORE); - opCodes.put("POP", POP); - opCodes.put("POP2", POP2); - opCodes.put("DUP", DUP); - opCodes.put("DUP_X1", DUP_X1); - opCodes.put("DUP_X2", DUP_X2); - opCodes.put("DUP2", DUP2); - opCodes.put("DUP2_X1", DUP2_X1); - opCodes.put("DUP2_X2", DUP2_X2); - opCodes.put("SWAP", SWAP); - opCodes.put("IADD", IADD); - opCodes.put("LADD", LADD); - opCodes.put("FADD", FADD); - opCodes.put("DADD", DADD); - opCodes.put("ISUB", ISUB); - opCodes.put("LSUB", LSUB); - opCodes.put("FSUB", FSUB); - opCodes.put("DSUB", DSUB); - opCodes.put("IMUL", IMUL); - opCodes.put("LMUL", LMUL); - opCodes.put("FMUL", FMUL); - opCodes.put("DMUL", DMUL); - opCodes.put("IDIV", IDIV); - opCodes.put("LDIV", LDIV); - opCodes.put("FDIV", FDIV); - opCodes.put("DDIV", DDIV); - opCodes.put("IREM", IREM); - opCodes.put("LREM", LREM); - opCodes.put("FREM", FREM); - opCodes.put("DREM", DREM); - opCodes.put("INEG", INEG); - opCodes.put("LNEG", LNEG); - opCodes.put("FNEG", FNEG); - opCodes.put("DNEG", DNEG); - opCodes.put("ISHL", ISHL); - opCodes.put("LSHL", LSHL); - opCodes.put("ISHR", ISHR); - opCodes.put("LSHR", LSHR); - opCodes.put("IUSHR", IUSHR); - opCodes.put("LUSHR", LUSHR); - opCodes.put("IAND", IAND); - opCodes.put("LAND", LAND); - opCodes.put("IOR", IOR); - opCodes.put("LOR", LOR); - opCodes.put("IXOR", IXOR); - opCodes.put("LXOR", LXOR); - opCodes.put("IINC", IINC); - opCodes.put("I2L", I2L); - opCodes.put("I2F", I2F); - opCodes.put("I2D", I2D); - opCodes.put("L2I", L2I); - opCodes.put("L2F", L2F); - opCodes.put("L2D", L2D); - opCodes.put("F2I", F2I); - opCodes.put("F2L", F2L); - opCodes.put("F2D", F2D); - opCodes.put("D2I", D2I); - opCodes.put("D2L", D2L); - opCodes.put("D2F", D2F); - opCodes.put("I2B", I2B); - opCodes.put("I2C", I2C); - opCodes.put("I2S", I2S); - opCodes.put("LCMP", LCMP); - opCodes.put("FCMPL", FCMPL); - opCodes.put("FCMPG", FCMPG); - opCodes.put("DCMPL", DCMPL); - opCodes.put("DCMPG", DCMPG); - opCodes.put("IFEQ", IFEQ); - opCodes.put("IFNE", IFNE); - opCodes.put("IFLT", IFLT); - opCodes.put("IFGE", IFGE); - opCodes.put("IFGT", IFGT); - opCodes.put("IFLE", IFLE); - opCodes.put("IF_ICMPEQ", IF_ICMPEQ); - opCodes.put("IF_ICMPNE", IF_ICMPNE); - opCodes.put("IF_ICMPLT", IF_ICMPLT); - opCodes.put("IF_ICMPGE", IF_ICMPGE); - opCodes.put("IF_ICMPGT", IF_ICMPGT); - opCodes.put("IF_ICMPLE", IF_ICMPLE); - opCodes.put("IF_ACMPEQ", IF_ACMPEQ); - opCodes.put("IF_ACMPNE", IF_ACMPNE); - opCodes.put("GOTO", GOTO); - opCodes.put("JSR", JSR); - opCodes.put("RET", RET); - opCodes.put("TABLESWITCH", TABLESWITCH); - opCodes.put("LOOKUPSWITCH", LOOKUPSWITCH); - opCodes.put("IRETURN", IRETURN); - opCodes.put("LRETURN", LRETURN); - opCodes.put("FRETURN", FRETURN); - opCodes.put("DRETURN", DRETURN); - opCodes.put("ARETURN", ARETURN); - opCodes.put("RETURN", RETURN); - opCodes.put("GETSTATIC", GETSTATIC); - opCodes.put("PUTSTATIC", PUTSTATIC); - opCodes.put("GETFIELD", GETFIELD); - opCodes.put("PUTFIELD", PUTFIELD); - opCodes.put("INVOKEVIRTUAL", INVOKEVIRTUAL); - opCodes.put("INVOKESPECIAL", INVOKESPECIAL); - opCodes.put("INVOKESTATIC", INVOKESTATIC); - opCodes.put("INVOKEINTERFACE", INVOKEINTERFACE); - opCodes.put("INVOKEDYNAMIC", INVOKEDYNAMIC); - opCodes.put("NEW", NEW); - opCodes.put("NEWARRAY", NEWARRAY); - opCodes.put("ANEWARRAY", ANEWARRAY); - opCodes.put("ARRAYLENGTH", ARRAYLENGTH); - opCodes.put("ATHROW", ATHROW); - opCodes.put("CHECKCAST", CHECKCAST); - opCodes.put("INSTANCEOF", INSTANCEOF); - opCodes.put("MONITORENTER", MONITORENTER); - opCodes.put("MONITOREXIT", MONITOREXIT); - opCodes.put("MULTIANEWARRAY", MULTIANEWARRAY); - opCodes.put("IFNULL", IFNULL); - opCodes.put("IFNONNULL", IFNONNULL); - - //derived from classWriter, mapped to AbstractInsnNode - TYPE = new byte[200]; - String s = "AAAAAAAAAAAAAAAABBJ__CCCCC____________________AAAAAAAACC" + "CCC____________________AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHCLMAA" + "AAAAEEEEFFFFGDBDAADDAA_NHH"; - for (int i = 0; i < s.length(); i++) { - TYPE[i] = (byte) (s.charAt(i) - 'A'); - } - } - - public static Map loadResource(String res) { - return loadResource(ASMHelper.class.getResourceAsStream(res), res); - } - - public static Map loadResource(InputStream in, String res) { - HashMap blocks = new HashMap(); - String current = "unnamed"; - ASMBlock block = new ASMBlock(); - try { - BufferedReader r = new BufferedReader(new InputStreamReader(in)); - String line; - while ((line = r.readLine()) != null) { - { - int hpos = line.indexOf('#'); - if (hpos >= 0) { - line = line.substring(0, hpos); - } - } - line = line.trim(); - if (line.length() == 0) { - continue; - } - if (line.startsWith("list ")) { - if (block.list.size() > 0) { - blocks.put(current, block); - } - current = line.substring(5); - block = new ASMBlock(); - continue; - } - - try { - AbstractInsnNode insn = null; - String[] split = line.replace(" : ", ":").split(" "); - Integer i_opcode = opCodes.get(split[0]); - if (i_opcode == null) { - if (split[0].equals("LINENUMBER")) { - insn = new LineNumberNode(Integer.parseInt(split[1]), block.getOrAdd(split[2])); - } else if (split[0].startsWith("L")) { - insn = block.getOrAdd(split[0]); - } else { - throw new Exception("Unknown opcode " + split[0]); - } - } else { - int opcode = i_opcode; - switch (TYPE[opcode]) { - case INSN: - insn = new InsnNode(opcode); - break; - case INT_INSN: - insn = new IntInsnNode(opcode, Integer.parseInt(split[1])); - break; - case VAR_INSN: - insn = new VarInsnNode(opcode, Integer.parseInt(split[1])); - break; - case TYPE_INSN: - insn = new ObfMapping(split[1]).toClassloading().toInsn(opcode); - break; - case FIELD_INSN: - case METHOD_INSN: - StringBuilder sb = new StringBuilder(); - for (int i = 1; i < split.length; i++) { - sb.append(split[i]); - } - insn = ObfMapping.fromDesc(sb.toString()).toClassloading().toInsn(opcode); - break; - case INVOKE_DYNAMIC_INSN: - throw new Exception("Found INVOKEDYNAMIC while reading"); - case JUMP_INSN: - insn = new JumpInsnNode(opcode, block.getOrAdd(split[1])); - break; - case LDC_INSN: - String cst = split[1]; - if (cst.equals("*")) { - insn = new LdcInsnNode(null); - } else if (cst.endsWith("\"")) { - insn = new LdcInsnNode(cst.substring(1, cst.length() - 1)); - } else if (cst.endsWith("L")) { - insn = new LdcInsnNode(Long.valueOf(cst.substring(0, cst.length() - 1))); - } else if (cst.endsWith("F")) { - insn = new LdcInsnNode(Float.valueOf(cst.substring(0, cst.length() - 1))); - } else if (cst.endsWith("D")) { - insn = new LdcInsnNode(Double.valueOf(cst.substring(0, cst.length() - 1))); - } else if (cst.contains(".")) { - insn = new LdcInsnNode(Double.valueOf(cst)); - } else { - insn = new LdcInsnNode(Integer.valueOf(cst)); - } - break; - case IINC_INSN: - insn = new IincInsnNode(opcode, Integer.parseInt(split[1])); - break; - case LABEL: - throw new Exception("Use L# for labels"); - case TABLESWITCH_INSN: - case LOOKUPSWITCH_INSN: - throw new Exception("I don't know how to deal with this insn type"); - case MULTIANEWARRAY_INSN: - insn = new MultiANewArrayInsnNode(split[1], Integer.parseInt(split[2])); - break; - case FRAME: - throw new Exception("Use ClassWriter.COMPUTE_FRAMES"); - } - } - - if (insn != null) { - block.list.add(insn); - } - } catch (Exception e) { - System.err.println("Error while reading ASM Block " + - current + " from " + res + ", line: " + line); - e.printStackTrace(); - } - } - - r.close(); - if (block.list.size() > 0) { - blocks.put(current, block); - } - } catch (IOException e) { - throw new RuntimeException("Failed to read ASM resource: " + res, e); - } - return blocks; - } -} diff --git a/dependencies/main/java/codechicken/lib/asm/CCLCorePlugin.java b/dependencies/main/java/codechicken/lib/asm/CCLCorePlugin.java deleted file mode 100644 index 7b447ec67e..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/CCLCorePlugin.java +++ /dev/null @@ -1,34 +0,0 @@ -package codechicken.lib.asm; - -import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; -import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin.TransformerExclusions; - -import java.util.Map; - -@TransformerExclusions({ "codechicken.lib.asm", "codechicken.lib.config" }) -public class CCLCorePlugin implements IFMLLoadingPlugin { - @Override - public String[] getASMTransformerClass() { - return new String[] { "codechicken.lib.asm.ClassHeirachyManager", "codechicken.lib.asm.RenderHookTransformer" }; - } - - @Override - public String getModContainerClass() { - return null; - } - - @Override - public String getSetupClass() { - return null; - } - - @Override - public void injectData(Map data) { - - } - - @Override - public String getAccessTransformerClass() { - return null; - } -} diff --git a/dependencies/main/java/codechicken/lib/asm/CC_ClassWriter.java b/dependencies/main/java/codechicken/lib/asm/CC_ClassWriter.java deleted file mode 100644 index d0c7db4370..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/CC_ClassWriter.java +++ /dev/null @@ -1,32 +0,0 @@ -package codechicken.lib.asm; - -import org.objectweb.asm.ClassWriter; - -public class CC_ClassWriter extends ClassWriter { - private final boolean runtime; - - public CC_ClassWriter(int flags) { - this(flags, false); - } - - public CC_ClassWriter(int flags, boolean runtime) { - super(flags); - this.runtime = runtime; - } - - @Override - protected String getCommonSuperClass(String type1, String type2) { - String c = type1.replace('/', '.'); - String d = type2.replace('/', '.'); - if (ClassHeirachyManager.classExtends(d, c)) { - return type1; - } - if (ClassHeirachyManager.classExtends(c, d)) { - return type2; - } - do - c = ClassHeirachyManager.getSuperClass(c, runtime); while (!ClassHeirachyManager.classExtends(d, c)); - - return c.replace('.', '/'); - } -} diff --git a/dependencies/main/java/codechicken/lib/asm/ClassHeirachyManager.java b/dependencies/main/java/codechicken/lib/asm/ClassHeirachyManager.java deleted file mode 100644 index 31b1dbbe43..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/ClassHeirachyManager.java +++ /dev/null @@ -1,179 +0,0 @@ -package codechicken.lib.asm; - -import net.minecraft.launchwrapper.IClassTransformer; -import net.minecraft.launchwrapper.Launch; -import net.minecraft.launchwrapper.LaunchClassLoader; -import net.minecraftforge.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper; -import org.objectweb.asm.tree.ClassNode; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; - -/** - * This is added as a class transformer if CodeChickenCore is installed. Adding it as a class transformer will speed evaluation up slightly by automatically caching superclasses when they are first loaded. - */ -public class ClassHeirachyManager implements IClassTransformer { - public static class SuperCache { - String superclass; - public HashSet parents = new HashSet(); - private boolean flattened; - - public void add(String parent) { - parents.add(parent); - } - - public void flatten() { - if (flattened) { - return; - } - - for (String s : new ArrayList(parents)) { - SuperCache c = declareClass(s); - if (c != null) { - c.flatten(); - parents.addAll(c.parents); - } - } - flattened = true; - } - } - - public static HashMap superclasses = new HashMap(); - private static LaunchClassLoader cl = Launch.classLoader; - - public static String toKey(String name) { - if (ObfMapping.obfuscated) { - name = FMLDeobfuscatingRemapper.INSTANCE.map(name.replace('.', '/')).replace('/', '.'); - } - return name; - } - - public static String unKey(String name) { - if (ObfMapping.obfuscated) { - name = FMLDeobfuscatingRemapper.INSTANCE.unmap(name.replace('.', '/')).replace('/', '.'); - } - return name; - } - - /** - * @param name The class in question - * @param superclass The class being extended - * @return true if clazz extends, either directly or indirectly, superclass. - */ - public static boolean classExtends(String name, String superclass) { - name = toKey(name); - superclass = toKey(superclass); - - if (name.equals(superclass)) { - return true; - } - - SuperCache cache = declareClass(name); - if (cache == null)//just can't handle this - { - return false; - } - - cache.flatten(); - return cache.parents.contains(superclass); - } - - private static SuperCache declareClass(String name) { - name = toKey(name); - SuperCache cache = superclasses.get(name); - - if (cache != null) { - return cache; - } - - try { - byte[] bytes = cl.getClassBytes(unKey(name)); - if (bytes != null) { - cache = declareASM(bytes); - } - } catch (Exception e) { - } - - if (cache != null) { - return cache; - } - - try { - cache = declareReflection(name); - } catch (ClassNotFoundException e) { - } - - return cache; - } - - private static SuperCache declareReflection(String name) throws ClassNotFoundException { - Class aclass = Class.forName(name); - - SuperCache cache = getOrCreateCache(name); - if (aclass.isInterface()) { - cache.superclass = "java.lang.Object"; - } else if (name.equals("java.lang.Object")) { - return cache; - } else { - cache.superclass = toKey(aclass.getSuperclass().getName()); - } - - cache.add(cache.superclass); - for (Class iclass : aclass.getInterfaces()) { - cache.add(toKey(iclass.getName())); - } - - return cache; - } - - private static SuperCache declareASM(byte[] bytes) { - ClassNode node = ASMHelper.createClassNode(bytes); - String name = toKey(node.name); - - SuperCache cache = getOrCreateCache(name); - cache.superclass = toKey(node.superName.replace('/', '.')); - cache.add(cache.superclass); - for (String iclass : node.interfaces) { - cache.add(toKey(iclass.replace('/', '.'))); - } - - return cache; - } - - @Override - public byte[] transform(String name, String tname, byte[] bytes) { - if (bytes == null) { - return null; - } - - if (!superclasses.containsKey(tname)) { - declareASM(bytes); - } - - return bytes; - } - - public static SuperCache getOrCreateCache(String name) { - SuperCache cache = superclasses.get(name); - if (cache == null) { - superclasses.put(name, cache = new SuperCache()); - } - return cache; - } - - public static String getSuperClass(String name, boolean runtime) { - name = toKey(name); - SuperCache cache = declareClass(name); - if (cache == null) { - return "java.lang.Object"; - } - - cache.flatten(); - String s = cache.superclass; - if (!runtime) { - s = FMLDeobfuscatingRemapper.INSTANCE.unmap(s); - } - return s; - } -} diff --git a/dependencies/main/java/codechicken/lib/asm/ImportantInsnVisitor.java b/dependencies/main/java/codechicken/lib/asm/ImportantInsnVisitor.java deleted file mode 100644 index 9368bfc45d..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/ImportantInsnVisitor.java +++ /dev/null @@ -1,34 +0,0 @@ -package codechicken.lib.asm; - -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.tree.MethodNode; - -public class ImportantInsnVisitor extends ClassVisitor { - public class ImportantInsnMethodVisitor extends MethodVisitor { - MethodVisitor delegate; - - public ImportantInsnMethodVisitor(int access, String name, String desc, String signature, String[] exceptions) { - super(Opcodes.ASM4, new MethodNode(access, name, desc, signature, exceptions)); - delegate = cv.visitMethod(access, name, desc, signature, exceptions); - } - - @Override - public void visitEnd() { - super.visitEnd(); - MethodNode mnode = (MethodNode) mv; - mnode.instructions = InsnComparator.getImportantList(mnode.instructions); - mnode.accept(delegate); - } - } - - public ImportantInsnVisitor(ClassVisitor cv) { - super(Opcodes.ASM4, cv); - } - - @Override - public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { - return new ImportantInsnMethodVisitor(access, name, desc, signature, exceptions); - } -} diff --git a/dependencies/main/java/codechicken/lib/asm/InsnComparator.java b/dependencies/main/java/codechicken/lib/asm/InsnComparator.java deleted file mode 100644 index 8474c1610e..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/InsnComparator.java +++ /dev/null @@ -1,198 +0,0 @@ -package codechicken.lib.asm; - -import com.google.common.base.Function; -import com.google.common.collect.Maps; -import org.objectweb.asm.tree.*; - -import java.util.*; - -import static org.objectweb.asm.tree.AbstractInsnNode.*; - -public class InsnComparator { - public static boolean varInsnEqual(VarInsnNode insn1, VarInsnNode insn2) { - return insn1.var == -1 || insn2.var == -1 || insn1.var == insn2.var; - } - - public static boolean methodInsnEqual(MethodInsnNode insn1, MethodInsnNode insn2) { - return insn1.owner.equals(insn2.owner) && insn1.name.equals(insn2.name) && insn1.desc.equals(insn2.desc); - } - - public static boolean fieldInsnEqual(FieldInsnNode insn1, FieldInsnNode insn2) { - return insn1.owner.equals(insn2.owner) && insn1.name.equals(insn2.name) && insn1.desc.equals(insn2.desc); - } - - public static boolean ldcInsnEqual(LdcInsnNode insn1, LdcInsnNode insn2) { - return insn1.cst == null || insn2.cst == null || insn1.cst.equals(insn2.cst); - } - - public static boolean typeInsnEqual(TypeInsnNode insn1, TypeInsnNode insn2) { - return insn1.desc.equals("*") || insn2.desc.equals("*") || insn1.desc.equals(insn2.desc); - } - - public static boolean iincInsnEqual(IincInsnNode node1, IincInsnNode node2) { - return node1.var == node2.var && node1.incr == node2.incr; - } - - public static boolean intInsnEqual(IntInsnNode node1, IntInsnNode node2) { - return node1.operand == -1 || node2.operand == -1 || node1.operand == node2.operand; - } - - public static boolean insnEqual(AbstractInsnNode node1, AbstractInsnNode node2) { - if (node1.getOpcode() != node2.getOpcode()) { - return false; - } - - switch (node2.getType()) { - case VAR_INSN: - return varInsnEqual((VarInsnNode) node1, (VarInsnNode) node2); - case TYPE_INSN: - return typeInsnEqual((TypeInsnNode) node1, (TypeInsnNode) node2); - case FIELD_INSN: - return fieldInsnEqual((FieldInsnNode) node1, (FieldInsnNode) node2); - case METHOD_INSN: - return methodInsnEqual((MethodInsnNode) node1, (MethodInsnNode) node2); - case LDC_INSN: - return ldcInsnEqual((LdcInsnNode) node1, (LdcInsnNode) node2); - case IINC_INSN: - return iincInsnEqual((IincInsnNode) node1, (IincInsnNode) node2); - case INT_INSN: - return intInsnEqual((IntInsnNode) node1, (IntInsnNode) node2); - default: - return true; - } - } - - public static boolean insnImportant(AbstractInsnNode insn, Set controlFlowLabels) { - switch (insn.getType()) { - case LINE: - case FRAME: - return false; - case LABEL: - return controlFlowLabels.contains(insn); - default: - return true; - } - } - - public static Set getControlFlowLabels(InsnListSection list) { - return getControlFlowLabels(list.list); - } - - public static Set getControlFlowLabels(InsnList list) { - HashSet controlFlowLabels = new HashSet(); - for (AbstractInsnNode insn = list.getFirst(); insn != null; insn = insn.getNext()) { - switch (insn.getType()) { - case JUMP_INSN: - JumpInsnNode jinsn = (JumpInsnNode) insn; - controlFlowLabels.add(jinsn.label); - break; - case TABLESWITCH_INSN: - TableSwitchInsnNode tsinsn = (TableSwitchInsnNode) insn; - controlFlowLabels.add(tsinsn.dflt); - for (LabelNode label : tsinsn.labels) { - controlFlowLabels.add(label); - } - break; - case LOOKUPSWITCH_INSN: - LookupSwitchInsnNode lsinsn = (LookupSwitchInsnNode) insn; - controlFlowLabels.add(lsinsn.dflt); - for (LabelNode label : lsinsn.labels) { - controlFlowLabels.add(label); - } - break; - } - } - return controlFlowLabels; - } - - public static InsnList getImportantList(InsnList list) { - return getImportantList(new InsnListSection(list)).list; - } - - public static InsnListSection getImportantList(InsnListSection list) { - if (list.size() == 0) { - return list; - } - - Set controlFlowLabels = getControlFlowLabels(list); - Map labelMap = Maps.asMap(controlFlowLabels, new Function() { - @Override - public LabelNode apply(LabelNode input) { - return input; - } - }); - - InsnListSection importantNodeList = new InsnListSection(); - for (AbstractInsnNode insn : list) { - if (insnImportant(insn, controlFlowLabels)) { - importantNodeList.add(insn.clone(labelMap)); - } - } - - return importantNodeList; - } - - public static List find(InsnListSection haystack, InsnListSection needle) { - Set controlFlowLabels = getControlFlowLabels(haystack); - LinkedList list = new LinkedList(); - for (int start = 0; start <= haystack.size() - needle.size(); start++) { - InsnListSection section = matches(haystack.drop(start), needle, controlFlowLabels); - if (section != null) { - list.add(section); - start = section.end - 1; - } - } - - return list; - } - - public static List find(InsnList haystack, InsnListSection needle) { - return find(new InsnListSection(haystack), needle); - } - - public static InsnListSection matches(InsnListSection haystack, InsnListSection needle, Set controlFlowLabels) { - int h = 0, n = 0; - for (; h < haystack.size() && n < needle.size(); h++) { - AbstractInsnNode insn = haystack.get(h); - if (!insnImportant(insn, controlFlowLabels)) { - continue; - } - - if (!insnEqual(haystack.get(h), needle.get(n))) { - return null; - } - n++; - } - if (n != needle.size()) { - return null; - } - - return haystack.take(h); - } - - public static InsnListSection findOnce(InsnListSection haystack, InsnListSection needle) { - List list = find(haystack, needle); - if (list.size() != 1) { - throw new RuntimeException("Needle found " + list.size() + " times in Haystack:\n" + haystack + "\n\n" + needle); - } - - return list.get(0); - } - - public static InsnListSection findOnce(InsnList haystack, InsnListSection needle) { - return findOnce(new InsnListSection(haystack), needle); - } - - public static List findN(InsnListSection haystack, InsnListSection needle) { - List list = find(haystack, needle); - if (list.isEmpty()) { - throw new RuntimeException("Needle not found in Haystack:\n" + haystack + "\n\n" + needle); - } - - return list; - } - - public static List findN(InsnList haystack, InsnListSection needle) { - return findN(new InsnListSection(haystack), needle); - } -} diff --git a/dependencies/main/java/codechicken/lib/asm/InsnListSection.java b/dependencies/main/java/codechicken/lib/asm/InsnListSection.java deleted file mode 100644 index 38b0d2d311..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/InsnListSection.java +++ /dev/null @@ -1,257 +0,0 @@ -package codechicken.lib.asm; - -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.tree.*; -import org.objectweb.asm.util.Textifier; -import org.objectweb.asm.util.TraceMethodVisitor; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - -import static org.objectweb.asm.tree.AbstractInsnNode.*; - -/** - * A section of an InsnList, may become invalid if the insn list is modified - */ -public class InsnListSection implements Iterable { - private class InsnListSectionIterator implements Iterator { - int i = 0; - - @Override - public boolean hasNext() { - return i < size(); - } - - @Override - public AbstractInsnNode next() { - return get(i++); - } - - @Override - public void remove() { - InsnListSection.this.remove(--i); - } - } - - public InsnList list; - public int start; - public int end; - - public InsnListSection(InsnList list, int start, int end) { - this.list = list; - this.start = start; - this.end = end; - } - - public InsnListSection(InsnList list, AbstractInsnNode first, AbstractInsnNode last) { - this(list, list.indexOf(first), list.indexOf(last) + 1); - } - - public InsnListSection(InsnList list) { - this(list, 0, list.size()); - } - - public InsnListSection() { - this(new InsnList()); - } - - public void accept(MethodVisitor mv) { - for (AbstractInsnNode insn : this) { - insn.accept(mv); - } - } - - public AbstractInsnNode getFirst() { - return size() == 0 ? null : list.get(start); - } - - public AbstractInsnNode getLast() { - return size() == 0 ? null : list.get(end - 1); - } - - public int size() { - return end - start; - } - - public AbstractInsnNode get(int i) { - return list.get(start + i); - } - - public void set(int i, AbstractInsnNode insn) { - list.set(get(i), insn); - } - - public void remove(int i) { - list.remove(get(i)); - end--; - } - - public void replace(AbstractInsnNode location, AbstractInsnNode insn) { - list.set(location, insn); - } - - public void add(AbstractInsnNode insn) { - list.add(insn); - end++; - } - - public void insertBefore(InsnList insns) { - int s = insns.size(); - if (this.list.size() == 0) { - list.insert(insns); - } else { - list.insertBefore(list.get(start), insns); - } - start += s; - end += s; - } - - public void insert(InsnList insns) { - if (end == 0) { - list.insert(insns); - } else { - list.insert(list.get(end - 1), insns); - } - } - - public void replace(InsnList insns) { - int s = insns.size(); - remove(); - insert(insns); - end = start + s; - } - - public void remove() { - while (end != start) { - remove(0); - } - } - - public void setLast(AbstractInsnNode last) { - end = list.indexOf(last) + 1; - } - - public void setFirst(AbstractInsnNode first) { - start = list.indexOf(first); - } - - public InsnListSection drop(int n) { - return slice(n, size()); - } - - public InsnListSection take(int n) { - return slice(0, n); - } - - public InsnListSection slice(int start, int end) { - return new InsnListSection(list, this.start + start, this.start + end); - } - - /** - * Removes leading and trailing labels and line number nodes that don't affect control flow - * - * @return this - */ - public InsnListSection trim(Set controlFlowLabels) { - while (start < end && !InsnComparator.insnImportant(getFirst(), controlFlowLabels)) { - start++; - } - - while (start < end && !InsnComparator.insnImportant(getLast(), controlFlowLabels)) { - end--; - } - - return this; - } - - public String toString() { - Textifier t = new Textifier(); - accept(new TraceMethodVisitor(t)); - StringWriter sw = new StringWriter(); - t.print(new PrintWriter(sw)); - return sw.toString(); - } - - public void println() { - System.out.println(toString()); - } - - public HashMap identityLabelMap() { - HashMap labelMap = new HashMap(); - for (AbstractInsnNode insn : this) { - switch (insn.getType()) { - case LABEL: - labelMap.put((LabelNode) insn, (LabelNode) insn); - break; - case JUMP_INSN: - labelMap.put(((JumpInsnNode) insn).label, ((JumpInsnNode) insn).label); - break; - case LOOKUPSWITCH_INSN: - LookupSwitchInsnNode linsn = (LookupSwitchInsnNode) insn; - labelMap.put(linsn.dflt, linsn.dflt); - for (LabelNode label : linsn.labels) { - labelMap.put(label, label); - } - break; - case TABLESWITCH_INSN: - TableSwitchInsnNode tinsn = (TableSwitchInsnNode) insn; - labelMap.put(tinsn.dflt, tinsn.dflt); - for (LabelNode label : tinsn.labels) { - labelMap.put(label, label); - } - break; - case FRAME: - FrameNode fnode = (FrameNode) insn; - if (fnode.local != null) { - for (Object o : fnode.local) { - if (o instanceof LabelNode) { - labelMap.put((LabelNode) o, (LabelNode) o); - } - } - } - if (fnode.stack != null) { - for (Object o : fnode.stack) { - if (o instanceof LabelNode) { - labelMap.put((LabelNode) o, (LabelNode) o); - } - } - } - break; - } - } - - return labelMap; - } - - public Map cloneLabels() { - Map labelMap = identityLabelMap(); - for (Entry entry : labelMap.entrySet()) { - entry.setValue(new LabelNode()); - } - - return labelMap; - } - - public InsnListSection copy() { - return copy(cloneLabels()); - } - - public InsnListSection copy(Map labelMap) { - InsnListSection copy = new InsnListSection(); - for (AbstractInsnNode insn : this) { - copy.add(insn.clone(labelMap)); - } - - return copy; - } - - @Override - public Iterator iterator() { - return new InsnListSectionIterator(); - } -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/lib/asm/LocalVariablesSorterVisitor.java b/dependencies/main/java/codechicken/lib/asm/LocalVariablesSorterVisitor.java deleted file mode 100644 index 81c2eefbd0..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/LocalVariablesSorterVisitor.java +++ /dev/null @@ -1,36 +0,0 @@ -package codechicken.lib.asm; - -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.commons.LocalVariablesSorter; - -import java.util.Set; - -public class LocalVariablesSorterVisitor extends ClassVisitor { - public Set methods; - public String owner; - - public LocalVariablesSorterVisitor(Set methods, ClassVisitor cv) { - super(Opcodes.ASM4, cv); - this.methods = methods; - } - - public LocalVariablesSorterVisitor(ClassVisitor cv) { - this(null, cv); - } - - @Override - public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { - super.visit(version, access, name, signature, superName, interfaces); - owner = name; - } - - @Override - public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { - MethodVisitor mv = cv.visitMethod(access, name, desc, signature, exceptions); - return methods == null || methods.contains(new ObfMapping(owner, name, desc)) ? new LocalVariablesSorter(access, desc, mv) : mv; - } -} - - \ No newline at end of file diff --git a/dependencies/main/java/codechicken/lib/asm/ModularASMTransformer.java b/dependencies/main/java/codechicken/lib/asm/ModularASMTransformer.java deleted file mode 100644 index 0c019f017e..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/ModularASMTransformer.java +++ /dev/null @@ -1,290 +0,0 @@ -package codechicken.lib.asm; - -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.tree.ClassNode; -import org.objectweb.asm.tree.InsnList; -import org.objectweb.asm.tree.MethodNode; - -import java.io.File; -import java.util.*; - -import static codechicken.lib.asm.ASMHelper.*; - -public class ModularASMTransformer { - public static class ClassNodeTransformerList { - List transformers = new LinkedList(); - HashSet methodsToSort = new HashSet(); - - public void add(ClassNodeTransformer t) { - transformers.add(t); - t.addMethodsToSort(methodsToSort); - } - - public byte[] transform(byte[] bytes) { - ClassNode cnode = new ClassNode(); - ClassReader reader = new ClassReader(bytes); - ClassVisitor cv = cnode; - if (!methodsToSort.isEmpty()) { - cv = new LocalVariablesSorterVisitor(methodsToSort, cv); - } - reader.accept(cv, ClassReader.EXPAND_FRAMES); - - try { - int writeFlags = 0; - for (ClassNodeTransformer t : transformers) { - t.transform(cnode); - writeFlags |= t.writeFlags; - } - - bytes = createBytes(cnode, writeFlags); - if (config.getTag("dump_asm").getBooleanValue(true)) { - dump(bytes, new File("asm/ccl_modular/" + cnode.name.replace('/', '#') + ".txt"), false, false); - } - return bytes; - } catch (RuntimeException e) { - dump(bytes, new File("asm/ccl_modular/" + cnode.name.replace('/', '#') + ".txt"), false, false); - throw e; - } - } - } - - public static abstract class ClassNodeTransformer { - public int writeFlags; - - public ClassNodeTransformer(int writeFlags) { - this.writeFlags = writeFlags; - } - - public ClassNodeTransformer() { - this(ClassWriter.COMPUTE_FRAMES | ClassWriter.COMPUTE_MAXS); - } - - public abstract String className(); - - public abstract void transform(ClassNode cnode); - - public void addMethodsToSort(Set set) { - } - } - - public static abstract class MethodTransformer extends ClassNodeTransformer { - public final ObfMapping method; - - public MethodTransformer(ObfMapping method) { - this.method = method.toClassloading(); - } - - @Override - public String className() { - return method.javaClass(); - } - - @Override - public void transform(ClassNode cnode) { - MethodNode mv = findMethod(method, cnode); - if (mv == null) { - throw new RuntimeException("Method not found: " + method); - } - - try { - transform(mv); - } catch (Exception e) { - throw new RuntimeException("Error transforming method: " + method, e); - } - } - - public abstract void transform(MethodNode mv); - } - - public static class MethodWriter extends ClassNodeTransformer { - public final int access; - public final ObfMapping method; - public final String[] exceptions; - public InsnList list; - - public MethodWriter(int access, ObfMapping method) { - this(access, method, null, (InsnList) null); - } - - public MethodWriter(int access, ObfMapping method, InsnList list) { - this(access, method, null, list); - } - - public MethodWriter(int access, ObfMapping method, ASMBlock block) { - this(access, method, null, block); - } - - public MethodWriter(int access, ObfMapping method, String[] exceptions) { - this(access, method, exceptions, (InsnList) null); - } - - public MethodWriter(int access, ObfMapping method, String[] exceptions, InsnList list) { - this.access = access; - this.method = method.toClassloading(); - this.exceptions = exceptions; - this.list = list; - } - - public MethodWriter(int access, ObfMapping method, String[] exceptions, ASMBlock block) { - this(access, method, exceptions, block.rawListCopy()); - } - - @Override - public String className() { - return method.javaClass(); - } - - @Override - public void transform(ClassNode cnode) { - MethodNode mv = findMethod(method, cnode); - if (mv == null) { - mv = (MethodNode) method.visitMethod(cnode, access, exceptions); - } else { - mv.access = access; - mv.instructions.clear(); - if (mv.localVariables != null) { - mv.localVariables.clear(); - } - if (mv.tryCatchBlocks != null) { - mv.tryCatchBlocks.clear(); - } - } - - write(mv); - } - - public void write(MethodNode mv) { - logger.debug("Writing method " + method); - list.accept(mv); - } - } - - public static class MethodInjector extends MethodTransformer { - public ASMBlock needle; - public ASMBlock injection; - public boolean before; - - public MethodInjector(ObfMapping method, ASMBlock needle, ASMBlock injection, boolean before) { - super(method); - this.needle = needle; - this.injection = injection; - this.before = before; - } - - public MethodInjector(ObfMapping method, ASMBlock injection, boolean before) { - this(method, null, injection, before); - } - - public MethodInjector(ObfMapping method, InsnList needle, InsnList injection, boolean before) { - this(method, new ASMBlock(needle), new ASMBlock(injection), before); - } - - public MethodInjector(ObfMapping method, InsnList injection, boolean before) { - this(method, null, new ASMBlock(injection), before); - } - - @Override - public void addMethodsToSort(Set set) { - set.add(method); - } - - @Override - public void transform(MethodNode mv) { - if (needle == null) { - logger.debug("Injecting " + (before ? "before" : "after") + " method " + method); - if (before) { - mv.instructions.insert(injection.rawListCopy()); - } else { - mv.instructions.add(injection.rawListCopy()); - } - } else { - for (InsnListSection key : InsnComparator.findN(mv.instructions, needle.list)) { - logger.debug("Injecting " + (before ? "before" : "after") + " method " + method + " @ " + key.start + " - " + key.end); - ASMBlock injectBlock = injection.copy().mergeLabels(needle.applyLabels(key)); - - if (before) { - key.insertBefore(injectBlock.list.list); - } else { - key.insert(injectBlock.list.list); - } - } - } - } - } - - public static class MethodReplacer extends MethodTransformer { - public ASMBlock needle; - public ASMBlock replacement; - - public MethodReplacer(ObfMapping method, ASMBlock needle, ASMBlock replacement) { - super(method); - this.needle = needle; - this.replacement = replacement; - } - - public MethodReplacer(ObfMapping method, InsnList needle, InsnList replacement) { - this(method, new ASMBlock(needle), new ASMBlock(replacement)); - } - - @Override - public void addMethodsToSort(Set set) { - set.add(method); - } - - @Override - public void transform(MethodNode mv) { - for (InsnListSection key : InsnComparator.findN(mv.instructions, needle.list)) { - logger.debug("Replacing method " + method + " @ " + key.start + " - " + key.end); - ASMBlock replaceBlock = replacement.copy().pullLabels(needle.applyLabels(key)); - key.insert(replaceBlock.list.list); - } - } - } - - public static class FieldWriter extends ClassNodeTransformer { - public final ObfMapping field; - public final int access; - public final Object value; - - public FieldWriter(int access, ObfMapping field, Object value) { - this.field = field.toClassloading(); - this.access = access; - this.value = value; - } - - public FieldWriter(int access, ObfMapping field) { - this(access, field, null); - } - - @Override - public String className() { - return field.javaClass(); - } - - @Override - public void transform(ClassNode cnode) { - field.visitField(cnode, access, value); - } - } - - public HashMap transformers = new HashMap(); - - public void add(ClassNodeTransformer t) { - ClassNodeTransformerList list = transformers.get(t.className()); - if (list == null) { - transformers.put(t.className(), list = new ClassNodeTransformerList()); - } - list.add(t); - } - - public byte[] transform(String name, byte[] bytes) { - if (bytes == null) { - return null; - } - - ClassNodeTransformerList list = transformers.get(name); - return list == null ? bytes : list.transform(bytes); - } -} diff --git a/dependencies/main/java/codechicken/lib/asm/ObfMapping.java b/dependencies/main/java/codechicken/lib/asm/ObfMapping.java deleted file mode 100644 index 5754e69e1c..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/ObfMapping.java +++ /dev/null @@ -1,445 +0,0 @@ -package codechicken.lib.asm; - -import codechicken.lib.config.ConfigTag; -import com.google.common.base.Charsets; -import com.google.common.base.Objects; -import com.google.common.base.Strings; -import com.google.common.io.LineProcessor; -import com.google.common.io.Resources; -import net.minecraft.launchwrapper.Launch; -import net.minecraftforge.common.ForgeVersion; -import net.minecraftforge.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper; -import net.minecraftforge.fml.relauncher.FMLInjectionData; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.FieldVisitor; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.commons.Remapper; -import org.objectweb.asm.tree.*; - -import javax.swing.*; -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Field; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; - -public class ObfMapping { - public static class ObfRemapper extends Remapper { - private HashMap fields = new HashMap(); - private HashMap funcs = new HashMap(); - - public ObfRemapper() { - try { - Field rawFieldMapsField = FMLDeobfuscatingRemapper.class.getDeclaredField("rawFieldMaps"); - Field rawMethodMapsField = FMLDeobfuscatingRemapper.class.getDeclaredField("rawMethodMaps"); - rawFieldMapsField.setAccessible(true); - rawMethodMapsField.setAccessible(true); - Map> rawFieldMaps = (Map>) rawFieldMapsField.get(FMLDeobfuscatingRemapper.INSTANCE); - Map> rawMethodMaps = (Map>) rawMethodMapsField.get(FMLDeobfuscatingRemapper.INSTANCE); - - if (rawFieldMaps == null) { - throw new IllegalStateException("codechicken.lib.asm.ObfMapping loaded too early. Make sure all references are in or after the asm transformer load stage"); - } - - for (Map map : rawFieldMaps.values()) { - for (Entry entry : map.entrySet()) { - if (entry.getValue().startsWith("field")) { - fields.put(entry.getValue(), entry.getKey().substring(0, entry.getKey().indexOf(':'))); - } - } - } - for (Map map : rawMethodMaps.values()) { - for (Entry entry : map.entrySet()) { - if (entry.getValue().startsWith("func")) { - funcs.put(entry.getValue(), entry.getKey().substring(0, entry.getKey().indexOf('('))); - } - } - } - - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - @Override - public String mapMethodName(String owner, String name, String desc) { - String s = funcs.get(name); - return s == null ? name : s; - } - - @Override - public String mapFieldName(String owner, String name, String desc) { - String s = fields.get(name); - return s == null ? name : s; - } - - @Override - public String map(String typeName) { - return FMLDeobfuscatingRemapper.INSTANCE.unmap(typeName); - } - - public String unmap(String typeName) { - return FMLDeobfuscatingRemapper.INSTANCE.map(typeName); - } - - public boolean isObf(String typeName) { - return !map(typeName).equals(typeName) || !unmap(typeName).equals(typeName); - } - } - - public static class MCPRemapper extends Remapper implements LineProcessor { - public static File[] getConfFiles() { - - // check for GradleStart system vars - if (!Strings.isNullOrEmpty(System.getProperty("net.minecraftforge.gradle.GradleStart.srgDir"))) { - File srgDir = new File(System.getProperty("net.minecraftforge.gradle.GradleStart.srgDir")); - File csvDir = new File(System.getProperty("net.minecraftforge.gradle.GradleStart.csvDir")); - - if (srgDir.exists() && csvDir.exists()) { - File srg = new File(srgDir, "notch-srg.srg"); - File fieldCsv = new File(csvDir, "fields.csv"); - File methodCsv = new File(csvDir, "methods.csv"); - - if (srg.exists() && fieldCsv.exists() && methodCsv.exists()) { - return new File[] { srg, fieldCsv, methodCsv }; - } - } - } - - ConfigTag tag = ASMHelper.config.getTag("mappingDir").setComment("Path to directory holding packaged.srg, fields.csv and methods.csv for mcp remapping"); - for (int i = 0; i < DIR_GUESSES + DIR_ASKS; i++) { - File dir = confDirectoryGuess(i, tag); - if (dir == null || dir.isFile()) { - continue; - } - - File[] mappings; - try { - mappings = parseConfDir(dir); - } catch (Exception e) { - if (i >= DIR_GUESSES) { - e.printStackTrace(); - } - continue; - } - - tag.setValue(dir.getPath()); - return mappings; - } - - throw new RuntimeException("Failed to select mappings directory, set it manually in the config"); - } - - private static final int DIR_GUESSES = 4; - private static final int DIR_ASKS = 3; - - public static File confDirectoryGuess(int i, ConfigTag tag) { - File mcDir = (File) FMLInjectionData.data()[6]; - switch (i) { - case 0: - return tag.value != null ? new File(tag.getValue()) : null; - case 1: - return new File(mcDir, "../conf"); - case 2: - return new File(mcDir, "../build/unpacked/conf"); - case 3: - return new File(System.getProperty("user.home"), ".gradle/caches/minecraft/net/minecraftforge/forge/" + - FMLInjectionData.data()[4] + "-" + ForgeVersion.getVersion() + "/unpacked/conf"); - default: - JFileChooser fc = new JFileChooser(mcDir); - fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); - fc.setDialogTitle("Select an mcp conf dir for the deobfuscator."); - int ret = fc.showDialog(null, "Select"); - return ret == JFileChooser.APPROVE_OPTION ? fc.getSelectedFile() : null; - } - } - - public static File[] parseConfDir(File confDir) { - File srgDir = new File(confDir, "conf"); - if (!srgDir.exists()) { - srgDir = confDir; - } - - File srgs = new File(srgDir, "packaged.srg"); - if (!srgs.exists()) { - srgs = new File(srgDir, "joined.srg"); - } - if (!srgs.exists()) { - throw new RuntimeException("Could not find packaged.srg or joined.srg"); - } - - File mapDir = new File(confDir, "mappings"); - if (!mapDir.exists()) { - mapDir = confDir; - } - - File methods = new File(mapDir, "methods.csv"); - if (!methods.exists()) { - throw new RuntimeException("Could not find methods.csv"); - } - File fields = new File(mapDir, "fields.csv"); - if (!fields.exists()) { - throw new RuntimeException("Could not find fields.csv"); - } - - return new File[] { srgs, methods, fields }; - } - - private HashMap fields = new HashMap(); - private HashMap funcs = new HashMap(); - - public MCPRemapper() { - File[] mappings = getConfFiles(); - try { - Resources.readLines(mappings[1].toURI().toURL(), Charsets.UTF_8, this); - Resources.readLines(mappings[2].toURI().toURL(), Charsets.UTF_8, this); - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public String mapMethodName(String owner, String name, String desc) { - String s = funcs.get(name); - return s == null ? name : s; - } - - @Override - public String mapFieldName(String owner, String name, String desc) { - String s = fields.get(name); - return s == null ? name : s; - } - - @Override - public boolean processLine(String line) throws IOException { - int i = line.indexOf(','); - String srg = line.substring(0, i); - int i2 = i + 1; - i = line.indexOf(',', i2); - String mcp = line.substring(i2, i); - (srg.startsWith("func") ? funcs : fields).put(srg, mcp); - return true; - } - - @Override - public Void getResult() { - return null; - } - } - - public static ObfRemapper obfMapper = new ObfRemapper(); - public static Remapper mcpMapper = null; - - public static void loadMCPRemapper() { - if (mcpMapper == null) { - mcpMapper = new MCPRemapper(); - } - } - - public static final boolean obfuscated; - - static { - boolean obf = true; - try { - obf = Launch.classLoader.getClassBytes("net.minecraft.world.World") == null; - } catch (IOException ignored) { - } - obfuscated = obf; - if (!obf) { - loadMCPRemapper(); - } - } - - public String s_owner; - public String s_name; - public String s_desc; - - public ObfMapping(String owner) { - this(owner, "", ""); - } - - public ObfMapping(String owner, String name, String desc) { - this.s_owner = owner; - this.s_name = name; - this.s_desc = desc; - - if (s_owner.contains(".")) { - throw new IllegalArgumentException(s_owner); - } - } - - public ObfMapping(ObfMapping descmap, String subclass) { - this(subclass, descmap.s_name, descmap.s_desc); - } - - public static ObfMapping fromDesc(String s) { - int lastDot = s.lastIndexOf('.'); - if (lastDot < 0) { - return new ObfMapping(s, "", ""); - } - int sep = s.indexOf('(');//methods - int sep_end = sep; - if (sep < 0) { - sep = s.indexOf(' ');//some stuffs - sep_end = sep + 1; - } - if (sep < 0) { - sep = s.indexOf(':');//fields - sep_end = sep + 1; - } - if (sep < 0) { - return new ObfMapping(s.substring(0, lastDot), s.substring(lastDot + 1), ""); - } - - return new ObfMapping(s.substring(0, lastDot), s.substring(lastDot + 1, sep), s.substring(sep_end)); - } - - public ObfMapping subclass(String subclass) { - return new ObfMapping(this, subclass); - } - - public boolean matches(MethodNode node) { - return s_name.equals(node.name) && s_desc.equals(node.desc); - } - - public boolean matches(MethodInsnNode node) { - return s_owner.equals(node.owner) && s_name.equals(node.name) && s_desc.equals(node.desc); - } - - public AbstractInsnNode toInsn(int opcode) { - if (isClass()) { - return new TypeInsnNode(opcode, s_owner); - } else if (isMethod()) { - return new MethodInsnNode(opcode, s_owner, s_name, s_desc); - } else { - return new FieldInsnNode(opcode, s_owner, s_name, s_desc); - } - } - - public void visitTypeInsn(MethodVisitor mv, int opcode) { - mv.visitTypeInsn(opcode, s_owner); - } - - public void visitMethodInsn(MethodVisitor mv, int opcode) { - mv.visitMethodInsn(opcode, s_owner, s_name, s_desc); - } - - public void visitFieldInsn(MethodVisitor mv, int opcode) { - mv.visitFieldInsn(opcode, s_owner, s_name, s_desc); - } - - public MethodVisitor visitMethod(ClassVisitor visitor, int access, String[] exceptions) { - return visitor.visitMethod(access, s_name, s_desc, null, exceptions); - } - - public FieldVisitor visitField(ClassVisitor visitor, int access, Object value) { - return visitor.visitField(access, s_name, s_desc, null, value); - } - - public boolean isClass(String name) { - return name.replace('.', '/').equals(s_owner); - } - - public boolean matches(String name, String desc) { - return s_name.equals(name) && s_desc.equals(desc); - } - - public boolean matches(FieldNode node) { - return s_name.equals(node.name) && s_desc.equals(node.desc); - } - - public boolean matches(FieldInsnNode node) { - return s_owner.equals(node.owner) && s_name.equals(node.name) && s_desc.equals(node.desc); - } - - public String javaClass() { - return s_owner.replace('/', '.'); - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof ObfMapping)) { - return false; - } - - ObfMapping desc = (ObfMapping) obj; - return s_owner.equals(desc.s_owner) && s_name.equals(desc.s_name) && s_desc.equals(desc.s_desc); - } - - @Override - public int hashCode() { - return Objects.hashCode(s_desc, s_name, s_owner); - } - - @Override - public String toString() { - if (s_name.length() == 0) { - return "[" + s_owner + "]"; - } - if (s_desc.length() == 0) { - return "[" + s_owner + "." + s_name + "]"; - } - return "[" + (isMethod() ? methodDesc() : fieldDesc()) + "]"; - } - - public String methodDesc() { - return s_owner + "." + s_name + s_desc; - } - - public String fieldDesc() { - return s_owner + "." + s_name + ":" + s_desc; - } - - public boolean isClass() { - return s_name.length() == 0; - } - - public boolean isMethod() { - return s_desc.contains("("); - } - - public boolean isField() { - return !isClass() && !isMethod(); - } - - public ObfMapping map(Remapper mapper) { - if (mapper == null) { - return this; - } - - if (isMethod()) { - s_name = mapper.mapMethodName(s_owner, s_name, s_desc); - } else if (isField()) { - s_name = mapper.mapFieldName(s_owner, s_name, s_desc); - } - - s_owner = mapper.mapType(s_owner); - - if (isMethod()) { - s_desc = mapper.mapMethodDesc(s_desc); - } else if (s_desc.length() > 0) { - s_desc = mapper.mapDesc(s_desc); - } - - return this; - } - - public ObfMapping toRuntime() { - map(mcpMapper); - return this; - } - - public ObfMapping toClassloading() { - if (!obfuscated) { - map(mcpMapper); - } else if (obfMapper.isObf(s_owner)) { - map(obfMapper); - } - return this; - } - - public ObfMapping copy() { - return new ObfMapping(s_owner, s_name, s_desc); - } -} diff --git a/dependencies/main/java/codechicken/lib/asm/RenderHookTransformer.java b/dependencies/main/java/codechicken/lib/asm/RenderHookTransformer.java deleted file mode 100644 index 8d8a7c68ce..0000000000 --- a/dependencies/main/java/codechicken/lib/asm/RenderHookTransformer.java +++ /dev/null @@ -1,20 +0,0 @@ -package codechicken.lib.asm; - -import codechicken.lib.asm.ModularASMTransformer.MethodInjector; -import net.minecraft.launchwrapper.IClassTransformer; - -import java.util.Map; - -public class RenderHookTransformer implements IClassTransformer { - private ModularASMTransformer transformer = new ModularASMTransformer(); - - public RenderHookTransformer() { - Map blocks = ASMReader.loadResource("/assets/ccl/asm/hooks.asm"); - transformer.add(new MethodInjector(new ObfMapping("net/minecraft/client/renderer/entity/RenderItem", "func_180454_a", "(Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/resources/model/IBakedModel;)V"), blocks.get("n_IItemRenderer"), blocks.get("IItemRenderer"), true)); - } - - @Override - public byte[] transform(String name, String tname, byte[] bytes) { - return transformer.transform(name, bytes); - } -} diff --git a/dependencies/main/java/codechicken/lib/colour/Colour.java b/dependencies/main/java/codechicken/lib/colour/Colour.java deleted file mode 100644 index bd59c2aa23..0000000000 --- a/dependencies/main/java/codechicken/lib/colour/Colour.java +++ /dev/null @@ -1,155 +0,0 @@ -package codechicken.lib.colour; - -import codechicken.lib.config.ConfigTag.IConfigType; -import codechicken.lib.math.MathHelper; -import codechicken.lib.util.Copyable; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public abstract class Colour implements Copyable { - public static IConfigType configRGB = new IConfigType() { - @Override - public String configValue(Colour entry) { - String s = Long.toString(((long) entry.rgb()) << 32 >>> 32, 16); - while (s.length() < 6) { - s = "0" + s; - } - return "0x" + s.toUpperCase(); - } - - private final Pattern patternRGB = Pattern.compile("(\\d+),(\\d+),(\\d+)"); - - @Override - public Colour valueOf(String text) throws Exception { - Matcher matcherRGB = patternRGB.matcher(text.replaceAll("\\s", "")); - if (matcherRGB.matches()) { - return new ColourRGBA(Integer.parseInt(matcherRGB.group(1)), Integer.parseInt(matcherRGB.group(2)), Integer.parseInt(matcherRGB.group(3)), 0xFF); - } - - int hex = (int) Long.parseLong(text.replace("0x", ""), 16); - return new ColourRGBA(hex << 8 | 0xFF); - } - }; - - public byte r; - public byte g; - public byte b; - public byte a; - - public Colour(int r, int g, int b, int a) { - this.r = (byte) r; - this.g = (byte) g; - this.b = (byte) b; - this.a = (byte) a; - } - - public Colour(Colour colour) { - r = colour.r; - g = colour.g; - b = colour.b; - a = colour.a; - } - - @SideOnly(Side.CLIENT) - public void glColour() { - GlStateManager.color((r & 0xFF) / 255F, (g & 0xFF) / 255F, (b & 0xFF) / 255F, (a & 0xFF) / 255F); - } - - @SideOnly(Side.CLIENT) - public void glColour(int a) { - GlStateManager.color((r & 0xFF) / 255F, (g & 0xFF) / 255F, (b & 0xFF) / 255F, a / 255F); - } - - public abstract int pack(); - - @Override - public String toString() { - return getClass().getSimpleName() + "[0x" + Integer.toHexString(pack()).toUpperCase() + "]"; - } - - public Colour add(Colour colour2) { - a += colour2.a; - r += colour2.r; - g += colour2.g; - b += colour2.b; - return this; - } - - public Colour sub(Colour colour2) { - int ia = (a & 0xFF) - (colour2.a & 0xFF); - int ir = (r & 0xFF) - (colour2.r & 0xFF); - int ig = (g & 0xFF) - (colour2.g & 0xFF); - int ib = (b & 0xFF) - (colour2.b & 0xFF); - a = (byte) (ia < 0 ? 0 : ia); - r = (byte) (ir < 0 ? 0 : ir); - g = (byte) (ig < 0 ? 0 : ig); - b = (byte) (ib < 0 ? 0 : ib); - return this; - } - - public Colour invert() { - a = (byte) (0xFF - (a & 0xFF)); - r = (byte) (0xFF - (r & 0xFF)); - g = (byte) (0xFF - (g & 0xFF)); - b = (byte) (0xFF - (b & 0xFF)); - return this; - } - - public Colour multiply(Colour colour2) { - a = (byte) ((a & 0xFF) * ((colour2.a & 0xFF) / 255D)); - r = (byte) ((r & 0xFF) * ((colour2.r & 0xFF) / 255D)); - g = (byte) ((g & 0xFF) * ((colour2.g & 0xFF) / 255D)); - b = (byte) ((b & 0xFF) * ((colour2.b & 0xFF) / 255D)); - return this; - } - - public Colour scale(double d) { - a = (byte) ((a & 0xFF) * d); - r = (byte) ((r & 0xFF) * d); - g = (byte) ((g & 0xFF) * d); - b = (byte) ((b & 0xFF) * d); - return this; - } - - public Colour interpolate(Colour colour2, double d) { - return this.add(colour2.copy().sub(this).scale(d)); - } - - public Colour multiplyC(double d) { - r = (byte) MathHelper.clip((r & 0xFF) * d, 0, 255); - g = (byte) MathHelper.clip((g & 0xFF) * d, 0, 255); - b = (byte) MathHelper.clip((b & 0xFF) * d, 0, 255); - - return this; - } - - public abstract Colour copy(); - - public int rgb() { - return (r & 0xFF) << 16 | (g & 0xFF) << 8 | (b & 0xFF); - } - - public int argb() { - return (a & 0xFF) << 24 | (r & 0xFF) << 16 | (g & 0xFF) << 8 | (b & 0xFF); - } - - public int rgba() { - return (r & 0xFF) << 24 | (g & 0xFF) << 16 | (b & 0xFF) << 8 | (a & 0xFF); - } - - public Colour set(Colour colour) { - r = colour.r; - g = colour.g; - b = colour.b; - a = colour.a; - return this; - } - - public boolean equals(Colour colour) { - return colour != null && rgba() == colour.rgba(); - } -} diff --git a/dependencies/main/java/codechicken/lib/colour/ColourARGB.java b/dependencies/main/java/codechicken/lib/colour/ColourARGB.java deleted file mode 100644 index 765c31a431..0000000000 --- a/dependencies/main/java/codechicken/lib/colour/ColourARGB.java +++ /dev/null @@ -1,27 +0,0 @@ -package codechicken.lib.colour; - -public class ColourARGB extends Colour { - public ColourARGB(int colour) { - super((colour >> 16) & 0xFF, (colour >> 8) & 0xFF, colour & 0xFF, (colour >> 24) & 0xFF); - } - - public ColourARGB(int a, int r, int g, int b) { - super(r, g, b, a); - } - - public ColourARGB(ColourARGB colour) { - super(colour); - } - - public ColourARGB copy() { - return new ColourARGB(this); - } - - public int pack() { - return pack(this); - } - - public static int pack(Colour colour) { - return (colour.a & 0xFF) << 24 | (colour.r & 0xFF) << 16 | (colour.g & 0xFF) << 8 | (colour.b & 0xFF); - } -} diff --git a/dependencies/main/java/codechicken/lib/colour/ColourRGBA.java b/dependencies/main/java/codechicken/lib/colour/ColourRGBA.java deleted file mode 100644 index bd2a26edca..0000000000 --- a/dependencies/main/java/codechicken/lib/colour/ColourRGBA.java +++ /dev/null @@ -1,53 +0,0 @@ -package codechicken.lib.colour; - -public class ColourRGBA extends Colour { - public ColourRGBA(int colour) { - super((colour >> 24) & 0xFF, (colour >> 16) & 0xFF, (colour >> 8) & 0xFF, colour & 0xFF); - } - - public ColourRGBA(double r, double g, double b, double a) { - super((int) (255 * r), (int) (255 * g), (int) (255 * b), (int) (255 * a)); - } - - public ColourRGBA(int r, int g, int b, int a) { - super(r, g, b, a); - } - - public ColourRGBA(ColourRGBA colour) { - super(colour); - } - - public int pack() { - return pack(this); - } - - @Override - public Colour copy() { - return new ColourRGBA(this); - } - - public static int pack(Colour colour) { - return (colour.r & 0xFF) << 24 | (colour.g & 0xFF) << 16 | (colour.b & 0xFF) << 8 | (colour.a & 0xFF); - } - - public static int multiply(int c1, int c2) { - if (c1 == -1) { - return c2; - } - if (c2 == -1) { - return c1; - } - int r = (((c1 >>> 24) * (c2 >>> 24)) & 0xFF00) << 16; - int g = (((c1 >> 16 & 0xFF) * (c2 >> 16 & 0xFF)) & 0xFF00) << 8; - int b = ((c1 >> 8 & 0xFF) * (c2 >> 8 & 0xFF)) & 0xFF00; - int a = ((c1 & 0xFF) * (c2 & 0xFF)) >> 8; - return r | g | b | a; - } - - public static int multiplyC(int c, float f) { - int r = (int) ((c >>> 24) * f); - int g = (int) ((c >> 16 & 0xFF) * f); - int b = (int) ((c >> 8 & 0xFF) * f); - return r << 24 | g << 16 | b << 8 | c & 0xFF; - } -} diff --git a/dependencies/main/java/codechicken/lib/colour/CustomGradient.java b/dependencies/main/java/codechicken/lib/colour/CustomGradient.java deleted file mode 100644 index 86d2dd9b63..0000000000 --- a/dependencies/main/java/codechicken/lib/colour/CustomGradient.java +++ /dev/null @@ -1,34 +0,0 @@ -package codechicken.lib.colour; - -import codechicken.lib.math.MathHelper; -import codechicken.lib.render.TextureUtils; -import net.minecraft.util.ResourceLocation; - -import java.awt.image.BufferedImage; - -public class CustomGradient { - public int[] gradient; - - public CustomGradient(ResourceLocation textureFile) { - BufferedImage img = TextureUtils.loadBufferedImage(textureFile); - if (img == null) { - throw new RuntimeException("File not found: " + textureFile.toString()); - } - - int[] data = new int[img.getWidth()]; - img.getRGB(0, 0, img.getWidth(), 1, data, 0, img.getWidth()); - gradient = new int[img.getWidth()]; - for (int i = 0; i < data.length; i++) { - gradient[i] = (data[i] << 8) | (((data[i]) >> 24) & 0xFF); - } - } - - public ColourRGBA getColour(double position) { - return new ColourRGBA(getColourI(position)); - } - - public int getColourI(double position) { - int off = (int) MathHelper.clip(gradient.length * position, 0, gradient.length - 1); - return gradient[off]; - } -} diff --git a/dependencies/main/java/codechicken/lib/config/ConfigFile.java b/dependencies/main/java/codechicken/lib/config/ConfigFile.java deleted file mode 100644 index 6e26f28406..0000000000 --- a/dependencies/main/java/codechicken/lib/config/ConfigFile.java +++ /dev/null @@ -1,116 +0,0 @@ -package codechicken.lib.config; - -import java.io.*; - -public class ConfigFile extends ConfigTagParent { - public static final byte[] crlf = new byte[] { 0xD, 0xA }; - - public File file; - private boolean loading; - - public ConfigFile(File file) { - newlinemode = 2; - load(file); - } - - protected ConfigFile() { - } - - protected void load(File file) { - try { - if (!file.getParentFile().exists()) { - file.getParentFile().mkdirs(); - } - if (!file.exists()) { - file.createNewFile(); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - this.file = file; - loadConfig(); - } - - protected void loadConfig() { - loading = true; - BufferedReader reader; - try { - reader = new BufferedReader(new FileReader(file)); - - while (true) { - reader.mark(2000); - String line = reader.readLine(); - if (line != null && line.startsWith("#")) { - if (comment == null || comment.equals("")) { - comment = line.substring(1); - } else { - comment = comment + "\n" + line.substring(1); - } - } else { - reader.reset(); - break; - } - } - loadChildren(reader); - reader.close(); - - } catch (IOException e) { - throw new RuntimeException(e); - } - - loading = false; - } - - @Override - public ConfigFile setComment(String header) { - super.setComment(header); - return this; - } - - @Override - public ConfigFile setSortMode(int mode) { - super.setSortMode(mode); - return this; - } - - @Override - public String getNameQualifier() { - return ""; - } - - public static String readLine(BufferedReader reader) throws IOException { - String line = reader.readLine(); - return line == null ? null : line.replace("\t", ""); - } - - public static void writeLine(PrintWriter writer, String line, int tabs) { - for (int i = 0; i < tabs; i++) { - writer.print('\t'); - } - - writer.println(line); - } - - public void saveConfig() { - if (loading) { - return; - } - - PrintWriter writer; - try { - writer = new PrintWriter(file); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } - - writeComment(writer, 0); - ConfigFile.writeLine(writer, "", 0); - saveTagTree(writer, 0, ""); - writer.flush(); - writer.close(); - } - - public boolean isLoading() { - return loading; - } -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/lib/config/ConfigTag.java b/dependencies/main/java/codechicken/lib/config/ConfigTag.java deleted file mode 100644 index 1e55b3fc69..0000000000 --- a/dependencies/main/java/codechicken/lib/config/ConfigTag.java +++ /dev/null @@ -1,250 +0,0 @@ -package codechicken.lib.config; - -import java.io.PrintWriter; - -public class ConfigTag extends ConfigTagParent { - public interface IConfigType { - public String configValue(T entry); - - public T valueOf(String text) throws Exception; - } - - public ConfigTag(ConfigTagParent parent, String name) { - this.parent = parent; - this.name = name; - qualifiedname = parent.getNameQualifier() + name; - newline = parent.newlinemode == 2; - parent.addChild(this); - } - - @Override - public String getNameQualifier() { - return qualifiedname + "."; - } - - @Override - public void saveConfig() { - parent.saveConfig(); - } - - /** - * Called when the tag is loaded from a config file as opposed to constructed by a mod - * - * @return this - */ - public ConfigTag onLoaded() { - return this; - } - - public void setValue(String value) { - this.value = value; - saveConfig(); - } - - public void setDefaultValue(String defaultValue) { - if (value == null) { - value = defaultValue; - saveConfig(); - } - } - - public void setIntValue(int i) { - setValue(Integer.toString(i)); - } - - public void setBooleanValue(boolean b) { - setValue(Boolean.toString(b)); - } - - public void setHexValue(int i) { - setValue("0x" + Long.toString(((long) i) << 32 >>> 32, 16)); - } - - public void set(IConfigType type, T entry) { - setValue(type.configValue(entry)); - } - - public String getValue() { - return value; - } - - public String getValue(String defaultValue) { - setDefaultValue(defaultValue); - return value; - } - - public int getIntValue() { - return Integer.parseInt(getValue()); - } - - public int getIntValue(int defaultValue) { - try { - if (value != null) { - return getIntValue(); - } - } catch (NumberFormatException ignored) { - } - - setIntValue(defaultValue); - return defaultValue; - } - - public boolean getBooleanValue() { - String value = getValue(); - if (value != null && (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("yes"))) { - return true; - } else if (value != null && (value.equalsIgnoreCase("false") || value.equalsIgnoreCase("no"))) { - return false; - } - - throw new NumberFormatException(qualifiedname + ".value=" + value); - } - - public boolean getBooleanValue(boolean defaultValue) { - try { - if (value != null) { - return getBooleanValue(); - } - } catch (NumberFormatException ignored) { - } - - setBooleanValue(defaultValue); - return defaultValue; - } - - public int getHexValue() { - return (int) Long.parseLong(getValue().replace("0x", ""), 16); - } - - public int getHexValue(int defaultValue) { - try { - if (value != null) { - return getHexValue(); - } - } catch (NumberFormatException ignored) { - } - - setHexValue(defaultValue); - return defaultValue; - } - - public T get(IConfigType type) { - try { - return type.valueOf(getValue()); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public T get(IConfigType type, T defaultValue) { - try { - if (value != null) { - return get(type); - } - } catch (Exception ignored) { - } - - set(type, defaultValue); - return defaultValue; - } - - public void save(PrintWriter writer, int tabs, String bracequalifier, boolean first) { - String vname; - if (qualifiedname.contains(".") && bracequalifier.length() > 0) { - vname = qualifiedname.substring(bracequalifier.length() + 1); - } else { - vname = qualifiedname; - } - - if (newline && !first) { - ConfigFile.writeLine(writer, "", tabs); - } - - writeComment(writer, tabs); - if (value != null) { - ConfigFile.writeLine(writer, vname + "=" + value, tabs); - } - - if (!hasChildTags()) { - return; - } - - if (brace) { - if (value == null) { - ConfigFile.writeLine(writer, vname, tabs); - } - ConfigFile.writeLine(writer, "{", tabs); - saveTagTree(writer, tabs + 1, qualifiedname); - ConfigFile.writeLine(writer, "}", tabs); - } else { - saveTagTree(writer, tabs, bracequalifier); - } - } - - @Override - public ConfigTag setComment(String comment) { - super.setComment(comment); - return this; - } - - @Override - public ConfigTag setSortMode(int mode) { - super.setSortMode(mode); - return this; - } - - public ConfigTag setNewLine(boolean b) { - newline = b; - saveConfig(); - return this; - } - - public ConfigTag useBraces() { - brace = true; - if (parent.newlinemode == 1) { - newline = true; - } - - saveConfig(); - return this; - } - - public ConfigTag setPosition(int pos) { - position = pos; - saveConfig(); - return this; - } - - public boolean containsTag(String tagname) { - return getTag(tagname, false) != null; - } - - public int getId(String name, int defaultValue) { - return getTag(name).getIntValue(defaultValue); - } - - public int getId(String name) { - int ret = getId(name, IDBase); - IDBase = ret + 1; - return ret; - } - - public int getAcheivementId(String name, int defaultValue) { - return getTag(name).getIntValue(defaultValue); - } - - public ConfigTag setBaseID(int i) { - IDBase = i; - return this; - } - - public ConfigTagParent parent; - public String name; - public String qualifiedname; - public String value; - public boolean brace; - public boolean newline; - public int position = Integer.MAX_VALUE; - - private int IDBase; -} diff --git a/dependencies/main/java/codechicken/lib/config/ConfigTagParent.java b/dependencies/main/java/codechicken/lib/config/ConfigTagParent.java deleted file mode 100644 index 2b91b4f138..0000000000 --- a/dependencies/main/java/codechicken/lib/config/ConfigTagParent.java +++ /dev/null @@ -1,213 +0,0 @@ -package codechicken.lib.config; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.*; -import java.util.Map.Entry; - -public abstract class ConfigTagParent { - public static class TagOrderComparator implements Comparator { - int sortMode; - - public TagOrderComparator(int sortMode) { - this.sortMode = sortMode; - } - - public int compare(ConfigTag o1, ConfigTag o2) { - if (o1.position != o2.position) { - return compareInt(o1.position, o2.position); - } - if (o1.brace != o2.brace) { - return o1.brace ? 1 : -1;//braced one goes after - } - switch (sortMode) { - case 1: - if (o1.value == o2.value) { - return 0; - } - if (o1.value == null) { - return 1; - } - if (o2.value == null) { - return -1; - } - return o1.value.compareTo(o2.value); - default: - return o1.name.compareTo(o2.name); - } - } - - private int compareInt(int a, int b) { - return a == b ? 0 : a < b ? -1 : 1; - } - } - - private TreeMap childtags = new TreeMap(); - public String comment; - /** - * 0 = name, 1 = value - */ - public int sortMode = 0; - /** - * The mode for determining when child tags should leave a blank line between them and the one above - * 0 = never, 1 = when braced, 2 = always - */ - public int newlinemode = 1; - - public abstract void saveConfig(); - - public abstract String getNameQualifier(); - - public ConfigTagParent setComment(String comment) { - this.comment = comment; - saveConfig(); - return this; - } - - public ConfigTagParent setSortMode(int mode) { - sortMode = mode; - saveConfig(); - return this; - } - - public ConfigTagParent setNewLineMode(int mode) { - newlinemode = mode; - for (Entry entry : childtags.entrySet()) { - ConfigTag tag = entry.getValue(); - if (newlinemode == 0) { - tag.newline = false; - } else if (newlinemode == 1) { - tag.newline = tag.brace; - } else if (newlinemode == 2) { - tag.newline = true; - } - } - saveConfig(); - return this; - } - - public Map childTagMap() { - return childtags; - } - - public boolean hasChildTags() { - return !childtags.isEmpty(); - } - - public boolean containsTag(String tagname) { - return getTag(tagname, false) != null; - } - - public ConfigTag getNewTag(String tagname) { - return new ConfigTag(this, tagname); - } - - public ConfigTag getTag(String tagname, boolean create) { - int dotpos = tagname.indexOf("."); - String basetagname = dotpos == -1 ? tagname : tagname.substring(0, dotpos); - ConfigTag basetag = childtags.get(basetagname); - if (basetag == null) { - if (!create) { - return null; - } - - basetag = getNewTag(basetagname); - saveConfig(); - } - if (dotpos == -1) { - return basetag; - } - - return basetag.getTag(tagname.substring(dotpos + 1), create); - } - - public ConfigTag getTag(String tagname) { - return getTag(tagname, true); - } - - public boolean removeTag(String tagname) { - ConfigTag tag = getTag(tagname, false); - if (tag == null) { - return false; - } - - int dotpos = tagname.lastIndexOf("."); - String lastpart = dotpos == -1 ? tagname : tagname.substring(dotpos + 1, tagname.length()); - if (tag.parent != null) { - boolean ret = tag.parent.childtags.remove(lastpart) != null; - if (ret) { - saveConfig(); - } - return ret; - } - - return false; - } - - public void addChild(ConfigTag tag) { - childtags.put(tag.name, tag); - } - - public ArrayList getSortedTagList() { - ArrayList taglist = new ArrayList(childtags.size()); - for (Entry tag : childtags.entrySet()) { - taglist.add((T) tag.getValue()); - } - - Collections.sort(taglist, new TagOrderComparator(sortMode)); - return taglist; - } - - public void loadChildren(BufferedReader reader) { - String comment = ""; - String bracequalifier = ""; - try { - while (true) { - String line = ConfigFile.readLine(reader); - if (line == null) { - break; - } - if (line.startsWith("#")) { - if (comment.equals("")) { - comment = line.substring(1); - } else { - comment = comment + "\n" + line.substring(1); - } - } else if (line.contains("=")) { - String qualifiedname = line.substring(0, line.indexOf("=")); - getTag(qualifiedname).onLoaded().setComment(comment).setValue(line.substring(line.indexOf("=") + 1)); - comment = ""; - bracequalifier = qualifiedname; - } else if (line.equals("{")) { - getTag(bracequalifier).setComment(comment).useBraces().loadChildren(reader); - comment = ""; - bracequalifier = ""; - } else if (line.equals("}")) { - break; - } else { - bracequalifier = line; - } - } - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public void saveTagTree(PrintWriter writer, int tabs, String bracequalifier) { - boolean first = true; - for (ConfigTag tag : getSortedTagList()) { - tag.save(writer, tabs, bracequalifier, first); - first = false; - } - } - - public void writeComment(PrintWriter writer, int tabs) { - if (comment != null && !comment.equals("")) { - String[] comments = comment.split("\n"); - for (int i = 0; i < comments.length; i++) { - ConfigFile.writeLine(writer, "#" + comments[i], tabs); - } - } - } -} diff --git a/dependencies/main/java/codechicken/lib/config/DefaultingConfigFile.java b/dependencies/main/java/codechicken/lib/config/DefaultingConfigFile.java deleted file mode 100644 index c1bc7c4f7d..0000000000 --- a/dependencies/main/java/codechicken/lib/config/DefaultingConfigFile.java +++ /dev/null @@ -1,19 +0,0 @@ -package codechicken.lib.config; - -import java.io.File; - -public class DefaultingConfigFile extends ConfigFile { - public DefaultingConfigFile(File file) { - super(); - if (file.exists()) { - load(file); - } - } - - @Override - public void saveConfig() { - if (file != null) { - super.saveConfig(); - } - } -} diff --git a/dependencies/main/java/codechicken/lib/config/SimpleProperties.java b/dependencies/main/java/codechicken/lib/config/SimpleProperties.java deleted file mode 100644 index 4a3bc4e79b..0000000000 --- a/dependencies/main/java/codechicken/lib/config/SimpleProperties.java +++ /dev/null @@ -1,127 +0,0 @@ -package codechicken.lib.config; - -import java.io.*; -import java.nio.charset.Charset; -import java.util.HashMap; -import java.util.Map.Entry; - -public class SimpleProperties { - public HashMap propertyMap = new HashMap(); - public File propertyFile; - public boolean saveOnChange = false; - public String encoding; - - private boolean loading = false; - - public SimpleProperties(File file, boolean saveOnChange, String encoding) { - propertyFile = file; - this.saveOnChange = saveOnChange; - this.encoding = encoding; - } - - public SimpleProperties(File file, boolean saveOnChange) { - this(file, saveOnChange, Charset.defaultCharset().name()); - } - - public SimpleProperties(File file) { - this(file, true); - } - - public void load() { - clear(); - loading = true; - - try { - BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(propertyFile), encoding)); - while (true) { - String read = reader.readLine(); - if (read == null) { - break; - } - - int equalIndex = read.indexOf('='); - if (equalIndex == -1) { - continue; - } - - setProperty(read.substring(0, equalIndex), read.substring(equalIndex + 1)); - } - reader.close(); - } catch (Exception e) { - throw new RuntimeException(e); - } - loading = false; - } - - public void save() { - try { - PrintStream writer = new PrintStream(propertyFile); - - for (Entry entry : propertyMap.entrySet()) { - writer.println(entry.getKey() + "=" + entry.getValue()); - } - - writer.close(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public void clear() { - propertyMap.clear(); - } - - public boolean hasProperty(String key) { - return propertyMap.containsKey(key); - } - - public void removeProperty(String key) { - if (propertyMap.remove(key) != null && saveOnChange && !loading) { - save(); - } - } - - public void setProperty(String key, int value) { - setProperty(key, Integer.toString(value)); - } - - public void setProperty(String key, boolean value) { - setProperty(key, Boolean.toString(value)); - } - - public void setProperty(String key, String value) { - propertyMap.put(key, value); - if (saveOnChange && !loading) { - save(); - } - } - - public int getProperty(String property, int defaultvalue) { - try { - return Integer.parseInt(getProperty(property, Integer.toString(defaultvalue))); - } catch (NumberFormatException nfe) { - return defaultvalue; - } - } - - public boolean getProperty(String property, boolean defaultvalue) { - try { - return Boolean.parseBoolean(getProperty(property, Boolean.toString(defaultvalue))); - } catch (NumberFormatException nfe) { - return defaultvalue; - } - } - - public String getProperty(String property, String defaultvalue) { - String value = propertyMap.get(property); - if (value == null) { - setProperty(property, defaultvalue); - return defaultvalue; - } - return value; - } - - public String getProperty(String property) { - return propertyMap.get(property); - } -} diff --git a/dependencies/main/java/codechicken/lib/data/MCDataIO.java b/dependencies/main/java/codechicken/lib/data/MCDataIO.java deleted file mode 100644 index c51491cd19..0000000000 --- a/dependencies/main/java/codechicken/lib/data/MCDataIO.java +++ /dev/null @@ -1,133 +0,0 @@ -package codechicken.lib.data; - -import com.google.common.base.Charsets; -import io.netty.handler.codec.EncoderException; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; - -public class MCDataIO { - /** - * PacketBuffer.readVarIntFromBuffer - */ - public static int readVarInt(MCDataInput in) { - int i = 0; - int j = 0; - byte b0; - - do { - b0 = in.readByte(); - i |= (b0 & 127) << j++ * 7; - - if (j > 5) { - throw new RuntimeException("VarInt too big"); - } - } while ((b0 & 128) == 128); - - return i; - } - - public static int readVarShort(MCDataInput in) { - int low = in.readUShort(); - int high = 0; - if ((low & 0x8000) != 0) { - low = low & 0x7FFF; - high = in.readUByte(); - } - return ((high & 0xFF) << 15) | low; - } - - public static String readString(MCDataInput in) { - return new String(in.readArray(in.readVarInt()), Charsets.UTF_8); - } - - public static ItemStack readItemStack(MCDataInput in) { - ItemStack item = null; - short itemID = in.readShort(); - - if (itemID >= 0) { - int stackSize = in.readVarInt(); - short damage = in.readShort(); - item = new ItemStack(Item.getItemById(itemID), stackSize, damage); - item.setTagCompound(in.readNBTTagCompound()); - } - - return item; - } - - public static FluidStack readFluidStack(MCDataInput in) { - FluidStack fluid = null; - short fluidID = in.readShort(); - - if (fluidID >= 0) { - fluid = new FluidStack(FluidRegistry.getFluid(fluidID), in.readVarInt(), in.readNBTTagCompound()); - } - - return fluid; - } - - /** - * PacketBuffer.writeVarIntToBuffer - */ - public static void writeVarInt(MCDataOutput out, int i) { - while ((i & 0x80) != 0) { - out.writeByte(i & 0x7F | 0x80); - i >>>= 7; - } - - out.writeByte(i); - } - - /** - * ByteBufUtils.readVarShort - */ - public static void writeVarShort(MCDataOutput out, int s) { - int low = s & 0x7FFF; - int high = (s & 0x7F8000) >> 15; - if (high != 0) { - low |= 0x8000; - } - out.writeShort(low); - if (high != 0) { - out.writeByte(high); - } - } - - /** - * PacketBuffer.writeString - */ - public static void writeString(MCDataOutput out, String string) { - byte[] abyte = string.getBytes(Charsets.UTF_8); - if (abyte.length > 32767) { - throw new EncoderException("String too big (was " + string.length() + " bytes encoded, max " + 32767 + ")"); - } - - out.writeVarInt(abyte.length); - out.writeArray(abyte); - } - - /** - * Supports large stacks by writing stackSize as a varInt - */ - public static void writeItemStack(MCDataOutput out, ItemStack stack) { - if (stack == null) { - out.writeShort(-1); - } else { - out.writeShort(Item.getIdFromItem(stack.getItem())); - out.writeVarInt(stack.stackSize); - out.writeShort(stack.getItemDamage()); - out.writeNBTTagCompound(stack.getItem().getShareTag() ? stack.getTagCompound() : null); - } - } - - public static void writeFluidStack(MCDataOutput out, FluidStack fluid) { - if (fluid == null) { - out.writeShort(-1); - } else { - out.writeShort(fluid.getFluid().getID()); - out.writeVarInt(fluid.amount); - out.writeNBTTagCompound(fluid.tag); - } - } -} diff --git a/dependencies/main/java/codechicken/lib/data/MCDataInput.java b/dependencies/main/java/codechicken/lib/data/MCDataInput.java deleted file mode 100644 index 8d353860f3..0000000000 --- a/dependencies/main/java/codechicken/lib/data/MCDataInput.java +++ /dev/null @@ -1,46 +0,0 @@ -package codechicken.lib.data; - -import codechicken.lib.vec.BlockCoord; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.FluidStack; - -public interface MCDataInput { - public long readLong(); - - public int readInt(); - - public short readShort(); - - public int readUShort(); - - public byte readByte(); - - public short readUByte(); - - public double readDouble(); - - public float readFloat(); - - public boolean readBoolean(); - - public char readChar(); - - public int readVarShort(); - - public int readVarInt(); - - public long readVarLong(); - - public byte[] readArray(int length); - - public String readString(); - - public BlockCoord readCoord(); - - public NBTTagCompound readNBTTagCompound(); - - public ItemStack readItemStack(); - - public FluidStack readFluidStack(); -} diff --git a/dependencies/main/java/codechicken/lib/data/MCDataInputStream.java b/dependencies/main/java/codechicken/lib/data/MCDataInputStream.java deleted file mode 100644 index 5c53cab1c3..0000000000 --- a/dependencies/main/java/codechicken/lib/data/MCDataInputStream.java +++ /dev/null @@ -1,16 +0,0 @@ -package codechicken.lib.data; - -import java.io.InputStream; - -public class MCDataInputStream extends InputStream { - private MCDataInput in; - - public MCDataInputStream(MCDataInput in) { - this.in = in; - } - - @Override - public int read() { - return in.readByte() & 0xFF; - } -} diff --git a/dependencies/main/java/codechicken/lib/data/MCDataOutput.java b/dependencies/main/java/codechicken/lib/data/MCDataOutput.java deleted file mode 100644 index 5a0e65a1d0..0000000000 --- a/dependencies/main/java/codechicken/lib/data/MCDataOutput.java +++ /dev/null @@ -1,45 +0,0 @@ -package codechicken.lib.data; - -import codechicken.lib.vec.BlockCoord; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.FluidStack; - -public interface MCDataOutput { - public MCDataOutput writeLong(long l); - - public MCDataOutput writeInt(int i); - - public MCDataOutput writeShort(int s); - - public MCDataOutput writeByte(int b); - - public MCDataOutput writeDouble(double d); - - public MCDataOutput writeFloat(float f); - - public MCDataOutput writeBoolean(boolean b); - - public MCDataOutput writeChar(char c); - - public MCDataOutput writeVarInt(int i); - - public MCDataOutput writeVarShort(int s); - - public MCDataOutput writeArray(byte[] array); - - public MCDataOutput writeString(String s); - - public MCDataOutput writeCoord(int x, int y, int z); - - public MCDataOutput writeCoord(BlockCoord coord); - - public MCDataOutput writeNBTTagCompound(NBTTagCompound tag); - - /** - * Supports large stacks by writing stackSize as a varInt - */ - public MCDataOutput writeItemStack(ItemStack stack); - - public MCDataOutput writeFluidStack(FluidStack liquid); -} diff --git a/dependencies/main/java/codechicken/lib/data/MCDataOutputStream.java b/dependencies/main/java/codechicken/lib/data/MCDataOutputStream.java deleted file mode 100644 index 1f425c6622..0000000000 --- a/dependencies/main/java/codechicken/lib/data/MCDataOutputStream.java +++ /dev/null @@ -1,16 +0,0 @@ -package codechicken.lib.data; - -import java.io.OutputStream; - -public class MCDataOutputStream extends OutputStream { - private MCDataOutput out; - - public MCDataOutputStream(MCDataOutput out) { - this.out = out; - } - - @Override - public void write(int b) { - out.writeByte(b); - } -} diff --git a/dependencies/main/java/codechicken/lib/data/MCDataOutputWrapper.java b/dependencies/main/java/codechicken/lib/data/MCDataOutputWrapper.java deleted file mode 100644 index f0a163e4cb..0000000000 --- a/dependencies/main/java/codechicken/lib/data/MCDataOutputWrapper.java +++ /dev/null @@ -1,155 +0,0 @@ -package codechicken.lib.data; - -import codechicken.lib.vec.BlockCoord; -import io.netty.handler.codec.EncoderException; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.fluids.FluidStack; - -import java.io.DataOutput; -import java.io.IOException; - -public class MCDataOutputWrapper implements MCDataOutput { - public DataOutput dataout; - - public MCDataOutputWrapper(DataOutput out) { - dataout = out; - } - - public MCDataOutputWrapper writeBoolean(boolean b) { - try { - dataout.writeBoolean(b); - } catch (IOException e) { - throw new EncoderException(e); - } - return this; - } - - public MCDataOutputWrapper writeByte(int b) { - try { - dataout.writeByte(b); - } catch (IOException e) { - throw new EncoderException(e); - } - return this; - } - - public MCDataOutputWrapper writeShort(int s) { - try { - dataout.writeShort(s); - } catch (IOException e) { - throw new EncoderException(e); - } - return this; - } - - public MCDataOutputWrapper writeInt(int i) { - try { - dataout.writeInt(i); - } catch (IOException e) { - throw new EncoderException(e); - } - return this; - } - - public MCDataOutputWrapper writeFloat(float f) { - try { - dataout.writeFloat(f); - } catch (IOException e) { - throw new EncoderException(e); - } - return this; - } - - public MCDataOutputWrapper writeDouble(double d) { - try { - dataout.writeDouble(d); - } catch (IOException e) { - throw new EncoderException(e); - } - return this; - } - - public MCDataOutputWrapper writeLong(long l) { - try { - dataout.writeLong(l); - } catch (IOException e) { - throw new EncoderException(e); - } - return this; - } - - @Override - public MCDataOutputWrapper writeChar(char c) { - try { - dataout.writeChar(c); - } catch (IOException e) { - throw new EncoderException(e); - } - return this; - } - - @Override - public MCDataOutput writeVarInt(int i) { - MCDataIO.writeVarInt(this, i); - return this; - } - - @Override - public MCDataOutput writeVarShort(int s) { - MCDataIO.writeVarShort(this, s); - return this; - } - - public MCDataOutputWrapper writeArray(byte[] barray) { - try { - dataout.write(barray); - } catch (IOException e) { - throw new EncoderException(e); - } - return this; - } - - public MCDataOutputWrapper writeCoord(int x, int y, int z) { - writeInt(x); - writeInt(y); - writeInt(z); - return this; - } - - public MCDataOutputWrapper writeCoord(BlockCoord coord) { - writeInt(coord.x); - writeInt(coord.y); - writeInt(coord.z); - return this; - } - - public MCDataOutputWrapper writeString(String s) { - MCDataIO.writeString(this, s); - return this; - } - - public MCDataOutputWrapper writeItemStack(ItemStack stack) { - MCDataIO.writeItemStack(this, stack); - return this; - } - - public MCDataOutputWrapper writeNBTTagCompound(NBTTagCompound nbt) { - if (nbt == null) { - this.writeByte(0); - } else { - try { - CompressedStreamTools.write(nbt, dataout); - } catch (IOException ioexception) { - throw new EncoderException(ioexception); - } - } - return this; - } - - public MCDataOutputWrapper writeFluidStack(FluidStack fluid) { - MCDataIO.writeFluidStack(this, fluid); - return this; - } -} diff --git a/dependencies/main/java/codechicken/lib/gui/GuiDraw.java b/dependencies/main/java/codechicken/lib/gui/GuiDraw.java deleted file mode 100644 index 19621ca448..0000000000 --- a/dependencies/main/java/codechicken/lib/gui/GuiDraw.java +++ /dev/null @@ -1,222 +0,0 @@ -package codechicken.lib.gui; - -import codechicken.lib.math.MathHelper; -import codechicken.lib.render.CCRenderState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.input.Mouse; - -import java.awt.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class GuiDraw { - public static class GuiHook extends Gui { - public void setZLevel(float f) { - zLevel = f; - } - - public float getZLevel() { - return zLevel; - } - - public void incZLevel(float f) { - zLevel += f; - } - - @Override - public void drawGradientRect(int par1, int par2, int par3, int par4, int par5, int par6) { - super.drawGradientRect(par1, par2, par3, par4, par5, par6); - } - } - - public static final GuiHook gui = new GuiHook(); - public static FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; - public static TextureManager renderEngine = Minecraft.getMinecraft().renderEngine; - - public static void drawRect(int x, int y, int w, int h, int colour) { - drawGradientRect(x, y, w, h, colour, colour); - } - - public static void drawGradientRect(int x, int y, int w, int h, int colour1, int colour2) { - gui.drawGradientRect(x, y, x + w, y + h, colour1, colour2); - } - - public static void drawTexturedModalRect(int x, int y, int tx, int ty, int w, int h) { - gui.drawTexturedModalRect(x, y, tx, ty, w, h); - } - - public static void drawString(String text, int x, int y, int colour, boolean shadow) { - if (shadow) { - fontRenderer.drawStringWithShadow(text, x, y, colour); - } else { - fontRenderer.drawString(text, x, y, colour); - } - } - - public static void drawString(String text, int x, int y, int colour) { - drawString(text, x, y, colour, true); - } - - public static void drawStringC(String text, int x, int y, int w, int h, int colour, boolean shadow) { - drawString(text, x + (w - getStringWidth(text)) / 2, y + (h - 8) / 2, colour, shadow); - } - - public static void drawStringC(String text, int x, int y, int w, int h, int colour) { - drawStringC(text, x, y, w, h, colour, true); - } - - public static void drawStringC(String text, int x, int y, int colour, boolean shadow) { - drawString(text, x - getStringWidth(text) / 2, y, colour, shadow); - } - - public static void drawStringC(String text, int x, int y, int colour) { - drawStringC(text, x, y, colour, true); - } - - public static void drawStringR(String text, int x, int y, int colour, boolean shadow) { - drawString(text, x - getStringWidth(text), y, colour, shadow); - } - - public static void drawStringR(String text, int x, int y, int colour) { - drawStringR(text, x, y, colour, true); - } - - public static int getStringWidth(String s) { - return fontRenderer.getStringWidth(s); - } - - public static Dimension displaySize() { - Minecraft mc = Minecraft.getMinecraft(); - ScaledResolution res = new ScaledResolution(mc); - return new Dimension(res.getScaledWidth(), res.getScaledHeight()); - } - - public static Dimension displayRes() { - Minecraft mc = Minecraft.getMinecraft(); - return new Dimension(mc.displayWidth, mc.displayHeight); - } - - public static Point getMousePosition(int eventX, int eventY) { - Dimension size = displaySize(); - Dimension res = displayRes(); - return new Point(eventX * size.width / res.width, size.height - eventY * size.height / res.height - 1); - } - - public static Point getMousePosition() { - return getMousePosition(Mouse.getX(), Mouse.getY()); - } - - public static void changeTexture(String s) { - CCRenderState.changeTexture(s); - } - - public static void changeTexture(ResourceLocation r) { - CCRenderState.changeTexture(r); - } - - public static void drawTip(int x, int y, String text) { - drawMultilineTip(x, y, Arrays.asList(text)); - } - - /** - * Append a string in the tooltip list with TOOLTIP_LINESPACE to have a small gap between it and the next line - */ - public static final String TOOLTIP_LINESPACE = "\u00A7h"; - /** - * Have a string in the tooltip list with TOOLTIP_HANDLER + getTipLineId(handler) for a custom handler - */ - public static final String TOOLTIP_HANDLER = "\u00A7x"; - private static List tipLineHandlers = new ArrayList(); - - public static interface ITooltipLineHandler { - public Dimension getSize(); - - public void draw(int x, int y); - } - - public static int getTipLineId(ITooltipLineHandler handler) { - tipLineHandlers.add(handler); - return tipLineHandlers.size() - 1; - } - - public static ITooltipLineHandler getTipLine(String line) { - if (!line.startsWith(TOOLTIP_HANDLER)) { - return null; - } - return tipLineHandlers.get(Integer.parseInt(line.substring(2))); - } - - public static void drawMultilineTip(int x, int y, List list) { - if (list.isEmpty()) { - return; - } - - GlStateManager.disableRescaleNormal(); - RenderHelper.disableStandardItemLighting(); - GlStateManager.disableDepth(); - - int w = 0; - int h = -2; - for (int i = 0; i < list.size(); i++) { - String s = list.get(i); - ITooltipLineHandler line = getTipLine(s); - Dimension d = line != null ? line.getSize() : new Dimension(getStringWidth(s), list.get(i).endsWith(TOOLTIP_LINESPACE) && i + 1 < list.size() ? 12 : 10); - w = Math.max(w, d.width); - h += d.height; - } - - if (x < 8) { - x = 8; - } else if (x > displaySize().width - w - 8) { - x -= 24 + w;//flip side of cursor - if (x < 8) { - x = 8; - } - } - y = (int) MathHelper.clip(y, 8, displaySize().height - 8 - h); - - gui.incZLevel(300); - drawTooltipBox(x - 4, y - 4, w + 7, h + 7); - for (String s : list) { - ITooltipLineHandler line = getTipLine(s); - if (line != null) { - line.draw(x, y); - y += line.getSize().height; - } else { - fontRenderer.drawStringWithShadow(s, x, y, -1); - y += s.endsWith(TOOLTIP_LINESPACE) ? 12 : 10; - } - } - - tipLineHandlers.clear(); - gui.incZLevel(-300); - - GlStateManager.enableDepth(); - RenderHelper.enableStandardItemLighting(); - GlStateManager.enableRescaleNormal(); - } - - public static void drawTooltipBox(int x, int y, int w, int h) { - int bg = 0xf0100010; - drawGradientRect(x + 1, y, w - 1, 1, bg, bg); - drawGradientRect(x + 1, y + h, w - 1, 1, bg, bg); - drawGradientRect(x + 1, y + 1, w - 1, h - 1, bg, bg);//center - drawGradientRect(x, y + 1, 1, h - 1, bg, bg); - drawGradientRect(x + w, y + 1, 1, h - 1, bg, bg); - int grad1 = 0x505000ff; - int grad2 = 0x5028007F; - drawGradientRect(x + 1, y + 2, 1, h - 3, grad1, grad2); - drawGradientRect(x + w - 1, y + 2, 1, h - 3, grad1, grad2); - - drawGradientRect(x + 1, y + 1, w - 1, 1, grad1, grad1); - drawGradientRect(x + 1, y + h - 1, w - 1, 1, grad2, grad2); - } -} diff --git a/dependencies/main/java/codechicken/lib/inventory/InventoryCopy.java b/dependencies/main/java/codechicken/lib/inventory/InventoryCopy.java deleted file mode 100644 index df12f61b4e..0000000000 --- a/dependencies/main/java/codechicken/lib/inventory/InventoryCopy.java +++ /dev/null @@ -1,134 +0,0 @@ -package codechicken.lib.inventory; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.IChatComponent; - -/** - * Creates a copy of an IInventory for extended simulation - */ -public class InventoryCopy implements IInventory { - public boolean[] accessible; - public ItemStack[] items; - public IInventory inv; - - public InventoryCopy(IInventory inv) { - items = new ItemStack[inv.getSizeInventory()]; - accessible = new boolean[inv.getSizeInventory()]; - this.inv = inv; - update(); - } - - public void update() { - for (int i = 0; i < items.length; i++) { - ItemStack stack = inv.getStackInSlot(i); - if (stack != null) { - items[i] = stack.copy(); - } - } - } - - public InventoryCopy open(InventoryRange access) { - int lslot = access.lastSlot(); - if (lslot > accessible.length) { - boolean[] l_accessible = new boolean[lslot]; - ItemStack[] l_items = new ItemStack[lslot]; - System.arraycopy(accessible, 0, l_accessible, 0, accessible.length); - System.arraycopy(items, 0, l_items, 0, items.length); - accessible = l_accessible; - items = l_items; - } - - for (int slot : access.slots) { - accessible[slot] = true; - } - return this; - } - - @Override - public int getSizeInventory() { - return items.length; - } - - @Override - public ItemStack getStackInSlot(int slot) { - return items[slot]; - } - - public ItemStack decrStackSize(int slot, int amount) { - return InventoryUtils.decrStackSize(this, slot, amount); - } - - @Override - public ItemStack removeStackFromSlot(int slot) { - return InventoryUtils.getStackInSlotOnClosing(this, slot); - } - - @Override - public void setInventorySlotContents(int slot, ItemStack stack) { - items[slot] = stack; - markDirty(); - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - return true; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public void markDirty() { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemstack) { - return inv.isItemValidForSlot(i, itemstack); - } - - @Override - public void openInventory(EntityPlayer player) { - } - - @Override - public void closeInventory(EntityPlayer player) { - } - - @Override - public int getField(int id) { - return 0; - } - - @Override - public void setField(int id, int value) { - } - - @Override - public int getFieldCount() { - return 0; - } - - @Override - public void clear() { - } - - @Override - public String getName() { - return "copy"; - } - - @Override - public boolean hasCustomName() { - return true; - } - - @Override - public IChatComponent getDisplayName() { - return new ChatComponentText(getName()); - } -} diff --git a/dependencies/main/java/codechicken/lib/inventory/InventoryNBT.java b/dependencies/main/java/codechicken/lib/inventory/InventoryNBT.java deleted file mode 100644 index b82a009826..0000000000 --- a/dependencies/main/java/codechicken/lib/inventory/InventoryNBT.java +++ /dev/null @@ -1,123 +0,0 @@ -package codechicken.lib.inventory; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.IChatComponent; - -/** - * IInventory implementation which saves and loads from an NBT tag - */ -public class InventoryNBT implements IInventory { - protected ItemStack[] items; - protected NBTTagCompound tag; - - public InventoryNBT(int size, NBTTagCompound tag) { - this.tag = tag; - items = new ItemStack[size]; - readNBT(); - } - - private void writeNBT() { - tag.setTag("items", InventoryUtils.writeItemStacksToTag(items, getInventoryStackLimit())); - } - - private void readNBT() { - if (tag.hasKey("items")) { - InventoryUtils.readItemStacksFromTag(items, tag.getTagList("items", 10)); - } - } - - @Override - public int getSizeInventory() { - return items.length; - } - - @Override - public ItemStack getStackInSlot(int slot) { - return items[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amount) { - return InventoryUtils.decrStackSize(this, slot, amount); - } - - @Override - public ItemStack removeStackFromSlot(int slot) { - return InventoryUtils.getStackInSlotOnClosing(this, slot); - } - - @Override - public void setInventorySlotContents(int slot, ItemStack stack) { - items[slot] = stack; - markDirty(); - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public void markDirty() { - writeNBT(); - } - - @Override - public void clear() { - for (int i = 0; i < items.length; i++) { - items[i] = null; - } - markDirty(); - } - - @Override - public int getField(int id) { - return 0; - } - - @Override - public void setField(int id, int value) { - } - - @Override - public int getFieldCount() { - return 0; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer var1) { - return true; - } - - @Override - public void openInventory(EntityPlayer player) { - } - - @Override - public void closeInventory(EntityPlayer player) { - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemstack) { - return true; - } - - @Override - public String getName() { - return "NBT"; - } - - @Override - public boolean hasCustomName() { - return true; - } - - @Override - public IChatComponent getDisplayName() { - return new ChatComponentText(getName()); - } -} diff --git a/dependencies/main/java/codechicken/lib/inventory/InventoryRange.java b/dependencies/main/java/codechicken/lib/inventory/InventoryRange.java deleted file mode 100644 index 8c33fabe6c..0000000000 --- a/dependencies/main/java/codechicken/lib/inventory/InventoryRange.java +++ /dev/null @@ -1,69 +0,0 @@ -package codechicken.lib.inventory; - -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.ISidedInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; - -/** - * Inventory wrapper for unified ISided/IInventory access - */ -public class InventoryRange { - public IInventory inv; - public EnumFacing face; - public ISidedInventory sidedInv; - public int[] slots; - - public InventoryRange(IInventory inv, int side) { - this.inv = inv; - this.face = EnumFacing.values()[side]; - if (inv instanceof ISidedInventory) { - sidedInv = (ISidedInventory) inv; - slots = sidedInv.getSlotsForFace(face); - } else { - slots = new int[inv.getSizeInventory()]; - for (int i = 0; i < slots.length; i++) { - slots[i] = i; - } - } - } - - public InventoryRange(IInventory inv) { - this(inv, 0); - } - - public InventoryRange(IInventory inv, int fslot, int lslot) { - this.inv = inv; - slots = new int[lslot - fslot]; - for (int i = 0; i < slots.length; i++) { - slots[i] = fslot + i; - } - } - - public InventoryRange(IInventory inv, InventoryRange access) { - this.inv = inv; - this.slots = access.slots; - this.face = access.face; - if (inv instanceof ISidedInventory) { - sidedInv = (ISidedInventory) inv; - } - } - - public boolean canInsertItem(int slot, ItemStack item) { - return sidedInv == null ? inv.isItemValidForSlot(slot, item) : sidedInv.canInsertItem(slot, item, face); - } - - public boolean canExtractItem(int slot, ItemStack item) { - return sidedInv == null ? inv.isItemValidForSlot(slot, item) : sidedInv.canExtractItem(slot, item, face); - } - - public int lastSlot() { - int last = 0; - for (int slot : slots) { - if (slot > last) { - last = slot; - } - } - return last; - } -} diff --git a/dependencies/main/java/codechicken/lib/inventory/InventorySimple.java b/dependencies/main/java/codechicken/lib/inventory/InventorySimple.java deleted file mode 100644 index c593ebf1df..0000000000 --- a/dependencies/main/java/codechicken/lib/inventory/InventorySimple.java +++ /dev/null @@ -1,136 +0,0 @@ -package codechicken.lib.inventory; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.IChatComponent; - -/** - * Simple IInventory implementation with an array of items, name and maximum stack size - */ -public class InventorySimple implements IInventory { - public ItemStack[] items; - public int limit; - public String name; - - public InventorySimple(ItemStack[] items, int limit, String name) { - this.items = items; - this.limit = limit; - this.name = name; - } - - public InventorySimple(ItemStack[] items, String name) { - this(items, 64, name); - } - - public InventorySimple(ItemStack[] items, int limit) { - this(items, limit, "inv"); - } - - public InventorySimple(ItemStack[] items) { - this(items, 64, "inv"); - } - - public InventorySimple(int size, int limit, String name) { - this(new ItemStack[size], limit, name); - } - - public InventorySimple(int size, int limit) { - this(size, limit, "inv"); - } - - public InventorySimple(int size, String name) { - this(size, 64, name); - } - - public InventorySimple(int size) { - this(size, 64, "inv"); - } - - @Override - public int getSizeInventory() { - return items.length; - } - - @Override - public ItemStack getStackInSlot(int slot) { - return items[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int amount) { - return InventoryUtils.decrStackSize(this, slot, amount); - } - - @Override - public ItemStack removeStackFromSlot(int slot) { - return InventoryUtils.getStackInSlotOnClosing(this, slot); - } - - @Override - public void setInventorySlotContents(int slot, ItemStack stack) { - items[slot] = stack; - markDirty(); - } - - @Override - public int getInventoryStackLimit() { - return limit; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer var1) { - return true; - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack itemstack) { - return true; - } - - @Override - public void markDirty() { - } - - @Override - public void openInventory(EntityPlayer player) { - } - - @Override - public void closeInventory(EntityPlayer player) { - } - - @Override - public int getField(int id) { - return 0; - } - - @Override - public void setField(int id, int value) { - } - - @Override - public int getFieldCount() { - return 0; - } - - @Override - public void clear() { - } - - @Override - public String getName() { - return "name"; - } - - @Override - public boolean hasCustomName() { - return true; - } - - @Override - public IChatComponent getDisplayName() { - return new ChatComponentText(getName()); - } -} diff --git a/dependencies/main/java/codechicken/lib/inventory/InventoryUtils.java b/dependencies/main/java/codechicken/lib/inventory/InventoryUtils.java deleted file mode 100644 index c5fee40612..0000000000 --- a/dependencies/main/java/codechicken/lib/inventory/InventoryUtils.java +++ /dev/null @@ -1,351 +0,0 @@ -package codechicken.lib.inventory; - -import codechicken.lib.vec.Vector3; -import com.google.common.base.Objects; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryLargeChest; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTBase; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityChest; -import net.minecraft.util.BlockPos; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.EnumFacing.Plane; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; - -public class InventoryUtils { - /** - * Constructor for ItemStack with tag - */ - public static ItemStack newItemStack(Item item, int size, int damage, NBTTagCompound tag) { - ItemStack stack = new ItemStack(item, size, damage); - stack.setTagCompound(tag); - return stack; - } - - /** - * Gets the actual damage of an item without asking the Item - */ - public static int actualDamage(ItemStack stack) { - return Items.diamond.getDamage(stack); - } - - /** - * Static default implementation for IInventory method - */ - public static ItemStack decrStackSize(IInventory inv, int slot, int size) { - ItemStack item = inv.getStackInSlot(slot); - - if (item != null) { - if (item.stackSize <= size) { - inv.setInventorySlotContents(slot, null); - inv.markDirty(); - return item; - } - ItemStack itemstack1 = item.splitStack(size); - if (item.stackSize == 0) { - inv.setInventorySlotContents(slot, null); - } else { - inv.setInventorySlotContents(slot, item); - } - - inv.markDirty(); - return itemstack1; - } - return null; - } - - /** - * Static default implementation for IInventory method - */ - public static ItemStack getStackInSlotOnClosing(IInventory inv, int slot) { - ItemStack stack = inv.getStackInSlot(slot); - inv.setInventorySlotContents(slot, null); - return stack; - } - - /** - * @return The quantity of items from addition that can be added to base - */ - public static int incrStackSize(ItemStack base, ItemStack addition) { - if (canStack(base, addition)) { - return incrStackSize(base, addition.stackSize); - } - - return 0; - } - - /** - * @return The quantity of items from addition that can be added to base - */ - public static int incrStackSize(ItemStack base, int addition) { - int totalSize = base.stackSize + addition; - - if (totalSize <= base.getMaxStackSize()) { - return addition; - } else if (base.stackSize < base.getMaxStackSize()) { - return base.getMaxStackSize() - base.stackSize; - } - - return 0; - } - - /** - * NBT item saving function - */ - public static NBTTagList writeItemStacksToTag(ItemStack[] items) { - return writeItemStacksToTag(items, 64); - } - - /** - * NBT item saving function with support for stack sizes > 32K - */ - public static NBTTagList writeItemStacksToTag(ItemStack[] items, int maxQuantity) { - NBTTagList tagList = new NBTTagList(); - for (int i = 0; i < items.length; i++) { - if (items[i] != null) { - NBTTagCompound tag = new NBTTagCompound(); - tag.setShort("Slot", (short) i); - items[i].writeToNBT(tag); - - if (maxQuantity > Short.MAX_VALUE) { - tag.setInteger("Quantity", items[i].stackSize); - } else if (maxQuantity > Byte.MAX_VALUE) { - tag.setShort("Quantity", (short) items[i].stackSize); - } - - tagList.appendTag(tag); - } - } - return tagList; - } - - /** - * NBT item loading function with support for stack sizes > 32K - */ - public static void readItemStacksFromTag(ItemStack[] items, NBTTagList tagList) { - for (int i = 0; i < tagList.tagCount(); i++) { - NBTTagCompound tag = tagList.getCompoundTagAt(i); - int b = tag.getShort("Slot"); - items[b] = ItemStack.loadItemStackFromNBT(tag); - if (tag.hasKey("Quantity")) { - items[b].stackSize = ((NBTBase.NBTPrimitive) tag.getTag("Quantity")).getInt(); - } - } - } - - /** - * Spawns an itemstack in the world at a location - */ - public static void dropItem(ItemStack stack, World world, Vector3 dropLocation) { - EntityItem item = new EntityItem(world, dropLocation.x, dropLocation.y, dropLocation.z, stack); - item.motionX = world.rand.nextGaussian() * 0.05; - item.motionY = world.rand.nextGaussian() * 0.05 + 0.2F; - item.motionZ = world.rand.nextGaussian() * 0.05; - world.spawnEntityInWorld(item); - } - - /** - * Copies an itemstack with a new quantity - */ - public static ItemStack copyStack(ItemStack stack, int quantity) { - if (stack == null) { - return null; - } - - stack = stack.copy(); - stack.stackSize = quantity; - return stack; - } - - /** - * Gets the maximum quantity of an item that can be inserted into inv - */ - public static int getInsertibleQuantity(InventoryRange inv, ItemStack stack) { - int quantity = 0; - stack = copyStack(stack, Integer.MAX_VALUE); - for (int slot : inv.slots) { - quantity += fitStackInSlot(inv, slot, stack); - } - - return quantity; - } - - public static int getInsertibleQuantity(IInventory inv, ItemStack stack) { - return getInsertibleQuantity(new InventoryRange(inv), stack); - } - - public static int fitStackInSlot(InventoryRange inv, int slot, ItemStack stack) { - ItemStack base = inv.inv.getStackInSlot(slot); - if (!canStack(base, stack) || !inv.canInsertItem(slot, stack)) { - return 0; - } - - int fit = base != null ? incrStackSize(base, inv.inv.getInventoryStackLimit() - base.stackSize) : inv.inv.getInventoryStackLimit(); - return Math.min(fit, stack.stackSize); - } - - public static int fitStackInSlot(IInventory inv, int slot, ItemStack stack) { - return fitStackInSlot(new InventoryRange(inv), slot, stack); - } - - /** - * @param simulate If set to true, no items will actually be inserted - * @return The number of items unable to be inserted - */ - public static int insertItem(InventoryRange inv, ItemStack stack, boolean simulate) { - stack = stack.copy(); - for (int pass = 0; pass < 2; pass++) { - for (int slot : inv.slots) { - ItemStack base = inv.inv.getStackInSlot(slot); - if ((pass == 0) == (base == null)) { - continue; - } - int fit = fitStackInSlot(inv, slot, stack); - if (fit == 0) { - continue; - } - - if (base != null) { - stack.stackSize -= fit; - if (!simulate) { - base.stackSize += fit; - inv.inv.setInventorySlotContents(slot, base); - } - } else { - if (!simulate) { - inv.inv.setInventorySlotContents(slot, copyStack(stack, fit)); - } - stack.stackSize -= fit; - } - if (stack.stackSize == 0) { - return 0; - } - } - } - return stack.stackSize; - } - - public static int insertItem(IInventory inv, ItemStack stack, boolean simulate) { - return insertItem(new InventoryRange(inv), stack, simulate); - } - - /** - * Gets the stack in slot if it can be extracted - */ - public static ItemStack getExtractableStack(InventoryRange inv, int slot) { - ItemStack stack = inv.inv.getStackInSlot(slot); - if (stack == null || !inv.canExtractItem(slot, stack)) { - return null; - } - - return stack; - } - - public static ItemStack getExtractableStack(IInventory inv, int slot) { - return getExtractableStack(new InventoryRange(inv), slot); - } - - public static boolean areStacksIdentical(ItemStack stack1, ItemStack stack2) { - if (stack1 == null || stack2 == null) { - return stack1 == stack2; - } - - return stack1.getItem() == stack2.getItem() && stack1.getItemDamage() == stack2.getItemDamage() && stack1.stackSize == stack2.stackSize && Objects.equal(stack1.getTagCompound(), stack2.getTagCompound()); - } - - /** - * Gets an IInventory from a coordinate with support for double chests - */ - public static IInventory getInventory(World world, BlockPos pos) { - TileEntity tile = world.getTileEntity(pos); - if (!(tile instanceof IInventory)) { - return null; - } - - if (tile instanceof TileEntityChest) { - return getChest((TileEntityChest) tile); - } - return (IInventory) tile; - - } - - public static IInventory getChest(TileEntityChest chest) { - for (EnumFacing fside : Plane.HORIZONTAL) { - if (chest.getWorld().getBlockState(chest.getPos().offset(fside)).getBlock() == chest.getBlockType()) { - return new InventoryLargeChest("container.chestDouble", (TileEntityChest) chest.getWorld().getTileEntity(chest.getPos().offset(fside)), chest); - } - } - return chest; - } - - public static boolean canStack(ItemStack stack1, ItemStack stack2) { - return stack1 == null || stack2 == null || - (stack1.getItem() == stack2.getItem() && - (!stack2.getHasSubtypes() || stack2.getItemDamage() == stack1.getItemDamage()) && - ItemStack.areItemStackTagsEqual(stack2, stack1)) && stack1.isStackable(); - } - - /** - * Consumes one item from slot in inv with support for containers. - */ - public static void consumeItem(IInventory inv, int slot) { - ItemStack stack = inv.getStackInSlot(slot); - Item item = stack.getItem(); - if (item.hasContainerItem(stack)) { - ItemStack container = item.getContainerItem(stack); - inv.setInventorySlotContents(slot, container); - } else { - inv.decrStackSize(slot, 1); - } - } - - /** - * Gets the size of the stack in a slot. Returns 0 on null stacks - */ - public static int stackSize(IInventory inv, int slot) { - ItemStack stack = inv.getStackInSlot(slot); - return stack == null ? 0 : stack.stackSize; - } - - /** - * Drops all items from inv using getStackInSlotOnClosing - */ - public static void dropOnClose(EntityPlayer player, IInventory inv) { - for (int i = 0; i < inv.getSizeInventory(); i++) { - ItemStack stack = inv.removeStackFromSlot(i); - if (stack != null) { - player.dropPlayerItemWithRandomChoice(stack, false); - } - } - } - - public static NBTTagCompound savePersistant(ItemStack stack, NBTTagCompound tag) { - stack.writeToNBT(tag); - tag.removeTag("id"); - tag.setString("name", Item.itemRegistry.getNameForObject(stack.getItem()).toString()); - return tag; - } - - public static ItemStack loadPersistant(NBTTagCompound tag) { - String name = tag.getString("name"); - Item item = (Item) Item.itemRegistry.getObject(new ResourceLocation(name)); - if (item == null) { - return null; - } - int count = tag.hasKey("Count") ? tag.getByte("Count") : 1; - int damage = tag.hasKey("Damage") ? tag.getShort("Damage") : 0; - ItemStack stack = new ItemStack(item, count, damage); - if (tag.hasKey("tag", 10)) { - stack.setTagCompound(tag.getCompoundTag("tag")); - } - return stack; - } -} diff --git a/dependencies/main/java/codechicken/lib/inventory/ItemKey.java b/dependencies/main/java/codechicken/lib/inventory/ItemKey.java deleted file mode 100644 index 82ed7276e5..0000000000 --- a/dependencies/main/java/codechicken/lib/inventory/ItemKey.java +++ /dev/null @@ -1,66 +0,0 @@ -package codechicken.lib.inventory; - -import com.google.common.base.Objects; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.oredict.OreDictionary; - -import static codechicken.lib.inventory.InventoryUtils.actualDamage; - -/** - * Comparable ItemStack with a hashCode implementation. - */ -public class ItemKey implements Comparable { - public ItemStack stack; - private int hashcode = 0; - - public ItemKey(ItemStack k) { - stack = k; - } - - public ItemKey(Item item, int damage) { - this(new ItemStack(item, 1, damage)); - } - - public ItemKey(Item item, NBTTagCompound tag) { - this(item, OreDictionary.WILDCARD_VALUE, tag); - } - - public ItemKey(Item item, int damage, NBTTagCompound tag) { - this(item, damage); - stack.setTagCompound(tag); - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof ItemKey)) { - return false; - } - - ItemKey k = (ItemKey) obj; - return stack.getItem() == k.stack.getItem() && - actualDamage(stack) == actualDamage(k.stack) && - Objects.equal(stack.getTagCompound(), k.stack.getTagCompound()); - } - - @Override - public int hashCode() { - return hashcode != 0 ? hashcode : (hashcode = Objects.hashCode(stack.getItem(), actualDamage(stack), stack.getTagCompound())); - } - - public int compareInt(int a, int b) { - return a == b ? 0 : a < b ? -1 : 1; - } - - @Override - public int compareTo(ItemKey o) { - if (stack.getItem() != o.stack.getItem()) { - return compareInt(Item.getIdFromItem(stack.getItem()), Item.getIdFromItem(o.stack.getItem())); - } - if (actualDamage(stack) != actualDamage(o.stack)) { - return compareInt(actualDamage(stack), actualDamage(o.stack)); - } - return 0; - } -} diff --git a/dependencies/main/java/codechicken/lib/lighting/LC.java b/dependencies/main/java/codechicken/lib/lighting/LC.java deleted file mode 100644 index 869a5e5e49..0000000000 --- a/dependencies/main/java/codechicken/lib/lighting/LC.java +++ /dev/null @@ -1,90 +0,0 @@ -package codechicken.lib.lighting; - -import codechicken.lib.render.CCModel; -import codechicken.lib.util.Copyable; -import codechicken.lib.vec.Rotation; -import codechicken.lib.vec.Vector3; - -public class LC implements Copyable { - public int side; - public float fa; - public float fb; - public float fc; - public float fd; - - public LC() { - this(0, 0, 0, 0, 0); - } - - public LC(int s, float a, float b, float c, float d) { - side = s; - fa = a; - fb = b; - fc = c; - fd = d; - } - - public LC set(int s, float a, float b, float c, float d) { - side = s; - fa = a; - fb = b; - fc = c; - fd = d; - return this; - } - - public LC set(LC lc) { - return set(lc.side, lc.fa, lc.fb, lc.fc, lc.fd); - } - - public LC compute(Vector3 vec, Vector3 normal) { - int side = CCModel.findSide(normal); - if (side < 0) { - return set(12, 1, 0, 0, 0); - } - return compute(vec, side); - } - - public LC compute(Vector3 vec, int side) { - boolean offset = false; - switch (side) { - case 0: - offset = vec.y <= 0; - break; - case 1: - offset = vec.y >= 1; - break; - case 2: - offset = vec.z <= 0; - break; - case 3: - offset = vec.z >= 1; - break; - case 4: - offset = vec.x <= 0; - break; - case 5: - offset = vec.x >= 1; - break; - } - if (!offset) { - side += 6; - } - return computeO(vec, side); - } - - public LC computeO(Vector3 vec, int side) { - Vector3 v1 = Rotation.axes[((side & 0xE) + 3) % 6]; - Vector3 v2 = Rotation.axes[((side & 0xE) + 5) % 6]; - float d1 = (float) vec.scalarProject(v1); - float d2 = 1 - d1; - float d3 = (float) vec.scalarProject(v2); - float d4 = 1 - d3; - return set(side, d2 * d4, d2 * d3, d1 * d4, d1 * d3); - } - - @Override - public LC copy() { - return new LC(side, fa, fb, fc, fd); - } -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/lib/lighting/LightMatrix.java b/dependencies/main/java/codechicken/lib/lighting/LightMatrix.java deleted file mode 100644 index bca3c02aa1..0000000000 --- a/dependencies/main/java/codechicken/lib/lighting/LightMatrix.java +++ /dev/null @@ -1,151 +0,0 @@ -package codechicken.lib.lighting; - -import codechicken.lib.colour.ColourRGBA; -import codechicken.lib.render.CCRenderState; -import codechicken.lib.vec.BlockCoord; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.util.BlockPos; -import net.minecraft.world.IBlockAccess; - -/** - * Note that when using the class as a vertex transformer, the vertices are assumed to be within the BB (x, y, z) -> (x+1, y+1, z+1) - */ -public class LightMatrix implements CCRenderState.IVertexOperation { - public static final int operationIndex = CCRenderState.registerOperation(); - - public int computed = 0; - public float[][] ao = new float[13][4]; - public int[][] brightness = new int[13][4]; - - public IBlockAccess access; - public BlockCoord pos = new BlockCoord(); - - private int sampled = 0; - private float[] aSamples = new float[27]; - private int[] bSamples = new int[27]; - - /** - * The 9 positions in the sample array for each side, sides >= 6 are centered on sample 13 (the block itself) - */ - public static final int[][] ssamplem = new int[][] { { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, { 18, 19, 20, 21, 22, 23, 24, 25, 26 }, { 0, 9, 18, 1, 10, 19, 2, 11, 20 }, { 6, 15, 24, 7, 16, 25, 8, 17, 26 }, { 0, 3, 6, 9, 12, 15, 18, 21, 24 }, { 2, 5, 8, 11, 14, 17, 20, 23, 26 }, { 9, 10, 11, 12, 13, 14, 15, 16, 17 }, { 9, 10, 11, 12, 13, 14, 15, 16, 17 }, { 3, 12, 21, 4, 13, 22, 5, 14, 23 }, { 3, 12, 21, 4, 13, 22, 5, 14, 23 }, { 1, 4, 7, 10, 13, 16, 19, 22, 25 }, { 1, 4, 7, 10, 13, 16, 19, 22, 25 }, { 13, 13, 13, 13, 13, 13, 13, 13, 13 } }; - public static final int[][] qsamplem = new int[][] {//the positions in the side sample array for each corner - { 0, 1, 3, 4 }, { 5, 1, 2, 4 }, { 6, 7, 3, 4 }, { 5, 7, 8, 4 } }; - public static final float[] sideao = new float[] { 0.5F, 1F, 0.8F, 0.8F, 0.6F, 0.6F, 0.5F, 1F, 0.8F, 0.8F, 0.6F, 0.6F, 1F }; - - /*static - { - int[][] os = new int[][]{ - {0,-1,0}, - {0, 1,0}, - {0,0,-1}, - {0,0, 1}, - {-1,0,0}, - { 1,0,0}}; - - for(int s = 0; s < 12; s++) - { - int[] d0 = s < 6 ? new int[]{os[s][0]+1, os[s][1]+1, os[s][2]+1} : new int[]{1, 1, 1}; - int[] d1 = os[((s&0xE)+3)%6]; - int[] d2 = os[((s&0xE)+5)%6]; - for(int a = -1; a <= 1; a++) - for(int b = -1; b <= 1; b++) - ssamplem[s][(a+1)*3+b+1] = (d0[1]+d1[1]*a+d2[1]*b)*9+(d0[2]+d1[2]*a+d2[2]*b)*3+(d0[0]+d1[0]*a+d2[0]*b); - } - System.out.println(Arrays.deepToString(ssamplem)); - }*/ - - public void locate(IBlockAccess a, int x, int y, int z) { - access = a; - pos.set(x, y, z); - computed = 0; - sampled = 0; - } - - public void sample(int i) { - if ((sampled & 1 << i) == 0) { - BlockPos bp = new BlockPos(pos.x + (i % 3) - 1, pos.y + (i / 9) - 1, pos.z + (i / 3 % 3) - 1); - IBlockState b = access.getBlockState(bp); - bSamples[i] = access.getCombinedLight(bp, b.getBlock().getLightValue(access, bp)); - aSamples[i] = b.getBlock().getAmbientOcclusionLightValue(); - sampled |= 1 << i; - } - } - - public int[] brightness(int side) { - sideSample(side); - return brightness[side]; - } - - public float[] ao(int side) { - sideSample(side); - return ao[side]; - } - - public void sideSample(int side) { - if ((computed & 1 << side) == 0) { - int[] ssample = ssamplem[side]; - for (int q = 0; q < 4; q++) { - int[] qsample = qsamplem[q]; - if (Minecraft.isAmbientOcclusionEnabled()) { - interp(side, q, ssample[qsample[0]], ssample[qsample[1]], ssample[qsample[2]], ssample[qsample[3]]); - } else { - interp(side, q, ssample[4], ssample[4], ssample[4], ssample[4]); - } - } - computed |= 1 << side; - } - } - - private void interp(int s, int q, int a, int b, int c, int d) { - sample(a); - sample(b); - sample(c); - sample(d); - ao[s][q] = interpAO(aSamples[a], aSamples[b], aSamples[c], aSamples[d]) * sideao[s]; - brightness[s][q] = interpBrightness(bSamples[a], bSamples[b], bSamples[c], bSamples[d]); - } - - public static float interpAO(float a, float b, float c, float d) { - return (a + b + c + d) / 4F; - } - - public static int interpBrightness(int a, int b, int c, int d) { - if (a == 0) { - a = d; - } - if (b == 0) { - b = d; - } - if (c == 0) { - c = d; - } - return (a + b + c + d) >> 2 & 0xFF00FF; - } - - @Override - public boolean load() { - if (!CCRenderState.computeLighting) { - return false; - } - - CCRenderState.pipeline.addDependency(CCRenderState.colourAttrib); - CCRenderState.pipeline.addDependency(CCRenderState.lightCoordAttrib); - return true; - } - - @Override - public void operate() { - LC lc = CCRenderState.lc; - float[] a = ao(lc.side); - float f = (a[0] * lc.fa + a[1] * lc.fb + a[2] * lc.fc + a[3] * lc.fd); - int[] b = brightness(lc.side); - CCRenderState.setColour(ColourRGBA.multiplyC(CCRenderState.colour, f)); - CCRenderState.setBrightness((int) (b[0] * lc.fa + b[1] * lc.fb + b[2] * lc.fc + b[3] * lc.fd) & 0xFF00FF); - } - - @Override - public int operationID() { - return operationIndex; - } -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/lib/lighting/LightModel.java b/dependencies/main/java/codechicken/lib/lighting/LightModel.java deleted file mode 100644 index 4c2d9c5587..0000000000 --- a/dependencies/main/java/codechicken/lib/lighting/LightModel.java +++ /dev/null @@ -1,108 +0,0 @@ -package codechicken.lib.lighting; - -import codechicken.lib.render.CCRenderState; -import codechicken.lib.vec.Rotation; -import codechicken.lib.vec.Vector3; - -public class LightModel implements CCRenderState.IVertexOperation { - public static final int operationIndex = CCRenderState.registerOperation(); - - public static class Light { - public Vector3 ambient = new Vector3(); - public Vector3 diffuse = new Vector3(); - public Vector3 position; - - public Light(Vector3 pos) { - position = pos.copy().normalize(); - } - - public Light setDiffuse(Vector3 vec) { - diffuse.set(vec); - return this; - } - - public Light setAmbient(Vector3 vec) { - ambient.set(vec); - return this; - } - } - - public static LightModel standardLightModel; - - static { - standardLightModel = new LightModel().setAmbient(new Vector3(0.4, 0.4, 0.4)).addLight(new Light(new Vector3(0.2, 1, -0.7)).setDiffuse(new Vector3(0.6, 0.6, 0.6))).addLight(new Light(new Vector3(-0.2, 1, 0.7)).setDiffuse(new Vector3(0.6, 0.6, 0.6))); - } - - private Vector3 ambient = new Vector3(); - private Light[] lights = new Light[8]; - private int lightCount; - - public LightModel addLight(Light light) { - lights[lightCount++] = light; - return this; - } - - public LightModel setAmbient(Vector3 vec) { - ambient.set(vec); - return this; - } - - /** - * @param colour The pre-lighting vertex colour. RGBA format - * @param normal The normal at the vertex - * @return The lighting applied colour - */ - public int apply(int colour, Vector3 normal) { - Vector3 n_colour = ambient.copy(); - for (int l = 0; l < lightCount; l++) { - Light light = lights[l]; - double n_l = light.position.dotProduct(normal); - double f = n_l > 0 ? 1 : 0; - n_colour.x += light.ambient.x + f * light.diffuse.x * n_l; - n_colour.y += light.ambient.y + f * light.diffuse.y * n_l; - n_colour.z += light.ambient.z + f * light.diffuse.z * n_l; - } - - if (n_colour.x > 1) { - n_colour.x = 1; - } - if (n_colour.y > 1) { - n_colour.y = 1; - } - if (n_colour.z > 1) { - n_colour.z = 1; - } - - n_colour.multiply((colour >>> 24) / 255D, (colour >> 16 & 0xFF) / 255D, (colour >> 8 & 0xFF) / 255D); - return (int) (n_colour.x * 255) << 24 | (int) (n_colour.y * 255) << 16 | (int) (n_colour.z * 255) << 8 | colour & 0xFF; - } - - @Override - public boolean load() { - if (!CCRenderState.computeLighting) { - return false; - } - - CCRenderState.pipeline.addDependency(CCRenderState.normalAttrib); - CCRenderState.pipeline.addDependency(CCRenderState.colourAttrib); - return true; - } - - @Override - public void operate() { - CCRenderState.setColour(apply(CCRenderState.colour, CCRenderState.normal)); - } - - @Override - public int operationID() { - return operationIndex; - } - - public PlanarLightModel reducePlanar() { - int[] colours = new int[6]; - for (int i = 0; i < 6; i++) { - colours[i] = apply(-1, Rotation.axes[i]); - } - return new PlanarLightModel(colours); - } -} diff --git a/dependencies/main/java/codechicken/lib/lighting/PlanarLightMatrix.java b/dependencies/main/java/codechicken/lib/lighting/PlanarLightMatrix.java deleted file mode 100644 index ce43b59ea1..0000000000 --- a/dependencies/main/java/codechicken/lib/lighting/PlanarLightMatrix.java +++ /dev/null @@ -1,56 +0,0 @@ -package codechicken.lib.lighting; - -import codechicken.lib.render.CCRenderState; -import codechicken.lib.vec.BlockCoord; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockPos; -import net.minecraft.world.IBlockAccess; - -public class PlanarLightMatrix extends PlanarLightModel { - public static final int operationIndex = CCRenderState.registerOperation(); - public static PlanarLightMatrix instance = new PlanarLightMatrix(); - - public IBlockAccess access; - public BlockCoord pos = new BlockCoord(); - - private int sampled = 0; - public int[] brightness = new int[6]; - - public PlanarLightMatrix() { - super(PlanarLightModel.standardLightModel.colours); - } - - public PlanarLightMatrix locate(IBlockAccess a, int x, int y, int z) { - access = a; - pos.set(x, y, z); - sampled = 0; - return this; - } - - public int brightness(int side) { - if ((sampled & 1 << side) == 0) { - BlockPos bp = pos.pos(); - IBlockState b = access.getBlockState(bp); - brightness[side] = access.getCombinedLight(bp, b.getBlock().getLightValue(access, bp)); - sampled |= 1 << side; - } - return brightness[side]; - } - - @Override - public boolean load() { - CCRenderState.pipeline.addDependency(CCRenderState.sideAttrib); - return true; - } - - @Override - public void operate() { - super.operate(); - CCRenderState.setBrightness(brightness(CCRenderState.side)); - } - - @Override - public int operationID() { - return operationIndex; - } -} diff --git a/dependencies/main/java/codechicken/lib/lighting/PlanarLightModel.java b/dependencies/main/java/codechicken/lib/lighting/PlanarLightModel.java deleted file mode 100644 index 8fc2dafee2..0000000000 --- a/dependencies/main/java/codechicken/lib/lighting/PlanarLightModel.java +++ /dev/null @@ -1,38 +0,0 @@ -package codechicken.lib.lighting; - -import codechicken.lib.colour.ColourRGBA; -import codechicken.lib.render.CCRenderState; - -/** - * Faster precomputed version of LightModel that only works for axis planar sides - */ -public class PlanarLightModel implements CCRenderState.IVertexOperation { - public static PlanarLightModel standardLightModel = LightModel.standardLightModel.reducePlanar(); - - public int[] colours; - - public PlanarLightModel(int[] colours) { - this.colours = colours; - } - - @Override - public boolean load() { - if (!CCRenderState.computeLighting) { - return false; - } - - CCRenderState.pipeline.addDependency(CCRenderState.sideAttrib); - CCRenderState.pipeline.addDependency(CCRenderState.colourAttrib); - return true; - } - - @Override - public void operate() { - CCRenderState.setColour(ColourRGBA.multiply(CCRenderState.colour, colours[CCRenderState.side])); - } - - @Override - public int operationID() { - return LightModel.operationIndex; - } -} diff --git a/dependencies/main/java/codechicken/lib/lighting/SimpleBrightnessModel.java b/dependencies/main/java/codechicken/lib/lighting/SimpleBrightnessModel.java deleted file mode 100644 index 7783437ce9..0000000000 --- a/dependencies/main/java/codechicken/lib/lighting/SimpleBrightnessModel.java +++ /dev/null @@ -1,54 +0,0 @@ -package codechicken.lib.lighting; - -import codechicken.lib.render.CCRenderState; -import codechicken.lib.vec.BlockCoord; -import net.minecraft.block.state.IBlockState; -import net.minecraft.util.BlockPos; -import net.minecraft.world.IBlockAccess; - -/** - * Faster precomputed version of LightModel that only works for axis planar sides - */ -public class SimpleBrightnessModel implements CCRenderState.IVertexOperation { - public static final int operationIndex = CCRenderState.registerOperation(); - public static SimpleBrightnessModel instance = new SimpleBrightnessModel(); - - public IBlockAccess access; - public BlockCoord pos = new BlockCoord(); - - private int sampled = 0; - private int[] samples = new int[6]; - private BlockCoord c = new BlockCoord(); - - public void locate(IBlockAccess a, int x, int y, int z) { - access = a; - pos.set(x, y, z); - sampled = 0; - } - - public int sample(int side) { - if ((sampled & 1 << side) == 0) { - BlockPos bp = c.set(pos).offset(side).pos(); - IBlockState b = access.getBlockState(bp); - samples[side] = access.getCombinedLight(bp, b.getBlock().getLightValue(access, bp)); - sampled |= 1 << side; - } - return samples[side]; - } - - @Override - public boolean load() { - CCRenderState.pipeline.addDependency(CCRenderState.sideAttrib); - return true; - } - - @Override - public void operate() { - CCRenderState.setBrightness(sample(CCRenderState.side)); - } - - @Override - public int operationID() { - return operationIndex; - } -} diff --git a/dependencies/main/java/codechicken/lib/math/MathHelper.java b/dependencies/main/java/codechicken/lib/math/MathHelper.java deleted file mode 100644 index a2ca169140..0000000000 --- a/dependencies/main/java/codechicken/lib/math/MathHelper.java +++ /dev/null @@ -1,160 +0,0 @@ -package codechicken.lib.math; - -public class MathHelper { - public static final double phi = 1.618033988749894; - public static final double pi = Math.PI; - public static final double todeg = 57.29577951308232; - public static final double torad = 0.017453292519943; - public static final double sqrt2 = 1.414213562373095; - - public static double[] SIN_TABLE = new double[65536]; - - static { - for (int i = 0; i < 65536; ++i) { - SIN_TABLE[i] = Math.sin(i / 65536D * 2 * Math.PI); - } - - SIN_TABLE[0] = 0; - SIN_TABLE[16384] = 1; - SIN_TABLE[32768] = 0; - SIN_TABLE[49152] = 1; - } - - public static double sin(double d) { - return SIN_TABLE[(int) ((float) d * 10430.378F) & 65535]; - } - - public static double cos(double d) { - return SIN_TABLE[(int) ((float) d * 10430.378F + 16384.0F) & 65535]; - } - - /** - * @param a The value - * @param b The value to approach - * @param max The maximum step - * @return the closed value to b no less than max from a - */ - public static float approachLinear(float a, float b, float max) { - return (a > b) ? (a - b < max ? b : a - max) : (b - a < max ? b : a + max); - } - - /** - * @param a The value - * @param b The value to approach - * @param max The maximum step - * @return the closed value to b no less than max from a - */ - public static double approachLinear(double a, double b, double max) { - return (a > b) ? (a - b < max ? b : a - max) : (b - a < max ? b : a + max); - } - - /** - * @param a The first value - * @param b The second value - * @param d The interpolation factor, between 0 and 1 - * @return a+(b-a)*d - */ - public static float interpolate(float a, float b, float d) { - return a + (b - a) * d; - } - - /** - * @param a The first value - * @param b The second value - * @param d The interpolation factor, between 0 and 1 - * @return a+(b-a)*d - */ - public static double interpolate(double a, double b, double d) { - return a + (b - a) * d; - } - - /** - * @param a The value - * @param b The value to approach - * @param ratio The ratio to reduce the difference by - * @return a+(b-a)*ratio - */ - public static double approachExp(double a, double b, double ratio) { - return a + (b - a) * ratio; - } - - /** - * @param a The value - * @param b The value to approach - * @param ratio The ratio to reduce the difference by - * @param cap The maximum amount to advance by - * @return a+(b-a)*ratio - */ - public static double approachExp(double a, double b, double ratio, double cap) { - double d = (b - a) * ratio; - if (Math.abs(d) > cap) { - d = Math.signum(d) * cap; - } - return a + d; - } - - /** - * @param a The value - * @param b The value to approach - * @param ratio The ratio to reduce the difference by - * @param c The value to retreat from - * @param kick The difference when a == c - * @return - */ - public static double retreatExp(double a, double b, double c, double ratio, double kick) { - double d = (Math.abs(c - a) + kick) * ratio; - if (d > Math.abs(b - a)) { - return b; - } - return a + Math.signum(b - a) * d; - } - - /** - * @param value The value - * @param min The min value - * @param max The max value - * @return The clipped value between min and max - */ - public static double clip(double value, double min, double max) { - if (value > max) { - value = max; - } - if (value < min) { - value = min; - } - return value; - } - - /** - * @return a <= x <= b - */ - public static boolean between(double a, double x, double b) { - return a <= x && x <= b; - } - - public static int approachExpI(int a, int b, double ratio) { - int r = (int) Math.round(approachExp(a, b, ratio)); - return r == a ? b : r; - } - - public static int retreatExpI(int a, int b, int c, double ratio, int kick) { - int r = (int) Math.round(retreatExp(a, b, c, ratio, kick)); - return r == a ? b : r; - } - - public static int floor_double(double d) { - return net.minecraft.util.MathHelper.floor_double(d); - } - - public static int roundAway(double d) { - return (int) (d < 0 ? Math.floor(d) : Math.ceil(d)); - } - - public static int compare(int a, int b) { - return a == b ? 0 : a < b ? -1 : 1; - } - - public static int compare(double a, double b) { - return a == b ? 0 : a < b ? -1 : 1; - } -} diff --git a/dependencies/main/java/codechicken/lib/packet/ICustomPacketTile.java b/dependencies/main/java/codechicken/lib/packet/ICustomPacketTile.java deleted file mode 100644 index 9bf9e033a2..0000000000 --- a/dependencies/main/java/codechicken/lib/packet/ICustomPacketTile.java +++ /dev/null @@ -1,5 +0,0 @@ -package codechicken.lib.packet; - -public interface ICustomPacketTile { - public void handleDescriptionPacket(PacketCustom packet); -} diff --git a/dependencies/main/java/codechicken/lib/packet/PacketCustom.java b/dependencies/main/java/codechicken/lib/packet/PacketCustom.java deleted file mode 100644 index d46ea22745..0000000000 --- a/dependencies/main/java/codechicken/lib/packet/PacketCustom.java +++ /dev/null @@ -1,504 +0,0 @@ -package codechicken.lib.packet; - -import codechicken.lib.data.MCDataIO; -import codechicken.lib.data.MCDataInput; -import codechicken.lib.data.MCDataOutput; -import codechicken.lib.vec.BlockCoord; -import com.google.common.collect.Maps; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; -import io.netty.channel.ChannelHandler; -import io.netty.channel.ChannelHandlerContext; -import io.netty.channel.ChannelInboundHandlerAdapter; -import io.netty.channel.SimpleChannelInboundHandler; -import io.netty.handler.codec.EncoderException; -import io.netty.util.AttributeKey; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.INetHandler; -import net.minecraft.network.NetHandlerPlayServer; -import net.minecraft.network.Packet; -import net.minecraft.network.PacketBuffer; -import net.minecraft.network.play.INetHandlerPlayClient; -import net.minecraft.network.play.INetHandlerPlayServer; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.management.PlayerManager.PlayerInstance; -import net.minecraft.world.World; -import net.minecraft.world.WorldServer; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.ModContainer; -import net.minecraftforge.fml.common.network.FMLEmbeddedChannel; -import net.minecraftforge.fml.common.network.FMLOutboundHandler; -import net.minecraftforge.fml.common.network.NetworkHandshakeEstablished; -import net.minecraftforge.fml.common.network.NetworkRegistry; -import net.minecraftforge.fml.common.network.handshake.NetworkDispatcher; -import net.minecraftforge.fml.common.network.internal.FMLProxyPacket; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.io.IOException; -import java.util.EnumMap; -import java.util.List; -import java.util.zip.Deflater; -import java.util.zip.Inflater; - -public final class PacketCustom extends PacketBuffer implements MCDataInput, MCDataOutput { - public static interface ICustomPacketHandler { - } - - public interface IClientPacketHandler extends ICustomPacketHandler { - public void handlePacket(PacketCustom packetCustom, Minecraft mc, INetHandlerPlayClient handler); - } - - public interface IServerPacketHandler extends ICustomPacketHandler { - public void handlePacket(PacketCustom packetCustom, EntityPlayerMP sender, INetHandlerPlayServer handler); - } - - public static AttributeKey cclHandler = new AttributeKey("ccl:handler"); - - @ChannelHandler.Sharable - public static class CustomInboundHandler extends SimpleChannelInboundHandler { - public EnumMap handlers = Maps.newEnumMap(Side.class); - - @Override - public void handlerAdded(ChannelHandlerContext ctx) throws Exception { - super.handlerAdded(ctx); - ctx.channel().attr(cclHandler).set(this); - } - - @Override - protected void channelRead0(ChannelHandlerContext ctx, FMLProxyPacket msg) throws Exception { - handlers.get(ctx.channel().attr(NetworkRegistry.CHANNEL_SOURCE).get()).handle(ctx.channel().attr(NetworkRegistry.NET_HANDLER).get(), ctx.channel().attr(NetworkRegistry.FML_CHANNEL).get(), new PacketCustom(msg.payload())); - } - } - - private static interface CustomHandler { - public void handle(INetHandler handler, String channel, PacketCustom packet); - } - - public static class ClientInboundHandler implements CustomHandler { - private IClientPacketHandler handler; - - public ClientInboundHandler(ICustomPacketHandler handler) { - this.handler = (IClientPacketHandler) handler; - } - - @Override - public void handle(final INetHandler netHandler, final String channel, final PacketCustom packet) { - if (netHandler instanceof INetHandlerPlayClient) { - Minecraft mc = Minecraft.getMinecraft(); - if (!mc.isCallingFromMinecraftThread()) { - mc.addScheduledTask(new Runnable() { - public void run() { - handle(netHandler, channel, packet); - } - }); - } else { - handler.handlePacket(packet, mc, (INetHandlerPlayClient) netHandler); - } - } else { - System.err.println("Invalid INetHandler for PacketCustom on channel: " + channel); - } - } - } - - public static class ServerInboundHandler implements CustomHandler { - private IServerPacketHandler handler; - - public ServerInboundHandler(ICustomPacketHandler handler) { - this.handler = (IServerPacketHandler) handler; - } - - @Override - public void handle(final INetHandler netHandler, final String channel, final PacketCustom packet) { - if (netHandler instanceof NetHandlerPlayServer) { - MinecraftServer mc = MinecraftServer.getServer(); - if (!mc.isCallingFromMinecraftThread()) { - mc.addScheduledTask(new Runnable() { - public void run() { - handle(netHandler, channel, packet); - } - }); - } else { - handler.handlePacket(packet, ((NetHandlerPlayServer) netHandler).playerEntity, (INetHandlerPlayServer) netHandler); - } - } else { - System.err.println("Invalid INetHandler for PacketCustom on channel: " + channel); - } - } - } - - public static interface IHandshakeHandler { - public void handshakeRecieved(NetHandlerPlayServer netHandler); - } - - public static class HandshakeInboundHandler extends ChannelInboundHandlerAdapter { - public IHandshakeHandler handler; - - public HandshakeInboundHandler(IHandshakeHandler handler) { - this.handler = handler; - } - - @Override - public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { - if (evt instanceof NetworkHandshakeEstablished) { - INetHandler netHandler = ((NetworkDispatcher) ctx.channel().attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).get()).getNetHandler(); - if (netHandler instanceof NetHandlerPlayServer) { - handler.handshakeRecieved((NetHandlerPlayServer) netHandler); - } - } else { - ctx.fireUserEventTriggered(evt); - } - } - } - - public static String channelName(Object channelKey) { - if (channelKey instanceof String) { - return (String) channelKey; - } - if (channelKey instanceof ModContainer) { - String s = ((ModContainer) channelKey).getModId(); - if (s.length() > 20) { - throw new IllegalArgumentException("Mod ID (" + s + ") too long for use as channel (20 chars). Use a string identifier"); - } - return s; - } - - ModContainer mc = FMLCommonHandler.instance().findContainerFor(channelKey); - if (mc != null) { - return mc.getModId(); - } - - throw new IllegalArgumentException("Invalid channel: " + channelKey); - } - - public static FMLEmbeddedChannel getOrCreateChannel(String channelName, Side side) { - if (!NetworkRegistry.INSTANCE.hasChannel(channelName, side)) { - NetworkRegistry.INSTANCE.newChannel(channelName, new CustomInboundHandler()); - } - return NetworkRegistry.INSTANCE.getChannel(channelName, side); - } - - public static void assignHandler(Object channelKey, ICustomPacketHandler handler) { - String channelName = channelName(channelKey); - Side side = handler instanceof IServerPacketHandler ? Side.SERVER : Side.CLIENT; - FMLEmbeddedChannel channel = getOrCreateChannel(channelName, side); - channel.attr(cclHandler).get().handlers.put(side, side == Side.SERVER ? new ServerInboundHandler(handler) : new ClientInboundHandler(handler)); - } - - public static void assignHandshakeHandler(Object channelKey, IHandshakeHandler handler) { - FMLEmbeddedChannel channel = getOrCreateChannel(channelName(channelKey), Side.SERVER); - channel.pipeline().addLast(new HandshakeInboundHandler(handler)); - } - - private String channel; - private int type; - - public PacketCustom(ByteBuf payload) { - super(payload); - - type = readUnsignedByte(); - if (type > 0x80) { - decompress(); - } - type &= 0x7F; - } - - public PacketCustom(Object channelKey, int type) { - super(Unpooled.buffer()); - if (type <= 0 || type >= 0x80) { - throw new IllegalArgumentException("Packet type: " + type + " is not within required 0 < t < 0x80"); - } - - this.channel = channelName(channelKey); - this.type = type; - writeByte(type); - } - - /** - * Decompresses the remaining ByteBuf (after type has been read) using Snappy - */ - private void decompress() { - Inflater inflater = new Inflater(); - try { - int len = readInt(); - byte[] out = new byte[len]; - inflater.setInput(array(), readerIndex(), readableBytes()); - inflater.inflate(out); - clear(); - writeByteArray(out); - } catch (Exception e) { - throw new EncoderException(e); - } finally { - inflater.end(); - } - } - - /** - * Compresses the payload ByteBuf after the type byte - */ - private void do_compress() { - Deflater deflater = new Deflater(); - try { - readerIndex(1); - int len = readableBytes(); - deflater.setInput(array(), readerIndex(), len); - deflater.finish(); - byte[] out = new byte[len]; - int clen = deflater.deflate(out); - if (clen >= len - 5 || !deflater.finished())//not worth compressing, gets larger - { - return; - } - clear(); - writeByte(type | 0x80); - writeVarInt(len); - writeByteArray(out); - } catch (Exception e) { - throw new EncoderException(e); - } finally { - readerIndex(0); - deflater.end(); - } - } - - public boolean incoming() { - return channel == null; - } - - public int getType() { - return type & 0x7F; - } - - public PacketCustom compress() { - if (incoming()) { - throw new IllegalStateException("Tried to compress an incoming packet"); - } - if ((type & 0x80) != 0) { - throw new IllegalStateException("Packet already compressed"); - } - type |= 0x80; - return this; - } - - public PacketCustom writeBoolean(boolean b) { - super.writeBoolean(b); - return this; - } - - public PacketCustom writeByte(int b) { - super.writeByte(b); - return this; - } - - public PacketCustom writeShort(int s) { - super.writeShort(s); - return this; - } - - public PacketCustom writeInt(int i) { - super.writeInt(i); - return this; - } - - public PacketCustom writeFloat(float f) { - super.writeFloat(f); - return this; - } - - public PacketCustom writeDouble(double d) { - super.writeDouble(d); - return this; - } - - public PacketCustom writeLong(long l) { - super.writeLong(l); - return this; - } - - @Override - public PacketCustom writeChar(char c) { - super.writeChar(c); - return this; - } - - public PacketCustom writeVarInt(int i) { - writeVarIntToBuffer(i); - return this; - } - - public PacketCustom writeVarShort(int s) { - MCDataIO.writeVarShort(this, s); - return this; - } - - public PacketCustom writeArray(byte[] barray) { - writeBytes(barray); - return this; - } - - public PacketCustom writeString(String s) { - super.writeString(s); - return this; - } - - public PacketCustom writeCoord(int x, int y, int z) { - writeInt(x); - writeInt(y); - writeInt(z); - return this; - } - - public PacketCustom writeCoord(BlockCoord coord) { - writeInt(coord.x); - writeInt(coord.y); - writeInt(coord.z); - return this; - } - - public PacketCustom writeItemStack(ItemStack stack) { - MCDataIO.writeItemStack(this, stack); - return this; - } - - public PacketCustom writeNBTTagCompound(NBTTagCompound tag) { - writeNBTTagCompoundToBuffer(tag); - return this; - } - - public PacketCustom writeFluidStack(FluidStack fluid) { - MCDataIO.writeFluidStack(this, fluid); - return this; - } - - public short readUByte() { - return readUnsignedByte(); - } - - public int readUShort() { - return readUnsignedShort(); - } - - @Override - public int readVarShort() { - return MCDataIO.readVarShort(this); - } - - @Override - public int readVarInt() { - return readVarIntFromBuffer(); - } - - public BlockCoord readCoord() { - return new BlockCoord(readInt(), readInt(), readInt()); - } - - public byte[] readArray(int length) { - return readBytes(length).array(); - } - - public String readString() { - return readStringFromBuffer(32767); - } - - public ItemStack readItemStack() { - return MCDataIO.readItemStack(this); - } - - public NBTTagCompound readNBTTagCompound() { - try { - return readNBTTagCompoundFromBuffer(); - } catch (IOException e) { - throw new EncoderException(e); - } - } - - public FluidStack readFluidStack() { - return MCDataIO.readFluidStack(this); - } - - public FMLProxyPacket toPacket() { - if (incoming()) { - throw new IllegalStateException("Tried to write an incoming packet"); - } - - if (readableBytes() > 32000 || (type & 0x80) != 0) { - do_compress(); - } - - return new FMLProxyPacket(new PacketBuffer(copy()), channel); - } - - public void sendToPlayer(EntityPlayer player) { - sendToPlayer(toPacket(), player); - } - - public static void sendToPlayer(Packet packet, EntityPlayer player) { - if (player == null) { - sendToClients(packet); - } else { - ((EntityPlayerMP) player).playerNetServerHandler.sendPacket(packet); - } - } - - public void sendToClients() { - sendToClients(toPacket()); - } - - public static void sendToClients(Packet packet) { - MinecraftServer.getServer().getConfigurationManager().sendPacketToAllPlayers(packet); - } - - public void sendPacketToAllAround(double x, double y, double z, double range, int dim) { - sendToAllAround(toPacket(), x, y, z, range, dim); - } - - public static void sendToAllAround(Packet packet, double x, double y, double z, double range, int dim) { - MinecraftServer.getServer().getConfigurationManager().sendToAllNear(x, y, z, range, dim, packet); - } - - public void sendToDimension(int dim) { - sendToDimension(toPacket(), dim); - } - - public static void sendToDimension(Packet packet, int dim) { - MinecraftServer.getServer().getConfigurationManager().sendPacketToAllPlayersInDimension(packet, dim); - } - - public void sendToChunk(World world, int chunkX, int chunkZ) { - sendToChunk(toPacket(), world, chunkX, chunkZ); - } - - public static void sendToChunk(Packet packet, World world, int chunkX, int chunkZ) { - PlayerInstance p = ((WorldServer) world).getPlayerManager().getPlayerInstance(chunkX, chunkZ, false); - if (p != null) { - p.sendToAllPlayersWatchingChunk(packet); - } - } - - public void sendToOps() { - sendToOps(toPacket()); - } - - public static void sendToOps(Packet packet) { - for (EntityPlayerMP player : (List) MinecraftServer.getServer().getConfigurationManager().playerEntityList) { - if (MinecraftServer.getServer().getConfigurationManager().canSendCommands(player.getGameProfile())) { - sendToPlayer(packet, player); - } - } - } - - @SideOnly(Side.CLIENT) - public void sendToServer() { - sendToServer(toPacket()); - } - - @SideOnly(Side.CLIENT) - public static void sendToServer(Packet packet) { - Minecraft.getMinecraft().getNetHandler().addToSendQueue(packet); - } -} diff --git a/dependencies/main/java/codechicken/lib/raytracer/ExtendedMOP.java b/dependencies/main/java/codechicken/lib/raytracer/ExtendedMOP.java deleted file mode 100644 index 786cd368e3..0000000000 --- a/dependencies/main/java/codechicken/lib/raytracer/ExtendedMOP.java +++ /dev/null @@ -1,38 +0,0 @@ -package codechicken.lib.raytracer; - -import codechicken.lib.vec.BlockCoord; -import codechicken.lib.vec.Vector3; -import net.minecraft.entity.Entity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.MovingObjectPosition; - -public class ExtendedMOP extends MovingObjectPosition implements Comparable { - /** - * The square distance from the start of the raytrace. - */ - public double dist; - - public ExtendedMOP(Entity entity, Vector3 hit, Object data, double dist) { - super(entity, hit.vec3()); - setData(data); - this.dist = dist; - } - - public ExtendedMOP(Vector3 hit, int side, BlockCoord pos, Object data, double dist) { - super(hit.vec3(), EnumFacing.values()[side], pos.pos()); - setData(data); - this.dist = dist; - } - - public void setData(Object data) { - if (data instanceof Integer) { - subHit = ((Integer) data).intValue(); - } - hitInfo = data; - } - - @Override - public int compareTo(ExtendedMOP o) { - return dist == o.dist ? 0 : dist < o.dist ? -1 : 1; - } -} diff --git a/dependencies/main/java/codechicken/lib/raytracer/IndexedCuboid6.java b/dependencies/main/java/codechicken/lib/raytracer/IndexedCuboid6.java deleted file mode 100644 index 63e2ed778f..0000000000 --- a/dependencies/main/java/codechicken/lib/raytracer/IndexedCuboid6.java +++ /dev/null @@ -1,12 +0,0 @@ -package codechicken.lib.raytracer; - -import codechicken.lib.vec.Cuboid6; - -public class IndexedCuboid6 extends Cuboid6 { - public Object data; - - public IndexedCuboid6(Object data, Cuboid6 cuboid) { - super(cuboid); - this.data = data; - } -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/lib/raytracer/RayTracer.java b/dependencies/main/java/codechicken/lib/raytracer/RayTracer.java deleted file mode 100644 index 4d73c362ee..0000000000 --- a/dependencies/main/java/codechicken/lib/raytracer/RayTracer.java +++ /dev/null @@ -1,181 +0,0 @@ -package codechicken.lib.raytracer; - -import codechicken.lib.math.MathHelper; -import codechicken.lib.vec.BlockCoord; -import codechicken.lib.vec.Cuboid6; -import codechicken.lib.vec.Vector3; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.util.BlockPos; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.List; - -public class RayTracer { - private Vector3 vec = new Vector3(); - private Vector3 vec2 = new Vector3(); - - private Vector3 s_vec = new Vector3(); - private double s_dist; - private int s_side; - private IndexedCuboid6 c_cuboid; - - private static ThreadLocal t_inst = new ThreadLocal(); - - public static RayTracer instance() { - RayTracer inst = t_inst.get(); - if (inst == null) { - t_inst.set(inst = new RayTracer()); - } - return inst; - } - - private void traceSide(int side, Vector3 start, Vector3 end, Cuboid6 cuboid) { - vec.set(start); - Vector3 hit = null; - switch (side) { - case 0: - hit = vec.XZintercept(end, cuboid.min.y); - break; - case 1: - hit = vec.XZintercept(end, cuboid.max.y); - break; - case 2: - hit = vec.XYintercept(end, cuboid.min.z); - break; - case 3: - hit = vec.XYintercept(end, cuboid.max.z); - break; - case 4: - hit = vec.YZintercept(end, cuboid.min.x); - break; - case 5: - hit = vec.YZintercept(end, cuboid.max.x); - break; - } - if (hit == null) { - return; - } - - switch (side) { - case 0: - case 1: - if (!MathHelper.between(cuboid.min.x, hit.x, cuboid.max.x) || !MathHelper.between(cuboid.min.z, hit.z, cuboid.max.z)) { - return; - } - break; - case 2: - case 3: - if (!MathHelper.between(cuboid.min.x, hit.x, cuboid.max.x) || !MathHelper.between(cuboid.min.y, hit.y, cuboid.max.y)) { - return; - } - break; - case 4: - case 5: - if (!MathHelper.between(cuboid.min.y, hit.y, cuboid.max.y) || !MathHelper.between(cuboid.min.z, hit.z, cuboid.max.z)) { - return; - } - break; - } - - double dist = vec2.set(hit).subtract(start).magSquared(); - if (dist < s_dist) { - s_side = side; - s_dist = dist; - s_vec.set(vec); - } - } - - private boolean rayTraceCuboid(Vector3 start, Vector3 end, Cuboid6 cuboid) { - s_dist = Double.MAX_VALUE; - s_side = -1; - - for (int i = 0; i < 6; i++) { - traceSide(i, start, end, cuboid); - } - - return s_side >= 0; - } - - public ExtendedMOP rayTraceCuboid(Vector3 start, Vector3 end, Cuboid6 cuboid, BlockCoord pos, Object data) { - return rayTraceCuboid(start, end, cuboid) ? new ExtendedMOP(s_vec, s_side, pos, data, s_dist) : null; - } - - public ExtendedMOP rayTraceCuboid(Vector3 start, Vector3 end, Cuboid6 cuboid, Entity entity, Object data) { - return rayTraceCuboid(start, end, cuboid) ? new ExtendedMOP(entity, s_vec, data, s_dist) : null; - } - - public void rayTraceCuboids(Vector3 start, Vector3 end, List cuboids, BlockCoord pos, Block block, List hitList) { - for (IndexedCuboid6 cuboid : cuboids) { - ExtendedMOP mop = rayTraceCuboid(start, end, cuboid, pos, cuboid.data); - if (mop != null) { - hitList.add(mop); - } - } - } - - public static MovingObjectPosition retraceBlock(World world, EntityPlayer player, BlockPos pos) { - IBlockState b = world.getBlockState(pos); - Vec3 headVec = getCorrectedHeadVec(player); - Vec3 lookVec = player.getLook(1.0F); - double reach = getBlockReachDistance(player); - Vec3 endVec = headVec.addVector(lookVec.xCoord * reach, lookVec.yCoord * reach, lookVec.zCoord * reach); - return b.getBlock().collisionRayTrace(world, pos, headVec, endVec); - } - - private static double getBlockReachDistance_server(EntityPlayerMP player) { - return player.theItemInWorldManager.getBlockReachDistance(); - } - - @SideOnly(Side.CLIENT) - private static double getBlockReachDistance_client() { - return Minecraft.getMinecraft().playerController.getBlockReachDistance(); - } - - public static MovingObjectPosition retrace(EntityPlayer player) { - return retrace(player, getBlockReachDistance(player)); - } - - public static MovingObjectPosition retrace(EntityPlayer player, double reach) { - Vec3 headVec = getCorrectedHeadVec(player); - Vec3 lookVec = player.getLook(1); - Vec3 endVec = headVec.addVector(lookVec.xCoord * reach, lookVec.yCoord * reach, lookVec.zCoord * reach); - return player.worldObj.rayTraceBlocks(headVec, endVec, true, false, true); - } - - public static Vec3 getCorrectedHeadVec(EntityPlayer player) { - Vector3 v = Vector3.fromEntity(player); - if (player.worldObj.isRemote) { - v.y += player.getEyeHeight() - player.getDefaultEyeHeight();//compatibility with eye height changing mods - } else { - v.y += player.getEyeHeight(); - if (player instanceof EntityPlayerMP && player.isSneaking()) { - v.y -= 0.08; - } - } - return v.vec3(); - } - - public static Vec3 getStartVec(EntityPlayer player) { - return getCorrectedHeadVec(player); - } - - public static double getBlockReachDistance(EntityPlayer player) { - return player.worldObj.isRemote ? getBlockReachDistance_client() : player instanceof EntityPlayerMP ? getBlockReachDistance_server((EntityPlayerMP) player) : 5D; - } - - public static Vec3 getEndVec(EntityPlayer player) { - Vec3 headVec = getCorrectedHeadVec(player); - Vec3 lookVec = player.getLook(1.0F); - double reach = getBlockReachDistance(player); - return headVec.addVector(lookVec.xCoord * reach, lookVec.yCoord * reach, lookVec.zCoord * reach); - } -} diff --git a/dependencies/main/java/codechicken/lib/render/BlockRenderer.java b/dependencies/main/java/codechicken/lib/render/BlockRenderer.java deleted file mode 100644 index d9a28d8e32..0000000000 --- a/dependencies/main/java/codechicken/lib/render/BlockRenderer.java +++ /dev/null @@ -1,205 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.lighting.LC; -import codechicken.lib.render.CCRenderState.VertexAttribute; -import codechicken.lib.vec.Cuboid6; -import net.minecraft.client.renderer.block.model.ItemCameraTransforms; -import net.minecraft.client.renderer.block.model.ItemTransformVec3f; -import org.lwjgl.util.vector.Vector3f; - -public class BlockRenderer { - public static class BlockFace implements CCRenderState.IVertexSource { - public Vertex5[] verts = new Vertex5[] { new Vertex5(), new Vertex5(), new Vertex5(), new Vertex5() }; - public LC[] lightCoords = new LC[] { new LC(), new LC(), new LC(), new LC() }; - public boolean lcComputed = false; - public int side; - - @Override - public Vertex5[] getVertices() { - return verts; - } - - @Override - public T getAttributes(CCRenderState.VertexAttribute attr) { - return attr == CCRenderState.lightCoordAttrib && lcComputed ? (T) lightCoords : null; - } - - @Override - public boolean hasAttribute(CCRenderState.VertexAttribute attr) { - return attr == CCRenderState.sideAttrib || attr == CCRenderState.lightCoordAttrib && lcComputed; - } - - @Override - public void prepareVertex() { - CCRenderState.side = side; - } - - public BlockFace computeLightCoords() { - if (!lcComputed) { - for (int i = 0; i < 4; i++) { - lightCoords[i].compute(verts[i].vec, side); - } - lcComputed = true; - } - return this; - } - - public BlockFace loadCuboidFace(Cuboid6 c, int side) { - double x1 = c.min.x; - double x2 = c.max.x; - double y1 = c.min.y; - double y2 = c.max.y; - double z1 = c.min.z; - double z2 = c.max.z; - double u1; - double u2; - double v1; - double v2; - this.side = side; - lcComputed = false; - - switch (side) { - case 0: - u1 = x1; - v1 = z1; - u2 = x2; - v2 = z2; - verts[0].set(x1, y1, z2, u1, v2, 0); - verts[1].set(x1, y1, z1, u1, v1, 0); - verts[2].set(x2, y1, z1, u2, v1, 0); - verts[3].set(x2, y1, z2, u2, v2, 0); - break; - case 1: - u1 = x1; - v1 = z1; - u2 = x2; - v2 = z2; - verts[0].set(x2, y2, z2, u2, v2, 1); - verts[1].set(x2, y2, z1, u2, v1, 1); - verts[2].set(x1, y2, z1, u1, v1, 1); - verts[3].set(x1, y2, z2, u1, v2, 1); - break; - case 2: - u1 = 1 - x1; - v1 = 1 - y2; - u2 = 1 - x2; - v2 = 1 - y1; - verts[0].set(x1, y1, z1, u1, v2, 2); - verts[1].set(x1, y2, z1, u1, v1, 2); - verts[2].set(x2, y2, z1, u2, v1, 2); - verts[3].set(x2, y1, z1, u2, v2, 2); - break; - case 3: - u1 = x1; - v1 = 1 - y2; - u2 = x2; - v2 = 1 - y1; - verts[0].set(x2, y1, z2, u2, v2, 3); - verts[1].set(x2, y2, z2, u2, v1, 3); - verts[2].set(x1, y2, z2, u1, v1, 3); - verts[3].set(x1, y1, z2, u1, v2, 3); - break; - case 4: - u1 = z1; - v1 = 1 - y2; - u2 = z2; - v2 = 1 - y1; - verts[0].set(x1, y1, z2, u2, v2, 4); - verts[1].set(x1, y2, z2, u2, v1, 4); - verts[2].set(x1, y2, z1, u1, v1, 4); - verts[3].set(x1, y1, z1, u1, v2, 4); - break; - case 5: - u1 = 1 - z1; - v1 = 1 - y2; - u2 = 1 - z2; - v2 = 1 - y1; - verts[0].set(x2, y1, z1, u1, v2, 5); - verts[1].set(x2, y2, z1, u1, v1, 5); - verts[2].set(x2, y2, z2, u2, v1, 5); - verts[3].set(x2, y1, z2, u2, v2, 5); - } - return this; - } - } - - public static class FullBlock implements CCRenderState.IVertexSource { - public Vertex5[] verts = CCModel.quadModel(24).generateBlock(0, Cuboid6.full).verts; - public LC[] lightCoords = new LC[24]; - - public FullBlock() { - for (int i = 0; i < 24; i++) { - lightCoords[i] = new LC().compute(verts[i].vec, i / 4); - } - } - - @Override - public Vertex5[] getVertices() { - return verts; - } - - @Override - public T getAttributes(VertexAttribute attr) { - return attr == CCRenderState.lightCoordAttrib ? (T) lightCoords : null; - } - - @Override - public boolean hasAttribute(VertexAttribute attr) { - return attr == CCRenderState.sideAttrib || attr == CCRenderState.lightCoordAttrib; - } - - @Override - public void prepareVertex() { - CCRenderState.side = CCRenderState.vertexIndex >> 2; - } - } - - public static ItemTransformVec3f thirdPersonTransform = new ItemTransformVec3f(new Vector3f(10, -45, 170), new Vector3f(0, 1.5F / 16F, -2.75F / 16F), new Vector3f(0.375F, 0.375F, 0.375F)); - public static ItemCameraTransforms blockCameraTransform = new ItemCameraTransforms(thirdPersonTransform, ItemTransformVec3f.DEFAULT, ItemTransformVec3f.DEFAULT, ItemTransformVec3f.DEFAULT, ItemTransformVec3f.DEFAULT, ItemTransformVec3f.DEFAULT); - - public static FullBlock fullBlock = new FullBlock(); - - public static void renderFullBlock(int sideMask) { - CCRenderState.setModel(fullBlock); - renderFaces(sideMask); - } - - /** - * Renders faces of a block-like model based on a sideMask. Eg for side 2, verts 8-11 will be rendered - * - * @param sideMask A mask of faces not to render - */ - public static void renderFaces(int sideMask) { - if (sideMask == 0x3F) { - return; - } - for (int s = 0; s < 6; s++) { - if ((sideMask & 1 << s) == 0) { - CCRenderState.setVertexRange(s * 4, (s + 1) * 4); - CCRenderState.render(); - } - } - } - - private static BlockFace face = new BlockFace(); - - /** - * Renders faces of a cuboid with texture coordinates mapped to match a standard minecraft block - * - * @param bounds The bounding cuboid to render - * @param sideMask A mask of faces not to render - */ - public static void renderCuboid(Cuboid6 bounds, int sideMask) { - if (sideMask == 0x3F) { - return; - } - - CCRenderState.setModel(face); - for (int s = 0; s < 6; s++) { - if ((sideMask & 1 << s) == 0) { - face.loadCuboidFace(bounds, s); - CCRenderState.render(); - } - } - } -} diff --git a/dependencies/main/java/codechicken/lib/render/CCModel.java b/dependencies/main/java/codechicken/lib/render/CCModel.java deleted file mode 100644 index bd9445e561..0000000000 --- a/dependencies/main/java/codechicken/lib/render/CCModel.java +++ /dev/null @@ -1,1066 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.lighting.LC; -import codechicken.lib.lighting.LightModel; -import codechicken.lib.render.uv.UV; -import codechicken.lib.render.uv.UVTransformation; -import codechicken.lib.render.uv.UVTranslation; -import codechicken.lib.util.Copyable; -import codechicken.lib.vec.*; -import net.minecraft.client.Minecraft; -import net.minecraft.util.ResourceLocation; - -import java.io.*; -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import static codechicken.lib.vec.Rotation.sideRotations; - -public class CCModel implements CCRenderState.IVertexSource, Copyable { - private static class PositionNormalEntry { - public Vector3 pos; - public LinkedList normals = new LinkedList(); - - public PositionNormalEntry(Vector3 position) { - pos = position; - } - - public boolean positionEqual(Vector3 v) { - return pos.x == v.x && pos.y == v.y && pos.z == v.z; - } - - public PositionNormalEntry addNormal(Vector3 normal) { - normals.add(normal); - return this; - } - } - - public final int vertexMode; - public final int vp; - public Vertex5[] verts; - public ArrayList attributes = new ArrayList(); - - protected CCModel(int vertexMode) { - if (vertexMode != 7 && vertexMode != 4) { - throw new IllegalArgumentException("Models must be GL_QUADS or GL_TRIANGLES"); - } - - this.vertexMode = vertexMode; - vp = vertexMode == 7 ? 4 : 3; - } - - public Vector3[] normals() { - return getAttributes(CCRenderState.normalAttrib); - } - - @Override - public Vertex5[] getVertices() { - return verts; - } - - @Override - public T getAttributes(CCRenderState.VertexAttribute attr) { - if (attr.attributeIndex < attributes.size()) { - return (T) attributes.get(attr.attributeIndex); - } - - return null; - } - - @Override - public boolean hasAttribute(CCRenderState.VertexAttribute attrib) { - return attrib.attributeIndex < attributes.size() && attributes.get(attrib.attributeIndex) != null; - } - - @Override - public void prepareVertex() { - } - - public T getOrAllocate(CCRenderState.VertexAttribute attrib) { - T array = getAttributes(attrib); - if (array == null) { - while (attributes.size() <= attrib.attributeIndex) { - attributes.add(null); - } - attributes.set(attrib.attributeIndex, array = attrib.newArray(verts.length)); - } - return array; - } - - /** - * Each pixel corresponds to one unit of position when generating the model - * - * @param i Vertex index to start generating at - * @param x1 The minX bound of the box - * @param y1 The minY bound of the box - * @param z1 The minZ bound of the box - * @param w The width of the box - * @param h The height of the box - * @param d The depth of the box - * @param tx The distance of the top left corner of the texture map from the left in pixels - * @param ty The distance of the top left corner of the texture map from the top in pixels - * @param tw The width of the texture in pixels - * @param th The height of the texture in pixels - * @param f The scale of the model, pixels per block, normally 16 - * @return The generated model - */ - public CCModel generateBox(int i, double x1, double y1, double z1, double w, double h, double d, double tx, double ty, double tw, double th, double f) { - double u1, v1, u2, v2; - double x2 = x1 + w; - double y2 = y1 + h; - double z2 = z1 + d; - x1 /= f; - x2 /= f; - y1 /= f; - y2 /= f; - z1 /= f; - z2 /= f; - - //bottom face - u1 = (tx + d + w) / tw; - v1 = (ty + d) / th; - u2 = (tx + d * 2 + w) / tw; - v2 = ty / th; - verts[i++] = new Vertex5(x1, y1, z2, u1, v2); - verts[i++] = new Vertex5(x1, y1, z1, u1, v1); - verts[i++] = new Vertex5(x2, y1, z1, u2, v1); - verts[i++] = new Vertex5(x2, y1, z2, u2, v2); - - //top face - u1 = (tx + d) / tw; - v1 = (ty + d) / th; - u2 = (tx + d + w) / tw; - v2 = ty / th; - verts[i++] = new Vertex5(x2, y2, z2, u2, v2); - verts[i++] = new Vertex5(x2, y2, z1, u2, v1); - verts[i++] = new Vertex5(x1, y2, z1, u1, v1); - verts[i++] = new Vertex5(x1, y2, z2, u1, v2); - - //front face - u1 = (tx + d + w) / tw; - v1 = (ty + d) / th; - u2 = (tx + d) / tw; - v2 = (ty + d + h) / th; - verts[i++] = new Vertex5(x1, y2, z1, u2, v1); - verts[i++] = new Vertex5(x2, y2, z1, u1, v1); - verts[i++] = new Vertex5(x2, y1, z1, u1, v2); - verts[i++] = new Vertex5(x1, y1, z1, u2, v2); - - //back face - u1 = (tx + d * 2 + w * 2) / tw; - v1 = (ty + d) / th; - u2 = (tx + d * 2 + w) / tw; - v2 = (ty + d + h) / th; - verts[i++] = new Vertex5(x1, y2, z2, u1, v1); - verts[i++] = new Vertex5(x1, y1, z2, u1, v2); - verts[i++] = new Vertex5(x2, y1, z2, u2, v2); - verts[i++] = new Vertex5(x2, y2, z2, u2, v1); - - //left face - u1 = (tx + d) / tw; - v1 = (ty + d) / th; - u2 = (tx) / tw; - v2 = (ty + d + h) / th; - verts[i++] = new Vertex5(x1, y2, z2, u2, v1); - verts[i++] = new Vertex5(x1, y2, z1, u1, v1); - verts[i++] = new Vertex5(x1, y1, z1, u1, v2); - verts[i++] = new Vertex5(x1, y1, z2, u2, v2); - - //right face - u1 = (tx + d * 2 + w) / tw; - v1 = (ty + d) / th; - u2 = (tx + d + w) / tw; - v2 = (ty + d + h) / th; - verts[i++] = new Vertex5(x2, y1, z2, u1, v2); - verts[i++] = new Vertex5(x2, y1, z1, u2, v2); - verts[i++] = new Vertex5(x2, y2, z1, u2, v1); - verts[i++] = new Vertex5(x2, y2, z2, u1, v1); - - return this; - } - - /** - * Generates a box, uv mapped to be the same as a minecraft block with the same bounds - * - * @param i The vertex index to start generating at - * @param bounds The bounds of the block, 0 to 1 - * @return The generated model. When rendering an icon will need to be supplied for the UV transformation. - */ - public CCModel generateBlock(int i, Cuboid6 bounds) { - return generateBlock(i, bounds, 0); - } - - public CCModel generateBlock(int i, Cuboid6 bounds, int mask) { - return generateBlock(i, bounds.min.x, bounds.min.y, bounds.min.z, bounds.max.x, bounds.max.y, bounds.max.z, mask); - } - - public CCModel generateBlock(int i, double x1, double y1, double z1, double x2, double y2, double z2) { - return generateBlock(i, x1, y1, z1, x2, y2, z2, 0); - } - - /** - * Generates a box, uv mapped to be the same as a minecraft block with the same bounds - * - * @param i The vertex index to start generating at - * @param x1 minX - * @param y1 minY - * @param z1 minZ - * @param x2 maxX - * @param y2 maxY - * @param z2 maxZ - * @param mask A bitmask of sides NOT to generate. I high bit at index s means side s will not be generated - * @return The generated model. When rendering an icon will need to be supplied for the UV transformation. - */ - public CCModel generateBlock(int i, double x1, double y1, double z1, double x2, double y2, double z2, int mask) { - double u1, v1, u2, v2; - - if ((mask & 1) == 0) {//bottom face - u1 = x1; - v1 = z1; - u2 = x2; - v2 = z2; - verts[i++] = new Vertex5(x1, y1, z2, u1, v2, 0); - verts[i++] = new Vertex5(x1, y1, z1, u1, v1, 0); - verts[i++] = new Vertex5(x2, y1, z1, u2, v1, 0); - verts[i++] = new Vertex5(x2, y1, z2, u2, v2, 0); - } - - if ((mask & 2) == 0) {//top face - u1 = x1; - v1 = z1; - u2 = x2; - v2 = z2; - verts[i++] = new Vertex5(x2, y2, z2, u2, v2, 1); - verts[i++] = new Vertex5(x2, y2, z1, u2, v1, 1); - verts[i++] = new Vertex5(x1, y2, z1, u1, v1, 1); - verts[i++] = new Vertex5(x1, y2, z2, u1, v2, 1); - } - - if ((mask & 4) == 0) {//east face - u1 = 1 - x1; - v1 = 1 - y2; - u2 = 1 - x2; - v2 = 1 - y1; - verts[i++] = new Vertex5(x1, y1, z1, u1, v2, 2); - verts[i++] = new Vertex5(x1, y2, z1, u1, v1, 2); - verts[i++] = new Vertex5(x2, y2, z1, u2, v1, 2); - verts[i++] = new Vertex5(x2, y1, z1, u2, v2, 2); - } - - if ((mask & 8) == 0) {//west face - u1 = x1; - v1 = 1 - y2; - u2 = x2; - v2 = 1 - y1; - verts[i++] = new Vertex5(x2, y1, z2, u2, v2, 3); - verts[i++] = new Vertex5(x2, y2, z2, u2, v1, 3); - verts[i++] = new Vertex5(x1, y2, z2, u1, v1, 3); - verts[i++] = new Vertex5(x1, y1, z2, u1, v2, 3); - } - - if ((mask & 0x10) == 0) {//north face - u1 = z1; - v1 = 1 - y2; - u2 = z2; - v2 = 1 - y1; - verts[i++] = new Vertex5(x1, y1, z2, u2, v2, 4); - verts[i++] = new Vertex5(x1, y2, z2, u2, v1, 4); - verts[i++] = new Vertex5(x1, y2, z1, u1, v1, 4); - verts[i++] = new Vertex5(x1, y1, z1, u1, v2, 4); - } - - if ((mask & 0x20) == 0) {//south face - u1 = 1 - z1; - v1 = 1 - y2; - u2 = 1 - z2; - v2 = 1 - y1; - verts[i++] = new Vertex5(x2, y1, z1, u1, v2, 5); - verts[i++] = new Vertex5(x2, y2, z1, u1, v1, 5); - verts[i++] = new Vertex5(x2, y2, z2, u2, v1, 5); - verts[i++] = new Vertex5(x2, y1, z2, u2, v2, 5); - } - - return this; - } - - public CCModel computeNormals() { - return computeNormals(0, verts.length); - } - - /** - * Computes the normals of all faces in the model. - * Uses the cross product of the vectors along 2 sides of the face - * - * @param start The first vertex to generate normals for - * @param length The number of vertices to generate normals for. Note this must be a multiple of 3 for triangles or 4 for quads - * @return The model - */ - public CCModel computeNormals(int start, int length) { - if (length % vp != 0 || start % vp != 0) { - throw new IllegalArgumentException("Cannot generate normals across polygons"); - } - - Vector3[] normals = getOrAllocate(CCRenderState.normalAttrib); - for (int k = 0; k < length; k += vp) { - int i = k + start; - Vector3 diff1 = verts[i + 1].vec.copy().subtract(verts[i].vec); - Vector3 diff2 = verts[i + vp - 1].vec.copy().subtract(verts[i].vec); - normals[i] = diff1.crossProduct(diff2).normalize(); - for (int d = 1; d < vp; d++) { - normals[i + d] = normals[i].copy(); - } - } - - return this; - } - - /** - * Computes lighting using the normals add a light model - * If the model is rotated, the lighting will no longer be valid - * - * @return The model - */ - public CCModel computeLighting(LightModel light) { - Vector3[] normals = normals(); - int[] colours = getAttributes(CCRenderState.lightingAttrib); - if (colours == null) { - colours = getOrAllocate(CCRenderState.lightingAttrib); - Arrays.fill(colours, -1); - } - for (int k = 0; k < verts.length; k++) { - colours[k] = light.apply(colours[k], normals[k]); - } - return this; - } - - public CCModel setColour(int c) { - int[] colours = getOrAllocate(CCRenderState.colourAttrib); - Arrays.fill(colours, c); - return this; - } - - /** - * Computes the minecraft lighting coordinates for use with a LightMatrix - * - * @return The model - */ - public CCModel computeLightCoords() { - LC[] lcs = getOrAllocate(CCRenderState.lightCoordAttrib); - Vector3[] normals = normals(); - for (int i = 0; i < verts.length; i++) { - lcs[i] = new LC().compute(verts[i].vec, normals[i]); - } - return this; - } - - /** - * Averages all normals at the same position to produce a smooth lighting effect. - * - * @return The model - */ - public CCModel smoothNormals() { - ArrayList map = new ArrayList(); - Vector3[] normals = normals(); - nextvert: - for (int k = 0; k < verts.length; k++) { - Vector3 vec = verts[k].vec; - for (PositionNormalEntry e : map) { - if (e.positionEqual(vec)) { - e.addNormal(normals[k]); - continue nextvert; - } - } - - map.add(new PositionNormalEntry(vec).addNormal(normals[k])); - } - - for (PositionNormalEntry e : map) { - if (e.normals.size() <= 1) { - continue; - } - - Vector3 new_n = new Vector3(); - for (Vector3 n : e.normals) { - new_n.add(n); - } - - new_n.normalize(); - for (Vector3 n : e.normals) { - n.set(new_n); - } - } - - return this; - } - - public CCModel apply(Transformation t) { - for (int k = 0; k < verts.length; k++) { - verts[k].apply(t); - } - - Vector3[] normals = normals(); - if (normals != null) { - for (int k = 0; k < normals.length; k++) { - t.applyN(normals[k]); - } - } - - return this; - } - - public CCModel apply(UVTransformation uvt) { - for (int k = 0; k < verts.length; k++) { - verts[k].apply(uvt); - } - - return this; - } - - public CCModel expand(int extraVerts) { - int newLen = verts.length + extraVerts; - verts = Arrays.copyOf(verts, newLen); - for (int i = 0; i < attributes.size(); i++) { - if (attributes.get(i) != null) { - attributes.set(i, CCRenderState.copyOf((CCRenderState.VertexAttribute) CCRenderState.getAttribute(i), attributes.get(i), newLen)); - } - } - - return this; - } - - public void render(double x, double y, double z, double u, double v) { - render(new Vector3(x, y, z).translation(), new UVTranslation(u, v)); - } - - public void render(double x, double y, double z, UVTransformation u) { - render(new Vector3(x, y, z).translation(), u); - } - - public void render(Transformation t, double u, double v) { - render(t, new UVTranslation(u, v)); - } - - public void render(CCRenderState.IVertexOperation... ops) { - render(0, verts.length, ops); - } - - /** - * Renders vertices start through start+length-1 of the model - * - * @param start The first vertex index to render - * @param end The vertex index to render until - * @param ops Operations to apply - */ - public void render(int start, int end, CCRenderState.IVertexOperation... ops) { - CCRenderState.setPipeline(this, start, end, ops); - CCRenderState.render(); - } - - public static CCModel quadModel(int numVerts) { - return newModel(7, numVerts); - } - - public static CCModel triModel(int numVerts) { - return newModel(4, numVerts); - } - - public static CCModel newModel(int vertexMode, int numVerts) { - CCModel model = newModel(vertexMode); - model.verts = new Vertex5[numVerts]; - return model; - } - - public static CCModel newModel(int vertexMode) { - return new CCModel(vertexMode); - } - - public static double[] parseDoubles(String s, String token) { - String[] as = s.split(token); - double[] values = new double[as.length]; - for (int i = 0; i < as.length; i++) { - values[i] = Double.parseDouble(as[i]); - } - return values; - } - - public static void illegalAssert(boolean b, String err) { - if (!b) { - throw new IllegalArgumentException(err); - } - } - - public static void assertMatch(Matcher m, String s) { - m.reset(s); - illegalAssert(m.matches(), "Malformed line: " + s); - } - - private static final Pattern vertPattern = Pattern.compile("v(?: ([\\d\\.+-]+))+"); - private static final Pattern uvwPattern = Pattern.compile("vt(?: ([\\d\\.+-]+))+"); - private static final Pattern normalPattern = Pattern.compile("vn(?: ([\\d\\.+-]+))+"); - private static final Pattern polyPattern = Pattern.compile("f(?: ((?:\\d*)(?:/\\d*)?(?:/\\d*)?))+"); - public static final Matcher vertMatcher = vertPattern.matcher(""); - public static final Matcher uvwMatcher = uvwPattern.matcher(""); - public static final Matcher normalMatcher = normalPattern.matcher(""); - public static final Matcher polyMatcher = polyPattern.matcher(""); - - /** - * Parses vertices, texture coords, normals and polygons from a WaveFront Obj file - * - * @param input An input stream to a obj file - * @param vertexMode The vertex mode to create the model for (GL_TRIANGLES or GL_QUADS) - * @param coordSystem The cooridnate system transformation to apply - * @return A map of group names to models - * @throws IOException - */ - public static Map parseObjModels(InputStream input, int vertexMode, Transformation coordSystem) throws IOException { - if (coordSystem == null) { - coordSystem = new RedundantTransformation(); - } - int vp = vertexMode == 7 ? 4 : 3; - - HashMap modelMap = new HashMap(); - ArrayList verts = new ArrayList(); - ArrayList uvs = new ArrayList(); - ArrayList normals = new ArrayList(); - ArrayList polys = new ArrayList(); - String modelName = "unnamed"; - - BufferedReader reader = new BufferedReader(new InputStreamReader(input)); - - String line; - while ((line = reader.readLine()) != null) { - line = line.replaceAll("\\s+", " ").trim(); - if (line.startsWith("#") || line.length() == 0) { - continue; - } - - if (line.startsWith("v ")) { - assertMatch(vertMatcher, line); - double[] values = parseDoubles(line.substring(2), " "); - illegalAssert(values.length >= 3, "Vertices must have x, y and z components"); - Vector3 vert = new Vector3(values[0], values[1], values[2]); - coordSystem.apply(vert); - verts.add(vert); - continue; - } - if (line.startsWith("vt ")) { - assertMatch(uvwMatcher, line); - double[] values = parseDoubles(line.substring(3), " "); - illegalAssert(values.length >= 2, "Tex Coords must have u, and v components"); - uvs.add(new Vector3(values[0], 1 - values[1], 0)); - continue; - } - if (line.startsWith("vn ")) { - assertMatch(normalMatcher, line); - double[] values = parseDoubles(line.substring(3), " "); - illegalAssert(values.length >= 3, "Normals must have x, y and z components"); - Vector3 norm = new Vector3(values[0], values[1], values[2]).normalize(); - coordSystem.applyN(norm); - normals.add(norm); - continue; - } - if (line.startsWith("f ")) { - assertMatch(polyMatcher, line); - String[] av = line.substring(2).split(" "); - illegalAssert(av.length >= 3, "Polygons must have at least 3 vertices"); - int[][] polyVerts = new int[av.length][3]; - for (int i = 0; i < av.length; i++) { - String[] as = av[i].split("/"); - for (int p = 0; p < as.length; p++) { - if (as[p].length() > 0) { - polyVerts[i][p] = Integer.parseInt(as[p]); - } - } - } - if (vp == 3) { - triangulate(polys, polyVerts); - } else { - quadulate(polys, polyVerts); - } - } - if (line.startsWith("g ")) { - if (!polys.isEmpty()) { - modelMap.put(modelName, createModel(verts, uvs, normals, vertexMode, polys)); - polys.clear(); - } - modelName = line.substring(2); - } - } - - if (!polys.isEmpty()) { - modelMap.put(modelName, createModel(verts, uvs, normals, vertexMode, polys)); - } - - return modelMap; - } - - public static void triangulate(List polys, int[][] polyVerts) { - for (int i = 2; i < polyVerts.length; i++) { - polys.add(polyVerts[0]); - polys.add(polyVerts[i]); - polys.add(polyVerts[i - 1]); - } - } - - public static void quadulate(List polys, int[][] polyVerts) { - if (polyVerts.length == 4) { - polys.add(polyVerts[0]); - polys.add(polyVerts[3]); - polys.add(polyVerts[2]); - polys.add(polyVerts[1]); - } else { - for (int i = 2; i < polyVerts.length; i++) { - polys.add(polyVerts[0]); - polys.add(polyVerts[i]); - polys.add(polyVerts[i - 1]); - polys.add(polyVerts[i - 1]); - } - } - } - - /** - * Parses vertices, texture coords, normals and polygons from a WaveFront Obj file - * - * @param res The resource for the obj file - * @return A map of group names to models - */ - public static Map parseObjModels(ResourceLocation res) { - return parseObjModels(res, 4, null); - } - - /** - * Parses vertices, texture coords, normals and polygons from a WaveFront Obj file - * - * @param res The resource for the obj file - * @param coordSystem The cooridnate system transformation to apply - * @return A map of group names to models - */ - public static Map parseObjModels(ResourceLocation res, Transformation coordSystem) { - try { - return parseObjModels(Minecraft.getMinecraft().getResourceManager().getResource(res).getInputStream(), 4, coordSystem); - } catch (IOException e) { - throw new RuntimeException("failed to load model: " + res, e); - } - } - - /** - * Parses vertices, texture coords, normals and polygons from a WaveFront Obj file - * - * @param res The resource for the obj file - * @param vertexMode The vertex mode to create the model for (GL_TRIANGLES or GL_QUADS) - * @param coordSystem The cooridnate system transformation to apply - * @return A map of group names to models - */ - public static Map parseObjModels(ResourceLocation res, int vertexMode, Transformation coordSystem) { - try { - return parseObjModels(Minecraft.getMinecraft().getResourceManager().getResource(res).getInputStream(), vertexMode, coordSystem); - } catch (Exception e) { - throw new RuntimeException("failed to load model: " + res, e); - } - } - - public static CCModel createModel(List verts, List uvs, List normals, int vertexMode, List polys) { - int vp = vertexMode == 7 ? 4 : 3; - if (polys.size() < vp || polys.size() % vp != 0) { - throw new IllegalArgumentException("Invalid number of vertices for model: " + polys.size()); - } - - boolean hasNormals = polys.get(0)[2] > 0; - CCModel model = CCModel.newModel(vertexMode, polys.size()); - if (hasNormals) { - model.getOrAllocate(CCRenderState.normalAttrib); - } - - for (int i = 0; i < polys.size(); i++) { - int[] ai = polys.get(i); - Vector3 vert = verts.get(ai[0] - 1).copy(); - Vector3 uv = ai[1] <= 0 ? new Vector3() : uvs.get(ai[1] - 1).copy(); - if (ai[2] > 0 != hasNormals) { - throw new IllegalArgumentException("Normals are an all or nothing deal here."); - } - - model.verts[i] = new Vertex5(vert, uv.x, uv.y); - if (hasNormals) { - model.normals()[i] = normals.get(ai[2] - 1).copy(); - } - } - - return model; - } - - private static int addIndex(List list, T elem) { - int i = list.indexOf(elem) + 1; - if (i == 0) { - list.add(elem); - i = list.size(); - } - return i; - } - - private static String clean(double d) { - return d == (int) d ? Integer.toString((int) d) : Double.toString(d); - } - - public static void exportObj(Map models, PrintWriter p) { - List verts = new ArrayList(); - List uvs = new ArrayList(); - List normals = new ArrayList(); - List polys = new ArrayList(); - for (Map.Entry e : models.entrySet()) { - p.println("g " + e.getKey()); - CCModel m = e.getValue(); - - int vStart = verts.size(); - int uStart = uvs.size(); - int nStart = normals.size(); - boolean hasNormals = m.normals() != null; - polys.clear(); - - for (int i = 0; i < m.verts.length; i++) { - int[] ia = new int[hasNormals ? 3 : 2]; - ia[0] = addIndex(verts, m.verts[i].vec); - ia[1] = addIndex(uvs, m.verts[i].uv); - if (hasNormals) { - ia[2] = addIndex(normals, m.normals()[i]); - } - polys.add(ia); - } - - if (vStart < verts.size()) { - p.println(); - for (int i = vStart; i < verts.size(); i++) { - Vector3 v = verts.get(i); - p.format("v %s %s %s\n", clean(v.x), clean(v.y), clean(v.z)); - } - } - if (uStart < uvs.size()) { - p.println(); - for (int i = uStart; i < uvs.size(); i++) { - UV uv = uvs.get(i); - p.format("vt %s %s\n", clean(uv.u), clean(uv.v)); - } - } - if (nStart < normals.size()) { - p.println(); - for (int i = nStart; i < normals.size(); i++) { - Vector3 n = normals.get(i); - p.format("vn %s %s %s\n", clean(n.x), clean(n.y), clean(n.z)); - } - } - - p.println(); - for (int i = 0; i < polys.size(); i++) { - if (i % m.vp == 0) { - p.format("f"); - } - int[] ia = polys.get(i); - if (hasNormals) { - p.format(" %d/%d/%d", ia[0], ia[1], ia[2]); - } else { - p.format(" %d/%d", ia[0], ia[1]); - } - if (i % m.vp == m.vp - 1) { - p.println(); - } - } - } - } - - /** - * Brings the UV coordinates of each face closer to the center UV by d. - * Useful for fixing texture seams - */ - public CCModel shrinkUVs(double d) { - for (int k = 0; k < verts.length; k += vp) { - UV uv = new UV(); - for (int i = 0; i < vp; i++) { - uv.add(verts[k + i].uv); - } - uv.multiply(1D / vp); - for (int i = 0; i < vp; i++) { - Vertex5 vert = verts[k + i]; - vert.uv.u += vert.uv.u < uv.u ? d : -d; - vert.uv.v += vert.uv.v < uv.v ? d : -d; - } - } - return this; - } - - /** - * @param side1 The side of this model - * @param side2 The side of the new model - * @param point The point to rotate around - * @return A copy of this model rotated to the appropriate side - */ - public CCModel sidedCopy(int side1, int side2, Vector3 point) { - return copy().apply(new TransformationList(sideRotations[side1].inverse(), sideRotations[side2]).at(point)); - } - - /** - * Copies length vertices and normals - */ - public static void copy(CCModel src, int srcpos, CCModel dst, int destpos, int length) { - for (int k = 0; k < length; k++) { - dst.verts[destpos + k] = src.verts[srcpos + k].copy(); - } - - for (int i = 0; i < src.attributes.size(); i++) { - if (src.attributes.get(i) != null) { - CCRenderState.arrayCopy(src.attributes.get(i), srcpos, dst.getOrAllocate(CCRenderState.getAttribute(i)), destpos, length); - } - } - } - - /** - * Generate models rotated to the other 5 sides of the block - * - * @param models An array of 6 models - * @param side The side of this model - * @param point The rotation point - */ - public static void generateSidedModels(CCModel[] models, int side, Vector3 point) { - for (int s = 0; s < 6; s++) { - if (s == side) { - continue; - } - - models[s] = models[side].sidedCopy(side, s, point); - } - } - - /** - * Generate models rotated to the other 3 horizontal of the block - * - * @param models An array of 4 models - * @param side The side of this model - * @param point The rotation point - */ - public static void generateSidedModelsH(CCModel[] models, int side, Vector3 point) { - for (int s = 2; s < 6; s++) { - if (s == side) { - continue; - } - - models[s] = models[side].sidedCopy(side, s, point); - } - } - - public CCModel backfacedCopy() { - return generateBackface(this, 0, copy(), 0, verts.length); - } - - /** - * Generates copies of faces with clockwise vertices - * - * @return The model - */ - public static CCModel generateBackface(CCModel src, int srcpos, CCModel dst, int destpos, int length) { - int vp = src.vp; - if (srcpos % vp != 0 || destpos % vp != 0 || length % vp != 0) { - throw new IllegalArgumentException("Vertices do not align with polygons"); - } - - int[][] o = new int[][] { { 0, 0 }, { 1, vp - 1 }, { 2, vp - 2 }, { 3, vp - 3 } }; - for (int i = 0; i < length; i++) { - int b = (i / vp) * vp; - int d = i % vp; - int di = destpos + b + o[d][1]; - int si = srcpos + b + o[d][0]; - dst.verts[di] = src.verts[si].copy(); - for (int a = 0; a < src.attributes.size(); a++) { - if (src.attributes.get(a) != null) { - CCRenderState.arrayCopy(src.attributes.get(a), si, dst.getOrAllocate(CCRenderState.getAttribute(a)), di, 1); - } - } - - if (dst.normals() != null && dst.normals()[di] != null) { - dst.normals()[di].negate(); - } - } - return dst; - } - - /** - * Generates sided copies of vertices into this model. - * Assumes that your model has been generated at vertex side*(numVerts/6) - */ - public CCModel generateSidedParts(int side, Vector3 point) { - if (verts.length % (6 * vp) != 0) { - throw new IllegalArgumentException("Invalid number of vertices for sided part generation"); - } - int length = verts.length / 6; - - for (int s = 0; s < 6; s++) { - if (s == side) { - continue; - } - - generateSidedPart(side, s, point, length * side, length * s, length); - } - - return this; - } - - /** - * Generates sided copies of vertices into this model. - * Assumes that your model has been generated at vertex side*(numVerts/4) - */ - public CCModel generateSidedPartsH(int side, Vector3 point) { - if (verts.length % (4 * vp) != 0) { - throw new IllegalArgumentException("Invalid number of vertices for sided part generation"); - } - int length = verts.length / 4; - - for (int s = 2; s < 6; s++) { - if (s == side) { - continue; - } - - generateSidedPart(side, s, point, length * (side - 2), length * (s - 2), length); - } - - return this; - } - - /** - * Generates a sided copy of verts into this model - */ - public CCModel generateSidedPart(int side1, int side2, Vector3 point, int srcpos, int destpos, int length) { - return apply(new TransformationList(sideRotations[side1].inverse(), sideRotations[side2]).at(point), srcpos, destpos, length); - } - - /** - * Generates a rotated copy of verts into this model - */ - public CCModel apply(Transformation t, int srcpos, int destpos, int length) { - for (int k = 0; k < length; k++) { - verts[destpos + k] = verts[srcpos + k].copy(); - verts[destpos + k].vec.apply(t); - } - - Vector3[] normals = normals(); - if (normals != null) { - for (int k = 0; k < length; k++) { - normals[destpos + k] = normals[srcpos + k].copy(); - t.applyN(normals[destpos + k]); - } - } - - return this; - } - - public static CCModel combine(Collection models) { - if (models.isEmpty()) { - return null; - } - - int numVerts = 0; - int vertexMode = -1; - for (CCModel model : models) { - if (vertexMode == -1) { - vertexMode = model.vertexMode; - } - if (vertexMode != model.vertexMode) { - throw new IllegalArgumentException("Cannot combine models with different vertex modes"); - } - - numVerts += model.verts.length; - } - - CCModel c_model = newModel(vertexMode, numVerts); - int i = 0; - for (CCModel model : models) { - copy(model, 0, c_model, i, model.verts.length); - i += model.verts.length; - } - - return c_model; - } - - public CCModel twoFacedCopy() { - CCModel model = newModel(vertexMode, verts.length * 2); - copy(this, 0, model, 0, verts.length); - return generateBackface(model, 0, model, verts.length, verts.length); - } - - public CCModel copy() { - CCModel model = newModel(vertexMode, verts.length); - copy(this, 0, model, 0, verts.length); - return model; - } - - /** - * @return The average of all vertices, for bones. - */ - public Vector3 collapse() { - Vector3 v = new Vector3(); - for (Vertex5 vert : verts) { - v.add(vert.vec); - } - v.multiply(1 / (double) verts.length); - return v; - } - - public CCModel zOffset(Cuboid6 offsets) { - for (int k = 0; k < verts.length; k++) { - Vertex5 vert = verts[k]; - Vector3 normal = normals()[k]; - switch (findSide(normal)) { - case 0: - vert.vec.y += offsets.min.y; - break; - case 1: - vert.vec.y += offsets.max.y; - break; - case 2: - vert.vec.z += offsets.min.z; - break; - case 3: - vert.vec.z += offsets.max.z; - break; - case 4: - vert.vec.x += offsets.min.x; - break; - case 5: - vert.vec.x += offsets.max.x; - break; - } - } - return this; - } - - public static int findSide(Vector3 normal) { - if (normal.y <= -0.99) { - return 0; - } - if (normal.y >= 0.99) { - return 1; - } - if (normal.z <= -0.99) { - return 2; - } - if (normal.z >= 0.99) { - return 3; - } - if (normal.x <= -0.99) { - return 4; - } - if (normal.x >= 0.99) { - return 5; - } - return -1; - } - - /** - * @return A Cuboid6 containing all the verts in this model - */ - public Cuboid6 bounds() { - Vector3 vec1 = verts[0].vec; - Cuboid6 c = new Cuboid6(vec1.copy(), vec1.copy()); - for (int i = 1; i < verts.length; i++) { - c.enclose(verts[i].vec); - } - return c; - } -} diff --git a/dependencies/main/java/codechicken/lib/render/CCModelLibrary.java b/dependencies/main/java/codechicken/lib/render/CCModelLibrary.java deleted file mode 100644 index 958e48c184..0000000000 --- a/dependencies/main/java/codechicken/lib/render/CCModelLibrary.java +++ /dev/null @@ -1,83 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.vec.*; - -import static codechicken.lib.math.MathHelper.phi; - -public class CCModelLibrary { - public static CCModel icosahedron4; - public static CCModel icosahedron7; - - private static int i; - - static { - generateIcosahedron(); - } - - private static void generateIcosahedron() { - Vector3[] verts = new Vector3[12]; - - verts[0] = new Vector3(-1, phi, 0); - verts[1] = new Vector3(1, phi, 0); - verts[2] = new Vector3(1, -phi, 0); - verts[3] = new Vector3(-1, -phi, 0); - - verts[4] = new Vector3(0, -1, phi); - verts[5] = new Vector3(0, 1, phi); - verts[6] = new Vector3(0, 1, -phi); - verts[7] = new Vector3(0, -1, -phi); - - verts[8] = new Vector3(phi, 0, -1); - verts[9] = new Vector3(phi, 0, 1); - verts[10] = new Vector3(-phi, 0, 1); - verts[11] = new Vector3(-phi, 0, -1); - - Quat quat = Quat.aroundAxis(0, 0, 1, Math.atan(1 / phi)); - for (Vector3 vec : verts) { - quat.rotate(vec); - } - - icosahedron4 = CCModel.newModel(4, 60); - icosahedron7 = CCModel.newModel(7, 80); - - i = 0; - //top - addIcosahedronTriangle(verts[1], 0.5, 0, verts[0], 0, 0.25, verts[5], 1, 0.25); - addIcosahedronTriangle(verts[1], 0.5, 0, verts[5], 0, 0.25, verts[9], 1, 0.25); - addIcosahedronTriangle(verts[1], 0.5, 0, verts[9], 0, 0.25, verts[8], 1, 0.25); - addIcosahedronTriangle(verts[1], 0.5, 0, verts[8], 0, 0.25, verts[6], 1, 0.25); - addIcosahedronTriangle(verts[1], 0.5, 0, verts[6], 0, 0.25, verts[0], 1, 0.25); - //centre 1vert top - addIcosahedronTriangle(verts[0], 0.5, 0.25, verts[11], 0, 0.75, verts[10], 1, 0.75); - addIcosahedronTriangle(verts[5], 0.5, 0.25, verts[10], 0, 0.75, verts[4], 1, 0.75); - addIcosahedronTriangle(verts[9], 0.5, 0.25, verts[4], 0, 0.75, verts[2], 1, 0.75); - addIcosahedronTriangle(verts[8], 0.5, 0.25, verts[2], 0, 0.75, verts[7], 1, 0.75); - addIcosahedronTriangle(verts[6], 0.5, 0.25, verts[7], 0, 0.75, verts[11], 1, 0.75); - //centre 1vert bottom - addIcosahedronTriangle(verts[2], 0.5, 0.75, verts[8], 0, 0.25, verts[9], 1, 0.25); - addIcosahedronTriangle(verts[7], 0.5, 0.75, verts[6], 0, 0.25, verts[8], 1, 0.25); - addIcosahedronTriangle(verts[11], 0.5, 0.75, verts[0], 0, 0.25, verts[6], 1, 0.25); - addIcosahedronTriangle(verts[10], 0.5, 0.75, verts[5], 0, 0.25, verts[0], 1, 0.25); - addIcosahedronTriangle(verts[4], 0.5, 0.75, verts[9], 0, 0.25, verts[5], 1, 0.25); - //bottom - addIcosahedronTriangle(verts[3], 0.5, 1, verts[2], 0, 0.75, verts[4], 1, 0.75); - addIcosahedronTriangle(verts[3], 0.5, 1, verts[7], 0, 0.75, verts[2], 1, 0.75); - addIcosahedronTriangle(verts[3], 0.5, 1, verts[11], 0, 0.75, verts[7], 1, 0.75); - addIcosahedronTriangle(verts[3], 0.5, 1, verts[10], 0, 0.75, verts[11], 1, 0.75); - addIcosahedronTriangle(verts[3], 0.5, 1, verts[4], 0, 0.75, verts[10], 1, 0.75); - - icosahedron4.computeNormals().smoothNormals(); - icosahedron7.computeNormals().smoothNormals(); - } - - private static void addIcosahedronTriangle(Vector3 vec1, double u1, double v1, Vector3 vec2, double u2, double v2, Vector3 vec3, double u3, double v3) { - icosahedron4.verts[i * 3] = icosahedron7.verts[i * 4] = new Vertex5(vec1, u1, v1); - icosahedron4.verts[i * 3 + 1] = icosahedron7.verts[i * 4 + 1] = new Vertex5(vec2, u2, v2); - icosahedron4.verts[i * 3 + 2] = icosahedron7.verts[i * 4 + 2] = icosahedron7.verts[i * 4 + 3] = new Vertex5(vec3, u3, v3); - i++; - } - - public static Matrix4 getRenderMatrix(Vector3 position, Rotation rotation, double scale) { - return new Matrix4().translate(position).apply(new Scale(scale)).apply(rotation); - } -} diff --git a/dependencies/main/java/codechicken/lib/render/CCRenderPipeline.java b/dependencies/main/java/codechicken/lib/render/CCRenderPipeline.java deleted file mode 100644 index a5b3759e52..0000000000 --- a/dependencies/main/java/codechicken/lib/render/CCRenderPipeline.java +++ /dev/null @@ -1,147 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.render.CCRenderState.IVertexOperation; -import codechicken.lib.render.CCRenderState.VertexAttribute; - -import java.util.ArrayList; - -public class CCRenderPipeline { - public class PipelineBuilder { - public PipelineBuilder add(IVertexOperation op) { - ops.add(op); - return this; - } - - public PipelineBuilder add(IVertexOperation... ops) { - for (int i = 0; i < ops.length; i++) { - CCRenderPipeline.this.ops.add(ops[i]); - } - return this; - } - - public void build() { - rebuild(); - } - - public void render() { - rebuild(); - CCRenderState.render(); - } - } - - private class PipelineNode { - public ArrayList deps = new ArrayList(); - public IVertexOperation op; - - public void add() { - if (op == null) { - return; - } - - for (int i = 0; i < deps.size(); i++) { - deps.get(i).add(); - } - deps.clear(); - sorted.add(op); - op = null; - } - } - - private ArrayList attribs = new ArrayList(); - private ArrayList ops = new ArrayList(); - private ArrayList nodes = new ArrayList(); - private ArrayList sorted = new ArrayList(); - private PipelineNode loading; - private PipelineBuilder builder = new PipelineBuilder(); - - public void setPipeline(IVertexOperation... ops) { - this.ops.clear(); - for (int i = 0; i < ops.length; i++) { - this.ops.add(ops[i]); - } - rebuild(); - } - - public void reset() { - ops.clear(); - unbuild(); - } - - private void unbuild() { - for (int i = 0; i < attribs.size(); i++) { - attribs.get(i).active = false; - } - attribs.clear(); - sorted.clear(); - } - - public void rebuild() { - if (ops.isEmpty() || CCRenderState.model == null) { - return; - } - - //ensure enough nodes for all ops - while (nodes.size() < CCRenderState.operationCount()) { - nodes.add(new PipelineNode()); - } - unbuild(); - - if (CCRenderState.useNormals) { - addAttribute(CCRenderState.normalAttrib); - } - if (CCRenderState.useColour) { - addAttribute(CCRenderState.colourAttrib); - } - if (CCRenderState.computeLighting) { - addAttribute(CCRenderState.lightingAttrib); - } - - for (int i = 0; i < ops.size(); i++) { - IVertexOperation op = ops.get(i); - loading = nodes.get(op.operationID()); - boolean loaded = op.load(); - if (loaded) { - loading.op = op; - } - - if (op instanceof VertexAttribute) { - if (loaded) { - attribs.add((VertexAttribute) op); - } else { - ((VertexAttribute) op).active = false; - } - } - } - - for (int i = 0; i < nodes.size(); i++) { - nodes.get(i).add(); - } - } - - public void addRequirement(int opRef) { - loading.deps.add(nodes.get(opRef)); - } - - public void addDependency(VertexAttribute attrib) { - loading.deps.add(nodes.get(attrib.operationID())); - addAttribute(attrib); - } - - public void addAttribute(VertexAttribute attrib) { - if (!attrib.active) { - ops.add(attrib); - attrib.active = true; - } - } - - public void operate() { - for (int i = 0; i < sorted.size(); i++) { - sorted.get(i).operate(); - } - } - - public PipelineBuilder builder() { - ops.clear(); - return builder; - } -} diff --git a/dependencies/main/java/codechicken/lib/render/CCRenderState.java b/dependencies/main/java/codechicken/lib/render/CCRenderState.java deleted file mode 100644 index a61e92664f..0000000000 --- a/dependencies/main/java/codechicken/lib/render/CCRenderState.java +++ /dev/null @@ -1,453 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.colour.ColourRGBA; -import codechicken.lib.lighting.LC; -import codechicken.lib.lighting.LightMatrix; -import codechicken.lib.util.Copyable; -import codechicken.lib.vec.Rotation; -import codechicken.lib.vec.Transformation; -import codechicken.lib.vec.Vector3; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.WorldRenderer; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.client.renderer.vertex.VertexFormat; -import net.minecraft.util.BlockPos; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.IBlockAccess; - -import java.util.ArrayList; - -/** - * The core of the CodeChickenLib render system. - * Rendering operations are written to avoid object allocations by reusing static variables. - */ -public class CCRenderState { - private static int nextOperationIndex; - - public static int registerOperation() { - return nextOperationIndex++; - } - - public static int operationCount() { - return nextOperationIndex; - } - - /** - * Represents an operation to be run for each vertex that operates on and modifies the current state - */ - public static interface IVertexOperation { - /** - * Load any required references and add dependencies to the pipeline based on the current model (may be null) - * Return false if this operation is redundant in the pipeline with the given model - */ - public boolean load(); - - /** - * Perform the operation on the current render state - */ - public void operate(); - - /** - * Get the unique id representing this type of operation. Duplicate operation IDs within the pipeline may have unexpected results. - * ID shoulld be obtained from CCRenderState.registerOperation() and stored in a static variable - */ - public int operationID(); - } - - private static ArrayList> vertexAttributes = new ArrayList>(); - - private static int registerVertexAttribute(VertexAttribute attr) { - vertexAttributes.add(attr); - return vertexAttributes.size() - 1; - } - - public static VertexAttribute getAttribute(int index) { - return vertexAttributes.get(index); - } - - /** - * Management class for a vertex attrute such as colour, normal etc - * This class should handle the loading of the attrute from an array provided by IVertexSource.getAttributes or the computation of this attrute from others - * - * @param The array type for this attrute eg. int[], Vector3[] - */ - public static abstract class VertexAttribute implements IVertexOperation { - public final int attributeIndex = registerVertexAttribute(this); - private final int operationIndex = registerOperation(); - /** - * Set to true when the attrute is part of the pipeline. Should only be managed by CCRenderState when constructing the pipeline - */ - public boolean active = false; - - /** - * Construct a new array for storage of vertex attrutes in a model - */ - public abstract T newArray(int length); - - @Override - public int operationID() { - return operationIndex; - } - } - - public static void arrayCopy(Object src, int srcPos, Object dst, int destPos, int length) { - System.arraycopy(src, srcPos, dst, destPos, length); - if (dst instanceof Copyable[]) { - Object[] oa = (Object[]) dst; - Copyable[] c = (Copyable[]) dst; - for (int i = destPos; i < destPos + length; i++) { - if (c[i] != null) { - oa[i] = c[i].copy(); - } - } - } - } - - public static T copyOf(VertexAttribute attr, T src, int length) { - T dst = attr.newArray(length); - arrayCopy(src, 0, dst, 0, ((Object[]) src).length); - return dst; - } - - public static interface IVertexSource { - public Vertex5[] getVertices(); - - /** - * Gets an array of vertex attrutes - * - * @param attr The vertex attrute to get - * @param The attrute array type - * @return An array, or null if not computed - */ - public T getAttributes(VertexAttribute attr); - - /** - * @return True if the specified attrute is provided by this model, either by returning an array from getAttributes or by setting the state in prepareVertex - */ - public boolean hasAttribute(VertexAttribute attr); - - /** - * Callback to set CCRenderState for a vertex before the pipeline runs - */ - public void prepareVertex(); - } - - public static VertexAttribute normalAttrib = new VertexAttribute() { - private Vector3[] normalRef; - - @Override - public Vector3[] newArray(int length) { - return new Vector3[length]; - } - - @Override - public boolean load() { - normalRef = model.getAttributes(this); - if (model.hasAttribute(this)) { - return normalRef != null; - } - - if (model.hasAttribute(sideAttrib)) { - pipeline.addDependency(sideAttrib); - return true; - } - throw new IllegalStateException("Normals requested but neither normal or side attrutes are provided by the model"); - } - - @Override - public void operate() { - if (normalRef != null) { - setNormal(normalRef[vertexIndex]); - } else { - setNormal(Rotation.axes[side]); - } - } - }; - public static VertexAttribute colourAttrib = new VertexAttribute() { - private int[] colourRef; - - @Override - public int[] newArray(int length) { - return new int[length]; - } - - @Override - public boolean load() { - colourRef = model.getAttributes(this); - return colourRef != null || !model.hasAttribute(this); - } - - @Override - public void operate() { - if (colourRef != null) { - setColour(ColourRGBA.multiply(baseColour, colourRef[vertexIndex])); - } else { - setColour(baseColour); - } - } - }; - public static VertexAttribute lightingAttrib = new VertexAttribute() { - private int[] colourRef; - - @Override - public int[] newArray(int length) { - return new int[length]; - } - - @Override - public boolean load() { - if (!computeLighting || !useColour || !model.hasAttribute(this)) { - return false; - } - - colourRef = model.getAttributes(this); - if (colourRef != null) { - pipeline.addDependency(colourAttrib); - return true; - } - return false; - } - - @Override - public void operate() { - setColour(ColourRGBA.multiply(colour, colourRef[vertexIndex])); - } - }; - public static VertexAttribute sideAttrib = new VertexAttribute() { - private int[] sideRef; - - @Override - public int[] newArray(int length) { - return new int[length]; - } - - @Override - public boolean load() { - sideRef = model.getAttributes(this); - if (model.hasAttribute(this)) { - return sideRef != null; - } - - pipeline.addDependency(normalAttrib); - return true; - } - - @Override - public void operate() { - if (sideRef != null) { - side = sideRef[vertexIndex]; - } else { - side = CCModel.findSide(normal); - } - } - }; - /** - * Uses the position of the lightmatrix to compute LC if not provided - */ - public static VertexAttribute lightCoordAttrib = new VertexAttribute() { - private LC[] lcRef; - private Vector3 vec = new Vector3();//for computation - private Vector3 pos = new Vector3(); - - @Override - public LC[] newArray(int length) { - return new LC[length]; - } - - @Override - public boolean load() { - lcRef = model.getAttributes(this); - if (model.hasAttribute(this)) { - return lcRef != null; - } - - pos.set(lightMatrix.pos.x, lightMatrix.pos.y, lightMatrix.pos.z); - pipeline.addDependency(sideAttrib); - pipeline.addRequirement(Transformation.operationIndex); - return true; - } - - @Override - public void operate() { - if (lcRef != null) { - lc.set(lcRef[vertexIndex]); - } else { - lc.compute(vec.set(vert.vec).sub(pos), side); - } - } - }; - - //pipeline state - public static IVertexSource model; - public static int firstVertexIndex; - public static int lastVertexIndex; - public static int vertexIndex; - public static CCRenderPipeline pipeline = new CCRenderPipeline(); - - //context - public static int baseColour; - public static int alphaOverride; - public static boolean useNormals; - public static boolean computeLighting; - public static boolean useColour; - public static LightMatrix lightMatrix = new LightMatrix(); - - //vertex outputs - public static Vertex5 vert = new Vertex5(); - public static boolean hasNormal; - public static Vector3 normal = new Vector3(); - public static boolean hasColour; - public static int colour; - public static boolean hasBrightness; - public static int brightness; - - //attrute storage - public static int side; - public static LC lc = new LC(); - - public static void reset() { - model = null; - pipeline.reset(); - useNormals = hasNormal = hasBrightness = hasColour = false; - useColour = computeLighting = true; - baseColour = alphaOverride = -1; - } - - public static void setPipeline(IVertexOperation... ops) { - pipeline.setPipeline(ops); - } - - public static void setPipeline(IVertexSource model, int start, int end, IVertexOperation... ops) { - pipeline.reset(); - setModel(model, start, end); - pipeline.setPipeline(ops); - } - - public static void bindModel(IVertexSource model) { - if (CCRenderState.model != model) { - CCRenderState.model = model; - pipeline.rebuild(); - } - } - - public static void setModel(IVertexSource source) { - setModel(source, 0, source.getVertices().length); - } - - public static void setModel(IVertexSource source, int start, int end) { - bindModel(source); - setVertexRange(start, end); - } - - public static void setVertexRange(int start, int end) { - firstVertexIndex = start; - lastVertexIndex = end; - } - - public static void render(IVertexOperation... ops) { - setPipeline(ops); - render(); - } - - public static void render() { - Vertex5[] verts = model.getVertices(); - for (vertexIndex = firstVertexIndex; vertexIndex < lastVertexIndex; vertexIndex++) { - model.prepareVertex(); - vert.set(verts[vertexIndex]); - runPipeline(); - writeVert(); - } - } - - public static void runPipeline() { - pipeline.operate(); - } - - public static void writeVert() { - WorldRenderer r = Tessellator.getInstance().getWorldRenderer(); - - if (hasNormal) { - r.normal((float) normal.x, (float) normal.y, (float) normal.z); - } - if (hasColour) { - r.color(colour >>> 24, colour >> 16 & 0xFF, colour >> 8 & 0xFF, alphaOverride >= 0 ? alphaOverride : colour & 0xFF); - } - if (hasBrightness) { - r.lightmap(brightness >> 16 & 65535, brightness & 65535); - } - } - - public static void setNormal(double x, double y, double z) { - hasNormal = true; - normal.set(x, y, z); - } - - public static void setNormal(Vector3 n) { - hasNormal = true; - normal.set(n); - } - - public static void setColour(int c) { - hasColour = true; - colour = c; - } - - public static void setBrightness(int b) { - hasBrightness = true; - brightness = b; - } - - public static void setBrightness(IBlockAccess world, BlockPos pos) { - setBrightness(world.getBlockState(pos).getBlock().getMixedBrightnessForBlock(world, pos)); - } - - public static void pullLightmap() { - setBrightness((int) OpenGlHelper.lastBrightnessY << 16 | (int) OpenGlHelper.lastBrightnessX); - } - - public static void pushLightmap() { - OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, brightness & 0xFFFF, brightness >>> 16); - } - - /** - * Compact helper for setting dynamic rendering context. Uses normals and doesn't compute lighting - */ - public static void setDynamic() { - useNormals = true; - computeLighting = false; - } - - public static void changeTexture(String texture) { - changeTexture(new ResourceLocation(texture)); - } - - public static void changeTexture(ResourceLocation texture) { - Minecraft.getMinecraft().renderEngine.bindTexture(texture); - } - - public static WorldRenderer startDrawing() { - return startDrawing(7, DefaultVertexFormats.POSITION_TEX); - } - - public static WorldRenderer startDrawing(VertexFormat format) { - return startDrawing(7, format); - } - - public static WorldRenderer startDrawing(int mode, VertexFormat format) { - WorldRenderer r = Tessellator.getInstance().getWorldRenderer(); - r.begin(mode, format); - if (hasColour) { - r.color(colour >>> 24, colour >> 16 & 0xFF, colour >> 8 & 0xFF, alphaOverride >= 0 ? alphaOverride : colour & 0xFF); - } - if (hasBrightness) { - r.lightmap(brightness >> 16 & 65535, brightness & 65535); - } - return r; - } - - public static void draw() { - Tessellator.getInstance().draw(); - } -} diff --git a/dependencies/main/java/codechicken/lib/render/ColourMultiplier.java b/dependencies/main/java/codechicken/lib/render/ColourMultiplier.java deleted file mode 100644 index 80b613e885..0000000000 --- a/dependencies/main/java/codechicken/lib/render/ColourMultiplier.java +++ /dev/null @@ -1,39 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.colour.ColourRGBA; - -public class ColourMultiplier implements CCRenderState.IVertexOperation { - private static ColourMultiplier instance = new ColourMultiplier(-1); - - public static ColourMultiplier instance(int colour) { - instance.colour = colour; - return instance; - } - - public static final int operationIndex = CCRenderState.registerOperation(); - public int colour; - - public ColourMultiplier(int colour) { - this.colour = colour; - } - - @Override - public boolean load() { - if (colour == -1) { - return false; - } - - CCRenderState.pipeline.addDependency(CCRenderState.colourAttrib); - return true; - } - - @Override - public void operate() { - CCRenderState.setColour(ColourRGBA.multiply(CCRenderState.colour, colour)); - } - - @Override - public int operationID() { - return operationIndex; - } -} diff --git a/dependencies/main/java/codechicken/lib/render/EntityDigIconFX.java b/dependencies/main/java/codechicken/lib/render/EntityDigIconFX.java deleted file mode 100644 index c3aeb431ed..0000000000 --- a/dependencies/main/java/codechicken/lib/render/EntityDigIconFX.java +++ /dev/null @@ -1,120 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.vec.Cuboid6; -import codechicken.lib.vec.Vector3; -import net.minecraft.client.particle.EffectRenderer; -import net.minecraft.client.particle.EntityFX; -import net.minecraft.client.renderer.WorldRenderer; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.entity.Entity; -import net.minecraft.world.World; - -public class EntityDigIconFX extends EntityFX { - public EntityDigIconFX(World world, double x, double y, double z, double dx, double dy, double dz, TextureAtlasSprite icon) { - super(world, x, y, z, dx, dy, dz); - particleIcon = icon; - particleGravity = 1; - particleRed = particleGreen = particleBlue = 0.6F; - particleScale /= 2.0F; - } - - @Override - public int getFXLayer() { - return 1; - } - - public void setScale(float scale) { - particleScale = scale; - } - - public float getScale() { - return particleScale; - } - - public void setMaxAge(int age) { - particleMaxAge = age; - } - - public int getMaxAge() { - return particleMaxAge; - } - - /** - * copy pasted from EntityDiggingFX - */ - @Override - public void renderParticle(WorldRenderer par1Tessellator, Entity entity, float par2, float par3, float par4, float par5, float par6, float par7) { - float f6 = (particleTextureIndexX + particleTextureJitterX / 4.0F) / 16.0F; - float f7 = f6 + 0.015609375F; - float f8 = (particleTextureIndexY + particleTextureJitterY / 4.0F) / 16.0F; - float f9 = f8 + 0.015609375F; - float f10 = 0.1F * particleScale; - - if (particleIcon != null) { - f6 = particleIcon.getInterpolatedU(particleTextureJitterX / 4.0F * 16.0F); - f7 = particleIcon.getInterpolatedU((particleTextureJitterX + 1.0F) / 4.0F * 16.0F); - f8 = particleIcon.getInterpolatedV(particleTextureJitterY / 4.0F * 16.0F); - f9 = particleIcon.getInterpolatedV((particleTextureJitterY + 1.0F) / 4.0F * 16.0F); - } - - float f11 = (float) (prevPosX + (posX - prevPosX) * par2 - interpPosX); - float f12 = (float) (prevPosY + (posY - prevPosY) * par2 - interpPosY); - float f13 = (float) (prevPosZ + (posZ - prevPosZ) * par2 - interpPosZ); - float f14 = 1.0F; - - par1Tessellator.pos(f11 - par3 * f10 - par6 * f10, f12 - par4 * f10, f13 - par5 * f10 - par7 * f10).tex(f6, f9).color(f14 * particleRed, f14 * particleGreen, f14 * particleBlue, 255F).endVertex(); - par1Tessellator.pos(f11 - par3 * f10 + par6 * f10, f12 + par4 * f10, f13 - par5 * f10 + par7 * f10).tex(f6, f8).color(f14 * particleRed, f14 * particleGreen, f14 * particleBlue, 255F).endVertex(); - par1Tessellator.pos(f11 + par3 * f10 + par6 * f10, f12 + par4 * f10, f13 + par5 * f10 + par7 * f10).tex(f7, f8).color(f14 * particleRed, f14 * particleGreen, f14 * particleBlue, 255F).endVertex(); - par1Tessellator.pos(f11 + par3 * f10 - par6 * f10, f12 - par4 * f10, f13 + par5 * f10 - par7 * f10).tex(f7, f9).color(f14 * particleRed, f14 * particleGreen, f14 * particleBlue, 255F).endVertex(); - } - - public static void addBlockHitEffects(World world, Cuboid6 bounds, int side, TextureAtlasSprite icon, EffectRenderer effectRenderer) { - float border = 0.1F; - Vector3 diff = bounds.max.copy().subtract(bounds.min).add(-2 * border); - diff.x *= world.rand.nextDouble(); - diff.y *= world.rand.nextDouble(); - diff.z *= world.rand.nextDouble(); - Vector3 pos = diff.add(bounds.min).add(border); - - if (side == 0) { - diff.y = bounds.min.y - border; - } - if (side == 1) { - diff.y = bounds.max.y + border; - } - if (side == 2) { - diff.z = bounds.min.z - border; - } - if (side == 3) { - diff.z = bounds.max.z + border; - } - if (side == 4) { - diff.x = bounds.min.x - border; - } - if (side == 5) { - diff.x = bounds.max.x + border; - } - - effectRenderer.addEffect(new EntityDigIconFX(world, pos.x, pos.y, pos.z, 0, 0, 0, icon).multiplyVelocity(0.2F).multipleParticleScaleBy(0.6F)); - } - - public static void addBlockDestroyEffects(World world, Cuboid6 bounds, TextureAtlasSprite[] icons, EffectRenderer effectRenderer) { - Vector3 diff = bounds.max.copy().subtract(bounds.min); - Vector3 center = bounds.min.copy().add(bounds.max).multiply(0.5); - Vector3 density = diff.copy().multiply(4); - density.x = Math.ceil(density.x); - density.y = Math.ceil(density.y); - density.z = Math.ceil(density.z); - - for (int i = 0; i < density.x; ++i) { - for (int j = 0; j < density.y; ++j) { - for (int k = 0; k < density.z; ++k) { - double x = bounds.min.x + (i + 0.5) * diff.x / density.x; - double y = bounds.min.y + (j + 0.5) * diff.y / density.y; - double z = bounds.min.z + (k + 0.5) * diff.z / density.z; - effectRenderer.addEffect(new EntityDigIconFX(world, x, y, z, x - center.x, y - center.y, z - center.z, icons[world.rand.nextInt(icons.length)])); - } - } - } - } -} diff --git a/dependencies/main/java/codechicken/lib/render/FontUtils.java b/dependencies/main/java/codechicken/lib/render/FontUtils.java deleted file mode 100644 index ff1ecaf7eb..0000000000 --- a/dependencies/main/java/codechicken/lib/render/FontUtils.java +++ /dev/null @@ -1,66 +0,0 @@ -package codechicken.lib.render; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.item.ItemStack; - -public class FontUtils { - public static FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj; - - public static void drawCenteredString(String s, int xCenter, int y, int colour) { - fontRenderer.drawString(s, xCenter - fontRenderer.getStringWidth(s) / 2, y, colour); - } - - public static void drawRightString(String s, int xRight, int y, int colour) { - fontRenderer.drawString(s, xRight - fontRenderer.getStringWidth(s), y, colour); - } - - public static final String[] prefixes = new String[] { "K", "M", "G" }; - - public static void drawItemQuantity(int x, int y, ItemStack item, String quantity, int mode) { - if (item == null || (quantity == null && item.stackSize <= 1)) { - return; - } - - if (quantity == null) { - switch (mode) { - case 2: - int q = item.stackSize; - String postfix = ""; - for (int p = 0; p < 3 && q > 1000; p++) { - q /= 1000; - postfix = prefixes[p]; - } - quantity = Integer.toString(q) + postfix; - break; - case 1: - quantity = ""; - if (item.stackSize / 64 > 0) { - quantity += item.stackSize / 64 + "s"; - } - if (item.stackSize % 64 > 0) { - quantity += item.stackSize % 64; - } - break; - default: - quantity = Integer.toString(item.stackSize); - break; - } - } - - double scale = quantity.length() > 2 ? 0.5 : 1; - double sheight = 8 * scale; - double swidth = fontRenderer.getStringWidth(quantity) * scale; - - GlStateManager.disableLighting(); - GlStateManager.disableDepth(); - GlStateManager.pushMatrix(); - GlStateManager.translate(x + 16 - swidth, y + 16 - sheight, 0); - GlStateManager.scale(scale, scale, 1); - fontRenderer.drawStringWithShadow(quantity, 0, 0, 0xFFFFFF); - GlStateManager.popMatrix(); - GlStateManager.enableLighting(); - GlStateManager.enableDepth(); - } -} diff --git a/dependencies/main/java/codechicken/lib/render/IFaceRenderer.java b/dependencies/main/java/codechicken/lib/render/IFaceRenderer.java deleted file mode 100644 index 891b8f9bdd..0000000000 --- a/dependencies/main/java/codechicken/lib/render/IFaceRenderer.java +++ /dev/null @@ -1,5 +0,0 @@ -package codechicken.lib.render; - -public interface IFaceRenderer { - public void renderFace(Vertex5[] face, int side); -} diff --git a/dependencies/main/java/codechicken/lib/render/IItemRenderer.java b/dependencies/main/java/codechicken/lib/render/IItemRenderer.java deleted file mode 100644 index d9935d4c4a..0000000000 --- a/dependencies/main/java/codechicken/lib/render/IItemRenderer.java +++ /dev/null @@ -1,12 +0,0 @@ -package codechicken.lib.render; - -import net.minecraft.client.resources.model.IBakedModel; -import net.minecraft.item.ItemStack; - -/** - * Hooks the location in RenderItem where TileEntityItemStackRenderer.renderByItem is called. - * Be sure to override isBuiltInRenderer true - */ -public interface IItemRenderer extends IBakedModel { - public void renderItem(ItemStack item); -} diff --git a/dependencies/main/java/codechicken/lib/render/ManagedTextureFX.java b/dependencies/main/java/codechicken/lib/render/ManagedTextureFX.java deleted file mode 100644 index 69dfcb7f25..0000000000 --- a/dependencies/main/java/codechicken/lib/render/ManagedTextureFX.java +++ /dev/null @@ -1,26 +0,0 @@ -package codechicken.lib.render; - -public class ManagedTextureFX extends TextureFX { - public boolean changed; - - public ManagedTextureFX(int size, String name) { - super(size, name); - imageData = new int[size * size]; - } - - @Override - public void setup() { - } - - public void setData(int[] data) { - System.arraycopy(data, 0, imageData, 0, imageData.length); - changed = true; - } - - @Override - public boolean changed() { - boolean r = changed; - changed = false; - return r; - } -} diff --git a/dependencies/main/java/codechicken/lib/render/ModelRegistryHelper.java b/dependencies/main/java/codechicken/lib/render/ModelRegistryHelper.java deleted file mode 100644 index 98916680b4..0000000000 --- a/dependencies/main/java/codechicken/lib/render/ModelRegistryHelper.java +++ /dev/null @@ -1,59 +0,0 @@ -package codechicken.lib.render; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemMeshDefinition; -import net.minecraft.client.resources.model.IBakedModel; -import net.minecraft.client.resources.model.ModelResourceLocation; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.ModelBakeEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; - -import java.util.LinkedList; -import java.util.List; - -public class ModelRegistryHelper { - private static List> registerModels = new LinkedList>(); - - static { - MinecraftForge.EVENT_BUS.register(new ModelRegistryHelper()); - } - - public static void register(ModelResourceLocation location, IBakedModel model) { - registerModels.add(new ImmutablePair(location, model)); - } - - public static void registerItemModel(Item item, ResourceLocation location) { - registerItemModel(item, 0, location); - } - - public static void registerItemModel(Item item, int meta, ResourceLocation location) { - Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, meta, new ModelResourceLocation(location, "inventory")); - } - - public static void registerItemMesher(Item item, ItemMeshDefinition mesher) { - Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, mesher); - } - - public static void registerItemRenderer(Item item, IItemRenderer renderer, ResourceLocation location) { - final ModelResourceLocation modelLoc = new ModelResourceLocation(location, "inventory"); - register(modelLoc, renderer); - registerItemMesher(item, new ItemMeshDefinition() { - @Override - public ModelResourceLocation getModelLocation(ItemStack stack) { - return modelLoc; - } - }); - } - - @SubscribeEvent - public void onModelBake(ModelBakeEvent event) { - for (Pair pair : registerModels) { - event.modelRegistry.putObject(pair.getKey(), pair.getValue()); - } - } -} diff --git a/dependencies/main/java/codechicken/lib/render/PlaceholderTexture.java b/dependencies/main/java/codechicken/lib/render/PlaceholderTexture.java deleted file mode 100644 index 96aef9aaa8..0000000000 --- a/dependencies/main/java/codechicken/lib/render/PlaceholderTexture.java +++ /dev/null @@ -1,21 +0,0 @@ -package codechicken.lib.render; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.resources.IResourceManager; -import net.minecraft.util.ResourceLocation; - -public class PlaceholderTexture extends TextureAtlasSprite { - protected PlaceholderTexture(String par1) { - super(par1); - } - - @Override - public boolean hasCustomLoader(IResourceManager manager, ResourceLocation location) { - return true; - } - - @Override - public boolean load(IResourceManager manager, ResourceLocation location) { - return true; - } -} diff --git a/dependencies/main/java/codechicken/lib/render/QBImporter.java b/dependencies/main/java/codechicken/lib/render/QBImporter.java deleted file mode 100644 index f83d25753d..0000000000 --- a/dependencies/main/java/codechicken/lib/render/QBImporter.java +++ /dev/null @@ -1,803 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.render.uv.UV; -import codechicken.lib.render.uv.UVScale; -import codechicken.lib.vec.*; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.util.ResourceLocation; - -import javax.imageio.ImageIO; -import java.awt.image.BufferedImage; -import java.io.*; -import java.util.*; - -public class QBImporter { - private static class ImagePackNode { - Rectangle4i rect; - ImagePackNode child1; - ImagePackNode child2; - QBImage packed; - - public ImagePackNode(int x, int y, int w, int h) { - rect = new Rectangle4i(x, y, w, h); - } - - public boolean pack(QBImage img) { - if (child1 != null) { - return child1.pack(img) || child2.pack(img); - } - - if (packed != null) { - return false; - } - - int fit = getFit(img.width(), img.height()); - if (fit == 0) { - return false; - } - - if ((fit & 2) != 0) {//exact fit - packed = img; - img.packSlot = rect; - img.packT = new ImageTransform((fit & 1) << 2); - return true; - } - - int w = (fit & 1) == 0 ? img.width() : img.height(); - int h = (fit & 1) == 0 ? img.height() : img.width(); - - if (rect.w - w > rect.h - h) {//create split with biggest leftover space - child1 = new ImagePackNode(rect.x, rect.y, w, rect.h); - child2 = new ImagePackNode(rect.x + w, rect.y, rect.w - w, rect.h); - } else { - child1 = new ImagePackNode(rect.x, rect.y, rect.w, h); - child2 = new ImagePackNode(rect.x, rect.y + h, rect.w, rect.h - h); - } - return child1.pack(img); - } - - private int getFit(int w, int h) { - if (w == rect.w && h == rect.h) { - return 2; - } - if (w == rect.h && h == rect.w) { - return 3; - } - if (rect.w >= w && rect.h >= h) { - return 4; - } - if (rect.w >= h && rect.h >= w) { - return 5; - } - - return 0; - } - - private static void nextSize(Rectangle4i rect, boolean square) { - if (square) { - rect.w <<= 1; - rect.h <<= 1; - } else { - if (rect.w == rect.h) { - rect.w *= 2; - } else { - rect.h *= 2; - } - } - } - - public static ImagePackNode pack(List images, boolean square) { - Collections.sort(images); - - int area = 0; - for (QBImage img : images) { - area += img.area(); - } - - ImagePackNode node = new ImagePackNode(0, 0, 2, 2); - while (node.rect.area() < area) { - nextSize(node.rect, square); - } - - while (true) { - boolean packed = true; - for (QBImage img : images) { - if (!node.pack(img)) { - packed = false; - break; - } - } - - if (packed) { - return node; - } - - node.child1 = node.child2 = null; - nextSize(node.rect, square); - } - } - - public BufferedImage toImage() { - BufferedImage img = new BufferedImage(rect.w, rect.h, BufferedImage.TYPE_INT_ARGB); - write(img); - return img; - } - - private void write(BufferedImage img) { - if (child1 != null) { - child1.write(img); - child2.write(img); - } else if (packed != null) { - ImageTransform t = packed.packT; - for (int u = 0; u < rect.w; u++) { - for (int v = 0; v < rect.h; v++) { - int rgba = t.access(packed, u, v); - img.setRGB(u + rect.x, v + rect.y, rgba >>> 8 | rgba << 24); - } - } - } - } - } - - private static class ImageTransform { - int transform; - - public ImageTransform(int i) { - transform = i; - } - - public ImageTransform() { - this(0); - } - - public boolean transpose() { - return (transform & 4) != 0; - } - - public boolean flipU() { - return (transform & 1) != 0; - } - - public boolean flipV() { - return (transform & 2) != 0; - } - - public int access(QBImage img, int u, int v) { - if (transpose()) { - int tmp = u; - u = v; - v = tmp; - } - if (flipU()) { - u = img.width() - 1 - u; - } - if (flipV()) { - v = img.height() - 1 - v; - } - - return img.data[u][v]; - } - - public UV transform(UV uv) { - if (transpose()) { - double tmp = uv.u; - uv.u = uv.v; - uv.v = tmp; - } - if (flipU()) { - uv.u = 1 - uv.u; - } - if (flipV()) { - uv.v = 1 - uv.v; - } - - return uv; - } - } - - public static class QBImage implements Comparable { - int[][] data; - ImageTransform packT; - Rectangle4i packSlot; - - public int width() { - return data.length; - } - - public int height() { - return data[0].length; - } - - public int area() { - return width() * height(); - } - - @Override - public int compareTo(QBImage o) { - int a = area(); - int b = o.area(); - return a > b ? -1 : a == b ? 0 : 1; - } - - public ImageTransform transformTo(QBImage img) { - if (width() == img.width() && height() == img.height()) { - for (int i = 0; i < 4; i++) { - ImageTransform t = new ImageTransform(i); - if (equals(img, t)) { - return t; - } - } - } - if (width() == img.height() && height() == img.width()) { - for (int i = 4; i < 8; i++) { - ImageTransform t = new ImageTransform(i); - if (equals(img, t)) { - return t; - } - } - } - return null; - } - - public boolean equals(QBImage img, ImageTransform t) { - for (int u = 0; u < img.width(); u++) { - for (int v = 0; v < img.height(); v++) { - if (t.access(this, u, v) != img.data[u][v]) { - return false; - } - } - } - - return true; - } - - public void transform(UV uv) { - packT.transform(uv); - uv.u *= packSlot.w; - uv.v *= packSlot.h; - uv.u += packSlot.x; - uv.v += packSlot.y; - } - } - - private static final int[][] vertOrder = new int[][] {//clockwise because MC is left handed - { 3, 0 }, { 1, 0 }, { 1, 2 }, { 3, 2 } }; - - public static class QBQuad { - public Vertex5[] verts = new Vertex5[4]; - public QBImage image = new QBImage(); - public ImageTransform t = new ImageTransform(); - public int side; - - public QBQuad(int side) { - this.side = side; - } - - public void applyImageT() { - for (Vertex5 vert : verts) { - t.transform(vert.uv); - image.transform(vert.uv); - } - } - - public static QBQuad restore(Rectangle4i flat, int side, double d, QBImage img) { - QBQuad quad = new QBQuad(side); - quad.image = img; - - Transformation t = new Scale(-1, 1, -1).with(Rotation.sideOrientation(side, 0)).with(new Translation(new Vector3().setSide(side, d))); - quad.verts[0] = new Vertex5(flat.x, 0, flat.y, 0, 0); - quad.verts[1] = new Vertex5(flat.x + flat.w, 0, flat.y, 1, 0); - quad.verts[2] = new Vertex5(flat.x + flat.w, 0, flat.y + flat.h, 1, 1); - quad.verts[3] = new Vertex5(flat.x, 0, flat.y + flat.h, 0, 1); - for (Vertex5 vert : quad.verts) { - vert.apply(t); - } - - return quad; - } - - public Rectangle4i flatten() { - Transformation t = Rotation.sideOrientation(side, 0).inverse().with(new Scale(-1, 0, -1)); - Vector3 vmin = verts[0].vec.copy().apply(t); - Vector3 vmax = verts[2].vec.copy().apply(t); - return new Rectangle4i((int) vmin.x, (int) vmin.z, (int) (vmax.x - vmin.x), (int) (vmax.z - vmin.z)); - } - } - - public static class QBCuboid { - public QBMatrix mat; - public CuboidCoord c; - public int sides; - - public QBCuboid(QBMatrix mat, CuboidCoord c) { - this.mat = mat; - this.c = c; - sides = 0; - } - - public static boolean intersects(QBCuboid a, QBCuboid b) { - CuboidCoord c = a.c; - CuboidCoord d = b.c; - return c.min.x <= d.max.x && - d.min.x <= c.max.x && - c.min.y <= d.max.y && - d.min.y <= c.max.y && - c.min.z <= d.max.z && - d.min.z <= c.max.z; - } - - public static void clip(QBCuboid a, QBCuboid b) { - if (intersects(a, b)) { - a.clip(b); - b.clip(a); - } - } - - public void clip(QBCuboid o) { - CuboidCoord d = o.c; - for (int a = 0; a < 6; a += 2) { - int a1 = (a + 2) % 6; - int a2 = (a + 4) % 6; - if (c.getSide(a1 + 1) <= d.getSide(a1 + 1) && - c.getSide(a1) >= d.getSide(a1) && - c.getSide(a2 + 1) <= d.getSide(a2 + 1) && - c.getSide(a2) >= d.getSide(a2)) { - - if (c.getSide(a) <= d.getSide(a + 1) && c.getSide(a) >= d.getSide(a)) { - c.setSide(a, d.getSide(a + 1) + 1); - sides |= 1 << a; - } - if (c.getSide(a + 1) >= d.getSide(a) && c.getSide(a + 1) <= d.getSide(a + 1)) { - c.setSide(a + 1, d.getSide(a) - 1); - sides |= 2 << a; - } - } - } - } - - public void extractQuads(List quads) { - Cuboid6 box = c.bounds(); - for (int s = 0; s < 6; s++) { - if ((sides & 1 << s) == 0) { - quads.add(extractQuad(s, box)); - } - } - } - - private QBQuad extractQuad(int side, Cuboid6 box) { - double[] da = new double[3]; - da[side >> 1] = box.getSide(side); - - QBQuad quad = new QBQuad(side); - for (int i = 0; i < 4; i++) { - int rU = vertOrder[i][0]; - int rV = vertOrder[i][1]; - int sideU = Rotation.rotateSide(side, rU); - int sideV = Rotation.rotateSide(side, rV); - da[sideU >> 1] = box.getSide(sideU); - da[sideV >> 1] = box.getSide(sideV); - quad.verts[i] = new Vertex5(Vector3.fromAxes(da), (3 - rU) / 2, rV / 2); - } - - int sideU = Rotation.rotateSide(side, 1); - int sideV = Rotation.rotateSide(side, 2); - quad.image.data = new int[c.size(sideU)][c.size(sideV)]; - QBImage image = quad.image; - - int[] ia = new int[3]; - ia[side >> 1] = c.getSide(side); - ia[sideU >> 1] = c.getSide(sideU ^ 1); - ia[sideV >> 1] = c.getSide(sideV ^ 1); - BlockCoord b = BlockCoord.fromAxes(ia); - BlockCoord bU = BlockCoord.sideOffsets[sideU]; - BlockCoord bV = BlockCoord.sideOffsets[sideV]; - for (int u = 0; u < image.width(); u++) { - for (int v = 0; v < image.height(); v++) { - image.data[u][v] = mat.matrix[b.x + bU.x * u + bV.x * v][b.y + bU.y * u + bV.y * v][b.z + bU.z * u + bV.z * v]; - } - } - - return quad; - } - } - - public static class QBMatrix { - public String name; - public BlockCoord pos; - public BlockCoord size; - public int[][][] matrix; - - public void readMatrix(DataInputStream din, boolean compressed) throws IOException { - if (compressed) { - int z = 0; - while (z < size.z) { - int index = 0; - - while (true) { - int data = din.readInt(); - - if (data == NEXTSLICEFLAG) { - break; - } - - if (data == CODEFLAG) { - int count = readTni(din); - data = din.readInt(); - - for (int j = 0; j < count; j++, index++) { - matrix[index % size.x][index / size.x][z] = data; - } - } else { - matrix[index % size.x][index / size.x][z] = data; - index++; - } - } - z++; - } - } else { - for (int z = 0; z < size.z; z++) { - for (int y = 0; y < size.y; y++) { - for (int x = 0; x < size.x; x++) { - matrix[x][y][z] = din.readInt(); - } - } - } - } - } - - public void convertBGRAtoRGBA() { - for (int z = 0; z < size.z; z++) { - for (int y = 0; y < size.y; y++) { - for (int x = 0; x < size.x; x++) { - int i = matrix[x][y][z]; - matrix[x][y][z] = Integer.reverseBytes(i >>> 8) | i & 0xFF; - } - } - } - } - - private boolean voxelFull(boolean[][][] solid, CuboidCoord c) { - for (BlockCoord b : c) { - if (matrix[b.x][b.y][b.z] == 0) { - return false; - } - } - for (BlockCoord b : c) { - solid[b.x][b.y][b.z] = false; - } - return true; - } - - private QBCuboid expand(boolean[][][] solid, BlockCoord b) { - CuboidCoord c = new CuboidCoord(b); - solid[b.x][b.y][b.z] = false; - - for (int s = 0; s < 6; s++) { - CuboidCoord slice = c.copy(); - slice.expand(s ^ 1, -(slice.size(s) - 1)); - slice.expand(s, 1); - - while (slice.getSide(s) >= 0 && slice.getSide(s) < size.getSide(s)) { - if (!voxelFull(solid, slice)) { - break; - } - slice.expand(s ^ 1, -1); - slice.expand(s, 1); - c.expand(s, 1); - } - } - return new QBCuboid(this, c); - } - - public List rectangulate() { - List list = new ArrayList(); - boolean[][][] solid = new boolean[size.x][size.y][size.z]; - for (int z = 0; z < size.z; z++) { - for (int y = 0; y < size.y; y++) { - for (int x = 0; x < size.x; x++) { - solid[x][y][z] = matrix[x][y][z] != 0; - } - } - } - - for (int x = 0; x < size.x; x++) { - for (int z = 0; z < size.z; z++) { - for (int y = 0; y < size.y; y++) { - if (solid[x][y][z]) { - list.add(expand(solid, new BlockCoord(x, y, z))); - } - } - } - } - - for (int i = 0; i < list.size(); i++) { - for (int j = i + 1; j < list.size(); j++) { - QBCuboid.clip(list.get(i), list.get(j)); - } - } - - return list; - } - - public List extractQuads(boolean texturePlanes) { - List quads = new LinkedList(); - for (QBCuboid c : rectangulate()) { - c.extractQuads(quads); - } - - if (texturePlanes) { - optimisePlanes(quads); - } - - return quads; - } - - private void optimisePlanes(List quads) { - Multimap map = HashMultimap.create(); - for (QBQuad quad : quads) { - map.put(quad.side | ((int) quad.verts[0].vec.getSide(quad.side)) << 3, quad); - } - - quads.clear(); - for (Integer key : map.keySet()) { - Collection plane = map.get(key); - if (plane.size() == 1) { - quads.add(plane.iterator().next()); - continue; - } - - int side = key & 7; - Rectangle4i rect = null; - for (QBQuad q : plane) { - if (rect == null) { - rect = q.flatten(); - } else { - rect.include(q.flatten()); - } - } - - QBImage img = new QBImage(); - img.data = new int[rect.w][rect.h]; - for (QBQuad q : plane) { - QBImage from = q.image; - Rectangle4i r = q.flatten(); - int du = r.x - rect.x; - int dv = r.y - rect.y; - for (int u = 0; u < from.width(); u++) { - for (int v = 0; v < from.height(); v++) { - img.data[du + u][dv + v] = from.data[u][v]; - } - } - } - - quads.add(QBQuad.restore(rect, side, key >> 3, img)); - } - } - - public CCModel buildModel(List quads, BufferedImage img, boolean scaleMC) { - CCModel m = CCModel.quadModel(quads.size() * 4); - int i = 0; - for (QBQuad quad : quads) { - quad.applyImageT(); - m.verts[i++] = quad.verts[0]; - m.verts[i++] = quad.verts[1]; - m.verts[i++] = quad.verts[2]; - m.verts[i++] = quad.verts[3]; - } - m.apply(new UVScale(1D / img.getWidth(), 1D / img.getHeight())); - m.apply(new Translation(pos.x, pos.y, pos.z)); - if (scaleMC) { - m.apply(new Scale(1 / 16D)); - } - m.computeNormals(); - return m; - } - - private static void addImages(List quads, List images) { - for (QBQuad q : quads) { - QBImage img = q.image; - boolean matched = false; - for (QBImage img2 : images) { - ImageTransform t = img.transformTo(img2); - if (t != null) { - q.t = t; - q.image = img2; - matched = true; - break; - } - } - if (!matched) { - images.add(img); - } - } - } - } - - public static final int TEXTUREPLANES = 1; - public static final int SQUARETEXTURE = 2; - public static final int MERGETEXTURES = 4; - public static final int SCALEMC = 8; - - public static class QBModel { - public QBMatrix[] matrices; - public boolean rightHanded; - - public RasterisedModel toRasterisedModel(int flags) { - List qbImages = new ArrayList(); - List> modelQuads = new ArrayList>(); - List images = new ArrayList(); - - boolean texturePlanes = (flags & TEXTUREPLANES) != 0; - boolean squareTextures = (flags & SQUARETEXTURE) != 0; - boolean mergeTextures = (flags & MERGETEXTURES) != 0; - boolean scaleMC = (flags & SCALEMC) != 0; - - for (QBMatrix mat : matrices) { - List quads = mat.extractQuads(texturePlanes); - modelQuads.add(quads); - QBMatrix.addImages(quads, qbImages); - if (!mergeTextures) { - images.add(ImagePackNode.pack(qbImages, squareTextures).toImage()); - qbImages.clear(); - } - } - - if (mergeTextures) { - images.add(ImagePackNode.pack(qbImages, squareTextures).toImage()); - } - - RasterisedModel m = new RasterisedModel(images); - for (int i = 0; i < matrices.length; i++) { - QBMatrix mat = matrices[i]; - BufferedImage img = images.get(mergeTextures ? 0 : i); - m.add(mat.name, mat.buildModel(modelQuads.get(i), img, scaleMC)); - } - return m; - } - } - - public static class RasterisedModel { - private class Holder { - CCModel m; - int img; - - public Holder(CCModel m, int img) { - this.m = m; - this.img = img; - } - } - - private Map map = new HashMap(); - private List images; - - public RasterisedModel(List images) { - this.images = images; - } - - public void add(String name, CCModel m) { - map.put(name, new Holder(m, Math.min(map.size(), images.size() - 1))); - } - - public CCModel getModel(String key) { - return map.get(key).m; - } - - public TextureAtlasSprite getIcon(String key, TextureMap textureMap) { - int img = map.get(key).img; - String iconName = "QBModel" + hashCode() + "_img"; - TextureAtlasSprite icon = textureMap.getTextureExtry(iconName); - if (icon != null) { - return icon; - } - - return TextureUtils.getTextureSpecial(textureMap, iconName).addTexture(new TextureDataHolder(images.get(img))); - } - - private void exportImg(BufferedImage img, File imgFile) throws IOException { - if (!imgFile.exists()) { - imgFile.createNewFile(); - } - ImageIO.write(img, "PNG", imgFile); - } - - public void export(File objFile, File imgDir) { - try { - if (!objFile.exists()) { - objFile.createNewFile(); - } - if (!imgDir.exists()) { - imgDir.mkdirs(); - } - - Map modelMap = new HashMap(); - for (Map.Entry e : map.entrySet()) { - modelMap.put(e.getKey(), e.getValue().m); - } - - PrintWriter p = new PrintWriter(objFile); - CCModel.exportObj(modelMap, p); - p.close(); - - if (images.size() < map.size()) { - exportImg(images.get(0), new File(imgDir, objFile.getName().replaceAll("(.+)\\..+", "$1.png"))); - } else { - for (Map.Entry e : map.entrySet()) { - exportImg(images.get(e.getValue().img), new File(imgDir, e.getKey() + ".png")); - } - } - - } catch (IOException e) { - throw new RuntimeException(e); - } - } - } - - private static String readAsciiString(DataInputStream din) throws IOException { - byte[] bytes = new byte[din.readByte() & 0xFF]; - din.readFully(bytes); - return new String(bytes, "US-ASCII"); - } - - private static int readTni(DataInputStream din) throws IOException { - return Integer.reverseBytes(din.readInt()); - } - - private static final int CODEFLAG = Integer.reverseBytes(2); - private static final int NEXTSLICEFLAG = Integer.reverseBytes(6); - - public static QBModel loadQB(InputStream input) throws IOException { - DataInputStream din = new DataInputStream(input); - - QBModel m = new QBModel(); - int version = din.readInt(); - int colorFormat = din.readInt(); - m.rightHanded = din.readInt() != 0; - boolean compressed = din.readInt() != 0; - boolean visEncoded = din.readInt() != 0; - - if (visEncoded) { - throw new IllegalArgumentException("Encoded Visiblity States not supported"); - } - - m.matrices = new QBMatrix[readTni(din)]; - for (int i = 0; i < m.matrices.length; i++) { - QBMatrix mat = new QBMatrix(); - m.matrices[i] = mat; - mat.name = readAsciiString(din); - mat.size = new BlockCoord(readTni(din), readTni(din), readTni(din)); - mat.pos = new BlockCoord(readTni(din), readTni(din), readTni(din)); - mat.matrix = new int[mat.size.x][mat.size.y][mat.size.z]; - mat.readMatrix(din, compressed); - if (colorFormat == 1) { - mat.convertBGRAtoRGBA(); - } - } - - return m; - } - - public static QBModel loadQB(ResourceLocation res) { - try { - return loadQB(Minecraft.getMinecraft().getResourceManager().getResource(res).getInputStream()); - } catch (Exception e) { - throw new RuntimeException("failed to load model: " + res, e); - } - } - - public static QBModel loadQB(File file) { - try { - FileInputStream fin = new FileInputStream(file); - try { - return loadQB(fin); - } finally { - fin.close(); - } - } catch (Exception e) { - throw new RuntimeException("failed to load model: " + file.getPath(), e); - } - } -} diff --git a/dependencies/main/java/codechicken/lib/render/RenderUtils.java b/dependencies/main/java/codechicken/lib/render/RenderUtils.java deleted file mode 100644 index 996fb1aca2..0000000000 --- a/dependencies/main/java/codechicken/lib/render/RenderUtils.java +++ /dev/null @@ -1,330 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.vec.Cuboid6; -import codechicken.lib.vec.Rectangle4i; -import codechicken.lib.vec.Vector3; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.WorldRenderer; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.client.shader.Framebuffer; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; -import org.lwjgl.opengl.GL11; - -public class RenderUtils { - - static Vector3[] vectors = new Vector3[8]; - /*static RenderItem uniformRenderItem = new RenderItem() - { - public boolean shouldBob() - { - return false; - } - };*/ - static EntityItem entityItem; - - static { - for (int i = 0; i < vectors.length; i++) { - vectors[i] = new Vector3(); - } - - //uniformRenderItem.setRenderManager(RenderManager.instance); - - entityItem = new EntityItem(null); - entityItem.hoverStart = 0; - } - - public static void renderFluidQuad(Vector3 point1, Vector3 point2, Vector3 point3, Vector3 point4, TextureAtlasSprite icon, double res) { - renderFluidQuad(point2, vectors[0].set(point4).subtract(point1), vectors[1].set(point1).subtract(point2), icon, res); - } - - /** - * Draws a tessellated quadrilateral bottom to top, left to right - * - * @param base The bottom left corner of the quad - * @param wide The bottom of the quad - * @param high The left side of the quad - * @param res Units per icon - */ - public static void renderFluidQuad(Vector3 base, Vector3 wide, Vector3 high, TextureAtlasSprite icon, double res) { - WorldRenderer r = Tessellator.getInstance().getWorldRenderer(); - - double u1 = icon.getMinU(); - double du = icon.getMaxU() - icon.getMinU(); - double v2 = icon.getMaxV(); - double dv = icon.getMaxV() - icon.getMinV(); - - double wlen = wide.mag(); - double hlen = high.mag(); - - double x = 0; - while (x < wlen) { - double rx = wlen - x; - if (rx > res) { - rx = res; - } - - double y = 0; - while (y < hlen) { - double ry = hlen - y; - if (ry > res) { - ry = res; - } - - Vector3 dx1 = vectors[2].set(wide).multiply(x / wlen); - Vector3 dx2 = vectors[3].set(wide).multiply((x + rx) / wlen); - Vector3 dy1 = vectors[4].set(high).multiply(y / hlen); - Vector3 dy2 = vectors[5].set(high).multiply((y + ry) / hlen); - - r.pos(base.x + dx1.x + dy2.x, base.y + dx1.y + dy2.y, base.z + dx1.z + dy2.z).tex(u1, v2 - ry / res * dv).endVertex(); - r.pos(base.x + dx1.x + dy1.x, base.y + dx1.y + dy1.y, base.z + dx1.z + dy1.z).tex(u1, v2).endVertex(); - r.pos(base.x + dx2.x + dy1.x, base.y + dx2.y + dy1.y, base.z + dx2.z + dy1.z).tex(u1 + rx / res * du, v2).endVertex(); - r.pos(base.x + dx2.x + dy2.x, base.y + dx2.y + dy2.y, base.z + dx2.z + dy2.z).tex(u1 + rx / res * du, v2 - ry / res * dv).endVertex(); - - y += ry; - } - - x += rx; - } - } - - public static void translateToWorldCoords(Entity entity, float frame) { - double interpPosX = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * frame; - double interpPosY = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * frame; - double interpPosZ = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * frame; - - GlStateManager.translate(-interpPosX, -interpPosY, -interpPosZ); - } - - public static void drawCuboidOutline(Cuboid6 c) { - WorldRenderer r = CCRenderState.startDrawing(3, DefaultVertexFormats.POSITION); - r.pos(c.min.x, c.min.y, c.min.z).endVertex(); - r.pos(c.max.x, c.min.y, c.min.z).endVertex(); - r.pos(c.max.x, c.min.y, c.max.z).endVertex(); - r.pos(c.min.x, c.min.y, c.max.z).endVertex(); - r.pos(c.min.x, c.min.y, c.min.z).endVertex(); - CCRenderState.draw(); - CCRenderState.startDrawing(3, DefaultVertexFormats.POSITION); - r.pos(c.min.x, c.max.y, c.min.z).endVertex(); - r.pos(c.max.x, c.max.y, c.min.z).endVertex(); - r.pos(c.max.x, c.max.y, c.max.z).endVertex(); - r.pos(c.min.x, c.max.y, c.max.z).endVertex(); - r.pos(c.min.x, c.max.y, c.min.z).endVertex(); - CCRenderState.draw(); - CCRenderState.startDrawing(1, DefaultVertexFormats.POSITION); - r.pos(c.min.x, c.min.y, c.min.z).endVertex(); - r.pos(c.min.x, c.max.y, c.min.z).endVertex(); - r.pos(c.max.x, c.min.y, c.min.z).endVertex(); - r.pos(c.max.x, c.max.y, c.min.z).endVertex(); - r.pos(c.max.x, c.min.y, c.max.z).endVertex(); - r.pos(c.max.x, c.max.y, c.max.z).endVertex(); - r.pos(c.min.x, c.min.y, c.max.z).endVertex(); - r.pos(c.min.x, c.max.y, c.max.z).endVertex(); - CCRenderState.draw(); - } - - public static void renderFluidCuboid(Cuboid6 bound, TextureAtlasSprite tex, double res) { - renderFluidQuad(//bottom - new Vector3(bound.min.x, bound.min.y, bound.min.z), new Vector3(bound.max.x, bound.min.y, bound.min.z), new Vector3(bound.max.x, bound.min.y, bound.max.z), new Vector3(bound.min.x, bound.min.y, bound.max.z), tex, res); - renderFluidQuad(//top - new Vector3(bound.min.x, bound.max.y, bound.min.z), new Vector3(bound.min.x, bound.max.y, bound.max.z), new Vector3(bound.max.x, bound.max.y, bound.max.z), new Vector3(bound.max.x, bound.max.y, bound.min.z), tex, res); - renderFluidQuad(//-x - new Vector3(bound.min.x, bound.max.y, bound.min.z), new Vector3(bound.min.x, bound.min.y, bound.min.z), new Vector3(bound.min.x, bound.min.y, bound.max.z), new Vector3(bound.min.x, bound.max.y, bound.max.z), tex, res); - renderFluidQuad(//+x - new Vector3(bound.max.x, bound.max.y, bound.max.z), new Vector3(bound.max.x, bound.min.y, bound.max.z), new Vector3(bound.max.x, bound.min.y, bound.min.z), new Vector3(bound.max.x, bound.max.y, bound.min.z), tex, res); - renderFluidQuad(//-z - new Vector3(bound.max.x, bound.max.y, bound.min.z), new Vector3(bound.max.x, bound.min.y, bound.min.z), new Vector3(bound.min.x, bound.min.y, bound.min.z), new Vector3(bound.min.x, bound.max.y, bound.min.z), tex, res); - renderFluidQuad(//+z - new Vector3(bound.min.x, bound.max.y, bound.max.z), new Vector3(bound.min.x, bound.min.y, bound.max.z), new Vector3(bound.max.x, bound.min.y, bound.max.z), new Vector3(bound.max.x, bound.max.y, bound.max.z), tex, res); - } - - public static void renderBlockOverlaySide(int x, int y, int z, int side, double tx1, double tx2, double ty1, double ty2) { - double[] points = new double[] { x - 0.009, x + 1.009, y - 0.009, y + 1.009, z - 0.009, z + 1.009 }; - - WorldRenderer r = Tessellator.getInstance().getWorldRenderer(); - switch (side) { - case 0: - r.pos(points[0], points[2], points[4]).tex(tx1, ty1).endVertex(); - r.pos(points[1], points[2], points[4]).tex(tx2, ty1).endVertex(); - r.pos(points[1], points[2], points[5]).tex(tx2, ty2).endVertex(); - r.pos(points[0], points[2], points[5]).tex(tx1, ty2).endVertex(); - break; - case 1: - r.pos(points[1], points[3], points[4]).tex(tx2, ty1).endVertex(); - r.pos(points[0], points[3], points[4]).tex(tx1, ty1).endVertex(); - r.pos(points[0], points[3], points[5]).tex(tx1, ty2).endVertex(); - r.pos(points[1], points[3], points[5]).tex(tx2, ty2).endVertex(); - break; - case 2: - r.pos(points[0], points[3], points[4]).tex(tx2, ty1).endVertex(); - r.pos(points[1], points[3], points[4]).tex(tx1, ty1).endVertex(); - r.pos(points[1], points[2], points[4]).tex(tx1, ty2).endVertex(); - r.pos(points[0], points[2], points[4]).tex(tx2, ty2).endVertex(); - break; - case 3: - r.pos(points[1], points[3], points[5]).tex(tx2, ty1).endVertex(); - r.pos(points[0], points[3], points[5]).tex(tx1, ty1).endVertex(); - r.pos(points[0], points[2], points[5]).tex(tx1, ty2).endVertex(); - r.pos(points[1], points[2], points[5]).tex(tx2, ty2).endVertex(); - break; - case 4: - r.pos(points[0], points[3], points[5]).tex(tx2, ty1).endVertex(); - r.pos(points[0], points[3], points[4]).tex(tx1, ty1).endVertex(); - r.pos(points[0], points[2], points[4]).tex(tx1, ty2).endVertex(); - r.pos(points[0], points[2], points[5]).tex(tx2, ty2).endVertex(); - break; - case 5: - r.pos(points[1], points[3], points[4]).tex(tx2, ty1).endVertex(); - r.pos(points[1], points[3], points[5]).tex(tx1, ty1).endVertex(); - r.pos(points[1], points[2], points[5]).tex(tx1, ty2).endVertex(); - r.pos(points[1], points[2], points[4]).tex(tx2, ty2).endVertex(); - break; - } - } - - public static boolean shouldRenderFluid(FluidStack stack) { - return stack.amount > 0 && stack.getFluid() != null; - } - - /** - * @param stack The fluid stack to render - * @return The icon of the fluid - */ - public static TextureAtlasSprite prepareFluidRender(FluidStack stack, int alpha) { - GlStateManager.disableLighting(); - GlStateManager.enableBlend(); - GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - - Fluid fluid = stack.getFluid(); - CCRenderState.setColour(fluid.getColor(stack) << 8 | alpha); - CCRenderState.changeTexture(TextureMap.locationBlocksTexture); - - String iconName = null; - if (fluid == FluidRegistry.LAVA) { - iconName = "minecraft:blocks/lava_still"; - } else if (fluid == FluidRegistry.WATER) { - iconName = "minecraft:blocks/water_still"; - } - return Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(iconName); - } - - /** - * Re-enables lighting and disables blending. - */ - public static void postFluidRender() { - GlStateManager.enableLighting(); - GlStateManager.disableBlend(); - } - - public static double fluidDensityToAlpha(double density) { - return Math.pow(density, 0.4); - } - - /** - * Renders a fluid within a bounding box. - * If the fluid is a liquid it will render as a normal tank with height equal to density/bound.height. - * If the fluid is a gas, it will render the full box with an alpha equal to density. - * Warning, bound will be mutated if the fluid is a liquid - * - * @param stack The fluid to render. - * @param bound The box within which the fluid is contained. - * @param density The volume of fluid / the capacity of the tank. For gases this determines the alpha, for liquids this determines the height. - * @param res The resolution to render at. - */ - public static void renderFluidCuboid(FluidStack stack, Cuboid6 bound, double density, double res) { - if (!shouldRenderFluid(stack)) { - return; - } - - int alpha = 255; - if (stack.getFluid().isGaseous()) { - alpha = (int) (fluidDensityToAlpha(density) * 255); - } else { - bound.max.y = bound.min.y + (bound.max.y - bound.min.y) * density; - } - - TextureAtlasSprite tex = prepareFluidRender(stack, alpha); - CCRenderState.startDrawing(); - renderFluidCuboid(bound, tex, res); - CCRenderState.draw(); - postFluidRender(); - } - - public static void renderFluidGauge(FluidStack stack, Rectangle4i rect, double density, double res) { - if (!shouldRenderFluid(stack)) { - return; - } - - int alpha = 255; - if (stack.getFluid().isGaseous()) { - alpha = (int) (fluidDensityToAlpha(density) * 255); - } else { - int height = (int) (rect.h * density); - rect.y += rect.h - height; - rect.h = height; - } - - TextureAtlasSprite tex = prepareFluidRender(stack, alpha); - CCRenderState.startDrawing(); - renderFluidQuad(new Vector3(rect.x, rect.y + rect.h, 0), new Vector3(rect.w, 0, 0), new Vector3(0, -rect.h, 0), tex, res); - CCRenderState.draw(); - postFluidRender(); - } - - /** - * Renders items and blocks in the world at 0,0,0 with transformations that size them appropriately - */ - /*public static void renderItemUniform(ItemStack item) { - renderItemUniform(item, 0); - }*/ - - /** - * Renders items and blocks in the world at 0,0,0 with transformations that size them appropriately - * - * @param spin The spin angle of the item around the y axis in degrees - */ - /*public static void renderItemUniform(ItemStack item, double spin) - { - IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(item, ENTITY); - boolean is3D = customRenderer != null && customRenderer.shouldUseRenderHelper(ENTITY, item, BLOCK_3D); - - boolean larger = false; - if (item.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(item.getItem()).getRenderType())) - { - int renderType = Block.getBlockFromItem(item.getItem()).getRenderType(); - larger = !(renderType == 1 || renderType == 19 || renderType == 12 || renderType == 2); - } - else if(is3D) - { - larger = true; - } - - double d = 2; - double d1 = 1/d; - if(larger) - GLStateManager.scale(d, d, d); - - GLStateManager.color(1, 1, 1, 1); - - entityItem.setEntityItemStack(item); - uniformRenderItem.doRender(entityItem, 0, larger ? 0.09 : 0.06, 0, 0, (float)(spin*9/Math.PI)); - - if(larger) - GLStateManager.scale(d1, d1, d1); - }/* - - /** - * Checks if stencil buffer is supported and attempts to enable it if so. - */ - public static boolean checkEnableStencil() { - Framebuffer fb = Minecraft.getMinecraft().getFramebuffer(); - return fb.isStencilEnabled() || fb.enableStencil(); - } -} diff --git a/dependencies/main/java/codechicken/lib/render/ShaderProgram.java b/dependencies/main/java/codechicken/lib/render/ShaderProgram.java deleted file mode 100644 index d70bf23401..0000000000 --- a/dependencies/main/java/codechicken/lib/render/ShaderProgram.java +++ /dev/null @@ -1,125 +0,0 @@ -package codechicken.lib.render; - -import org.lwjgl.opengl.ARBShaderObjects; -import org.lwjgl.opengl.ARBVertexShader; -import org.lwjgl.opengl.GL11; -import org.lwjgl.util.vector.Matrix4f; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; - -import static org.lwjgl.opengl.ARBShaderObjects.*; - -public class ShaderProgram { - int programID; - - public ShaderProgram() { - programID = glCreateProgramObjectARB(); - if (programID == 0) { - throw new RuntimeException("Unable to allocate shader program object."); - } - } - - public void attach(int shaderType, String resource) { - InputStream stream = ShaderProgram.class.getResourceAsStream(resource); - if (stream == null) { - throw new RuntimeException("Unable to locate resource: " + resource); - } - - attach(shaderType, stream); - } - - public void use() { - glUseProgramObjectARB(programID); - } - - public static void restore() { - glUseProgramObjectARB(0); - } - - public void link() { - glLinkProgramARB(programID); - if (glGetObjectParameteriARB(programID, GL_OBJECT_LINK_STATUS_ARB) == GL11.GL_FALSE) { - throw new RuntimeException("Error linking program: " + getInfoLog(programID)); - } - - glValidateProgramARB(programID); - if (glGetObjectParameteriARB(programID, GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) { - throw new RuntimeException("Error validating program: " + getInfoLog(programID)); - } - - use(); - onLink(); - restore(); - } - - public void attach(int shaderType, InputStream stream) { - if (stream == null) { - throw new RuntimeException("Invalid shader inputstream"); - } - - int shaderID = 0; - try { - shaderID = glCreateShaderObjectARB(shaderType); - if (shaderID == 0) { - throw new RuntimeException("Unable to allocate shader object."); - } - - try { - glShaderSourceARB(shaderID, asString(stream)); - } catch (IOException e) { - throw new RuntimeException("Error reading inputstream.", e); - } - - glCompileShaderARB(shaderID); - if (glGetObjectParameteriARB(shaderID, GL_OBJECT_COMPILE_STATUS_ARB) == GL11.GL_FALSE) { - throw new RuntimeException("Error compiling shader: " + getInfoLog(shaderID)); - } - - glAttachObjectARB(programID, shaderID); - } catch (RuntimeException e) { - glDeleteObjectARB(shaderID); - throw e; - } - } - - public static String asString(InputStream stream) throws IOException { - StringBuilder sb = new StringBuilder(); - BufferedReader bin = new BufferedReader(new InputStreamReader(stream)); - String line; - while ((line = bin.readLine()) != null) { - sb.append(line).append('\n'); - } - stream.close(); - return sb.toString(); - } - - private static String getInfoLog(int shaderID) { - return glGetInfoLogARB(shaderID, glGetObjectParameteriARB(shaderID, GL_OBJECT_INFO_LOG_LENGTH_ARB)); - } - - public int getUniformLoc(String name) { - return ARBShaderObjects.glGetUniformLocationARB(programID, name); - } - - public int getAttribLoc(String name) { - return ARBVertexShader.glGetAttribLocationARB(programID, name); - } - - public void uniformTexture(String name, int textureIndex) { - ARBShaderObjects.glUniform1iARB(getUniformLoc(name), textureIndex); - } - - public void onLink() { - - } - - public void glVertexAttributeMat4(int loc, Matrix4f matrix) { - ARBVertexShader.glVertexAttrib4fARB(loc, matrix.m00, matrix.m01, matrix.m02, matrix.m03); - ARBVertexShader.glVertexAttrib4fARB(loc + 1, matrix.m10, matrix.m11, matrix.m12, matrix.m13); - ARBVertexShader.glVertexAttrib4fARB(loc + 2, matrix.m20, matrix.m21, matrix.m22, matrix.m23); - ARBVertexShader.glVertexAttrib4fARB(loc + 3, matrix.m30, matrix.m31, matrix.m32, matrix.m33); - } -} diff --git a/dependencies/main/java/codechicken/lib/render/SpriteSheetManager.java b/dependencies/main/java/codechicken/lib/render/SpriteSheetManager.java deleted file mode 100644 index a6593694d4..0000000000 --- a/dependencies/main/java/codechicken/lib/render/SpriteSheetManager.java +++ /dev/null @@ -1,119 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.render.TextureUtils.IIconRegister; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.ArrayList; -import java.util.HashMap; - -public class SpriteSheetManager { - @SideOnly(Side.CLIENT) - public static class SpriteSheet implements IIconRegister { - private int tilesX; - private int tilesY; - private ArrayList newSprites = new ArrayList(); - private TextureSpecial[] sprites; - private ResourceLocation resource; - private TextureDataHolder texture; - private int spriteWidth; - private int spriteHeight; - - public int atlasIndex; - - private SpriteSheet(int tilesX, int tilesY, ResourceLocation textureFile) { - this.tilesX = tilesX; - this.tilesY = tilesY; - this.resource = textureFile; - sprites = new TextureSpecial[tilesX * tilesY]; - } - - public void requestIndicies(int... indicies) { - for (int i : indicies) { - setupSprite(i); - } - } - - @Override - public void registerIcons(TextureMap textureMap) { - if (TextureUtils.refreshTexture(textureMap, resource.getResourcePath())) { - reloadTexture(); - for (TextureSpecial sprite : sprites) { - if (sprite != null) { - textureMap.setTextureEntry(sprite.getIconName(), sprite); - } - } - } else { - for (int i : newSprites) { - textureMap.setTextureEntry(sprites[i].getIconName(), sprites[i]); - } - } - newSprites.clear(); - } - - public TextureSpecial setupSprite(int i) { - if (sprites[i] == null) { - String name = resource + "_" + i; - sprites[i] = new TextureSpecial(name).baseFromSheet(this, i); - newSprites.add(i); - } - return sprites[i]; - } - - private void reloadTexture() { - texture = TextureUtils.loadTexture(resource); - spriteWidth = texture.width / tilesX; - spriteHeight = texture.height / tilesY; - } - - public TextureAtlasSprite getSprite(int index) { - TextureAtlasSprite i = sprites[index]; - if (i == null) { - throw new IllegalArgumentException("Sprite at index: " + index + " from texture file " + resource + " was not preloaded."); - } - return i; - } - - public TextureDataHolder createSprite(int spriteIndex) { - int sx = spriteIndex % tilesX; - int sy = spriteIndex / tilesX; - TextureDataHolder sprite = new TextureDataHolder(spriteWidth, spriteHeight); - TextureUtils.copySubImg(texture.data, texture.width, sx * spriteWidth, sy * spriteHeight, spriteWidth, spriteHeight, sprite.data, spriteWidth, 0, 0); - return sprite; - } - - public int spriteWidth() { - return spriteWidth; - } - - public int spriteHeight() { - return spriteHeight; - } - - public TextureSpecial bindTextureFX(int i, TextureFX textureFX) { - return setupSprite(i).addTextureFX(textureFX); - } - - public SpriteSheet selfRegister(int atlas) { - TextureUtils.addIconRegister(this); - return this; - } - } - - private static HashMap spriteSheets = new HashMap(); - - public static SpriteSheet getSheet(ResourceLocation resource) { - return getSheet(16, 16, resource); - } - - public static SpriteSheet getSheet(int tilesX, int tilesY, ResourceLocation resource) { - SpriteSheet sheet = spriteSheets.get(resource.toString()); - if (sheet == null) { - spriteSheets.put(resource.toString(), sheet = new SpriteSheet(tilesX, tilesY, resource)); - } - return sheet; - } -} diff --git a/dependencies/main/java/codechicken/lib/render/TextureDataHolder.java b/dependencies/main/java/codechicken/lib/render/TextureDataHolder.java deleted file mode 100644 index 3632787b72..0000000000 --- a/dependencies/main/java/codechicken/lib/render/TextureDataHolder.java +++ /dev/null @@ -1,33 +0,0 @@ -package codechicken.lib.render; - -import java.awt.image.BufferedImage; - -public class TextureDataHolder { - public int width; - public int height; - public int[] data; - - public TextureDataHolder(int width, int height) { - this.width = width; - this.height = height; - data = new int[width * height]; - } - - public TextureDataHolder(int[] data, int width) { - this.data = data; - this.width = width; - height = data.length / width; - } - - public TextureDataHolder(BufferedImage img) { - this(img.getWidth(), img.getHeight()); - img.getRGB(0, 0, width, height, data, 0, width); - } - - public TextureDataHolder copyData() { - int[] copy = new int[data.length]; - System.arraycopy(data, 0, copy, 0, data.length); - data = copy; - return this; - } -} diff --git a/dependencies/main/java/codechicken/lib/render/TextureFX.java b/dependencies/main/java/codechicken/lib/render/TextureFX.java deleted file mode 100644 index b37f93e39e..0000000000 --- a/dependencies/main/java/codechicken/lib/render/TextureFX.java +++ /dev/null @@ -1,59 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.render.SpriteSheetManager.SpriteSheet; -import net.minecraft.client.Minecraft; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class TextureFX { - public int[] imageData; - public int tileSizeBase = 16; - public int tileSizeSquare = 256; - public int tileSizeMask = 15; - public int tileSizeSquareMask = 255; - - public boolean anaglyphEnabled; - public TextureSpecial texture; - - public TextureFX(int spriteIndex, SpriteSheet sheet) { - texture = sheet.bindTextureFX(spriteIndex, this); - } - - public TextureFX(int size, String name) { - texture = new TextureSpecial(name).blank(size).selfRegister().addTextureFX(this); - } - - public TextureFX setAtlas(int index) { - texture.atlasIndex = index; - return this; - } - - public void setup() { - imageData = new int[tileSizeSquare]; - } - - public void onTextureDimensionsUpdate(int width, int height) { - if (width != height) { - throw new IllegalArgumentException("Non-Square textureFX not supported (" + width + ":" + height + ")"); - } - - tileSizeBase = width; - tileSizeSquare = tileSizeBase * tileSizeBase; - tileSizeMask = tileSizeBase - 1; - tileSizeSquareMask = tileSizeSquare - 1; - setup(); - } - - public void update() { - anaglyphEnabled = Minecraft.getMinecraft().gameSettings.anaglyph; - onTick(); - } - - public void onTick() { - } - - public boolean changed() { - return true; - } -} diff --git a/dependencies/main/java/codechicken/lib/render/TextureSpecial.java b/dependencies/main/java/codechicken/lib/render/TextureSpecial.java deleted file mode 100644 index 707fc6361f..0000000000 --- a/dependencies/main/java/codechicken/lib/render/TextureSpecial.java +++ /dev/null @@ -1,190 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.render.SpriteSheetManager.SpriteSheet; -import codechicken.lib.render.TextureUtils.IIconRegister; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.renderer.texture.TextureUtil; -import net.minecraft.client.resources.IResourceManager; -import net.minecraft.client.resources.data.AnimationMetadataSection; -import net.minecraft.client.settings.GameSettings; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.util.ArrayList; - -@SideOnly(Side.CLIENT) -public class TextureSpecial extends TextureAtlasSprite implements IIconRegister { - //sprite sheet fields - private int spriteIndex; - private SpriteSheet spriteSheet; - - //textureFX fields - private TextureFX textureFX; - private int mipmapLevels; - private int rawWidth; - private int rawHeight; - - private int blankSize = -1; - private ArrayList baseTextures; - - private boolean selfRegister; - public int atlasIndex; - - protected TextureSpecial(String par1) { - super(par1); - } - - public TextureSpecial addTexture(TextureDataHolder t) { - if (baseTextures == null) { - baseTextures = new ArrayList(); - } - baseTextures.add(t); - return this; - } - - public TextureSpecial baseFromSheet(SpriteSheet spriteSheet, int spriteIndex) { - this.spriteSheet = spriteSheet; - this.spriteIndex = spriteIndex; - return this; - } - - public TextureSpecial addTextureFX(TextureFX fx) { - textureFX = fx; - return this; - } - - @Override - public void initSprite(int sheetWidth, int sheetHeight, int originX, int originY, boolean rotated) { - super.initSprite(sheetWidth, sheetHeight, originX, originY, rotated); - if (textureFX != null) { - textureFX.onTextureDimensionsUpdate(rawWidth, rawHeight); - } - } - - @Override - public void updateAnimation() { - if (textureFX != null) { - textureFX.update(); - if (textureFX.changed()) { - int[][] mipmaps = new int[mipmapLevels + 1][]; - mipmaps[0] = textureFX.imageData; - //TODO mipmaps = prepareAnisotropicFiltering(mipmaps); - mipmaps = TextureUtil.generateMipmapData(mipmapLevels, width, mipmaps); - TextureUtil.uploadTextureMipmap(mipmaps, width, height, originX, originY, false, false); - } - } - } - - /** - * Copy paste mojang code because it's private, and CCL can't have access transformers or reflection - */ - /*public int[][] prepareAnisotropicFiltering(int[][] mipmaps) { - if (Minecraft.getMinecraft().gameSettings.anisotropicFiltering <= 1) - { - return mipmaps; - } - else - { - int[][] aint1 = new int[mipmaps.length][]; - - for (int k = 0; k < mipmaps.length; ++k) - { - int[] aint2 = mipmaps[k]; - - if (aint2 != null) - { - int[] aint3 = new int[(rawWidth + 16 >> k) * (rawHeight + 16 >> k)]; - System.arraycopy(aint2, 0, aint3, 0, aint2.length); - aint1[k] = TextureUtil.prepareAnisotropicData(aint3, rawWidth >> k, rawHeight >> k, 8 >> k); - } - } - - return aint1; - } - }*/ - @Override - public void loadSprite(BufferedImage[] images, AnimationMetadataSection animationMeta) { - rawWidth = images[0].getWidth(); - rawHeight = images[0].getHeight(); - try { - super.loadSprite(images, null); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Override - public void generateMipmaps(int p_147963_1_) { - super.generateMipmaps(p_147963_1_); - mipmapLevels = p_147963_1_; - } - - @Override - public boolean hasCustomLoader(IResourceManager manager, ResourceLocation location) { - return true; - } - - public void addFrame(int[] data, int width, int height) { - GameSettings settings = Minecraft.getMinecraft().gameSettings; - BufferedImage[] images = new BufferedImage[settings.mipmapLevels + 1]; - images[0] = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); - images[0].setRGB(0, 0, width, height, data, 0, width); - - loadSprite(images, null); - } - - @Override - public boolean load(IResourceManager manager, ResourceLocation location) { - if (baseTextures != null) { - for (TextureDataHolder tex : baseTextures) { - addFrame(tex.data, tex.width, tex.height); - } - } else if (spriteSheet != null) { - TextureDataHolder tex = spriteSheet.createSprite(spriteIndex); - addFrame(tex.data, tex.width, tex.height); - } else if (blankSize > 0) { - addFrame(new int[blankSize * blankSize], blankSize, blankSize); - } - - if (framesTextureData.isEmpty()) { - throw new RuntimeException("No base frame for texture: " + getIconName()); - } - - return false; - } - - @Override - public boolean hasAnimationMetadata() { - return textureFX != null || super.hasAnimationMetadata(); - } - - @Override - public int getFrameCount() { - if (textureFX != null) { - return 1; - } - - return super.getFrameCount(); - } - - public TextureSpecial blank(int size) { - blankSize = size; - return this; - } - - public TextureSpecial selfRegister() { - selfRegister = true; - TextureUtils.addIconRegister(this); - return this; - } - - @Override - public void registerIcons(TextureMap textureMap) { - textureMap.setTextureEntry(getIconName(), this); - } -} diff --git a/dependencies/main/java/codechicken/lib/render/TextureUtils.java b/dependencies/main/java/codechicken/lib/render/TextureUtils.java deleted file mode 100644 index de0362fe2c..0000000000 --- a/dependencies/main/java/codechicken/lib/render/TextureUtils.java +++ /dev/null @@ -1,155 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.colour.Colour; -import codechicken.lib.colour.ColourARGB; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import javax.imageio.ImageIO; -import java.awt.image.BufferedImage; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; - -public class TextureUtils { - public static interface IIconRegister { - public void registerIcons(TextureMap textureMap); - } - - static { - MinecraftForge.EVENT_BUS.register(new TextureUtils()); - } - - private static ArrayList iconRegisters = new ArrayList(); - - public static void addIconRegister(IIconRegister registrar) { - iconRegisters.add(registrar); - } - - @SubscribeEvent - public void textureLoad(TextureStitchEvent.Pre event) { - for (IIconRegister reg : iconRegisters) { - reg.registerIcons(event.map); - } - } - - /** - * @return an array of ARGB pixel data - */ - public static int[] loadTextureData(ResourceLocation resource) { - return loadTexture(resource).data; - } - - public static Colour[] loadTextureColours(ResourceLocation resource) { - int[] idata = loadTextureData(resource); - Colour[] data = new Colour[idata.length]; - for (int i = 0; i < data.length; i++) { - data[i] = new ColourARGB(idata[i]); - } - return data; - } - - public static InputStream getTextureResource(ResourceLocation textureFile) throws IOException { - return Minecraft.getMinecraft().getResourceManager().getResource(textureFile).getInputStream(); - } - - public static BufferedImage loadBufferedImage(ResourceLocation textureFile) { - try { - return loadBufferedImage(getTextureResource(textureFile)); - } catch (Exception e) { - System.err.println("Failed to load texture file: " + textureFile); - e.printStackTrace(); - } - return null; - } - - public static BufferedImage loadBufferedImage(InputStream in) throws IOException { - BufferedImage img = ImageIO.read(in); - in.close(); - return img; - } - - public static void copySubImg(int[] fromTex, int fromWidth, int fromX, int fromY, int width, int height, int[] toTex, int toWidth, int toX, int toY) { - for (int y = 0; y < height; y++) { - for (int x = 0; x < width; x++) { - int fp = (y + fromY) * fromWidth + x + fromX; - int tp = (y + toX) * toWidth + x + toX; - - toTex[tp] = fromTex[fp]; - } - } - } - - public static TextureAtlasSprite getBlankIcon(int size, TextureMap textureMap) { - String s = "blank_" + size; - TextureAtlasSprite icon = textureMap.getTextureExtry(s); - if (icon == null) { - textureMap.setTextureEntry(s, icon = new TextureSpecial(s).blank(size)); - } - - return icon; - } - - public static TextureSpecial getTextureSpecial(TextureMap textureMap, String name) { - if (textureMap.getTextureExtry(name) != null) { - throw new IllegalStateException("Texture: " + name + " is already registered"); - } - - TextureSpecial icon = new TextureSpecial(name); - textureMap.setTextureEntry(name, icon); - return icon; - } - - public static void prepareTexture(int target, int texture, int min_mag_filter, int wrap) { - GL11.glTexParameteri(target, GL11.GL_TEXTURE_MIN_FILTER, min_mag_filter); - GL11.glTexParameteri(target, GL11.GL_TEXTURE_MAG_FILTER, min_mag_filter); - if (target == GL11.GL_TEXTURE_2D) { - GlStateManager.bindTexture(target); - } else { - GL11.glBindTexture(target, texture); - } - - switch (target) { - case GL12.GL_TEXTURE_3D: - GL11.glTexParameteri(target, GL12.GL_TEXTURE_WRAP_R, wrap); - case GL11.GL_TEXTURE_2D: - GL11.glTexParameteri(target, GL11.GL_TEXTURE_WRAP_T, wrap); - case GL11.GL_TEXTURE_1D: - GL11.glTexParameteri(target, GL11.GL_TEXTURE_WRAP_S, wrap); - } - } - - public static TextureDataHolder loadTexture(ResourceLocation resource) { - BufferedImage img = loadBufferedImage(resource); - if (img == null) { - throw new RuntimeException("Texture not found: " + resource); - } - return new TextureDataHolder(img); - } - - /** - * Uses an empty placeholder texture to tell if the map has been reloaded since the last call to refresh texture and the texture with name needs to be reacquired to be valid - */ - public static boolean refreshTexture(TextureMap map, String name) { - if (map.getTextureExtry(name) == null) { - map.setTextureEntry(name, new PlaceholderTexture(name)); - return true; - } - return false; - } - - /*public static IIcon safeIcon(IIcon icon) { - if (icon == null) - icon = ((TextureMap) Minecraft.getMinecraft().getTextureManager().getTexture(TextureMap.locationBlocksTexture)).getAtlasSprite("missingno"); - - return icon; - }*/ -} diff --git a/dependencies/main/java/codechicken/lib/render/Vertex5.java b/dependencies/main/java/codechicken/lib/render/Vertex5.java deleted file mode 100644 index 3363ac5936..0000000000 --- a/dependencies/main/java/codechicken/lib/render/Vertex5.java +++ /dev/null @@ -1,79 +0,0 @@ -package codechicken.lib.render; - -import codechicken.lib.render.uv.UV; -import codechicken.lib.render.uv.UVTransformation; -import codechicken.lib.util.Copyable; -import codechicken.lib.vec.Transformation; -import codechicken.lib.vec.Vector3; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -public class Vertex5 implements Copyable { - public Vector3 vec; - public UV uv; - - public Vertex5() { - this(new Vector3(), new UV()); - } - - public Vertex5(Vector3 vert, UV uv) { - this.vec = vert; - this.uv = uv; - } - - public Vertex5(Vector3 vert, double u, double v) { - this(vert, new UV(u, v)); - } - - public Vertex5(double x, double y, double z, double u, double v) { - this(x, y, z, u, v, 0); - } - - public Vertex5(double x, double y, double z, double u, double v, int tex) { - this(new Vector3(x, y, z), new UV(u, v, tex)); - } - - public Vertex5 set(double x, double y, double z, double u, double v) { - vec.set(x, y, z); - uv.set(u, v); - return this; - } - - public Vertex5 set(double x, double y, double z, double u, double v, int tex) { - vec.set(x, y, z); - uv.set(u, v, tex); - return this; - } - - public Vertex5 set(Vertex5 vert) { - vec.set(vert.vec); - uv.set(vert.uv); - return this; - } - - public Vertex5(Vertex5 vertex5) { - this(vertex5.vec.copy(), vertex5.uv.copy()); - } - - public Vertex5 copy() { - return new Vertex5(this); - } - - public String toString() { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "Vertex: (" + new BigDecimal(vec.x, cont) + ", " + new BigDecimal(vec.y, cont) + ", " + new BigDecimal(vec.z, cont) + ") " + - "(" + new BigDecimal(uv.u, cont) + ", " + new BigDecimal(uv.v, cont) + ") (" + uv.tex + ")"; - } - - public Vertex5 apply(Transformation t) { - vec.apply(t); - return this; - } - - public Vertex5 apply(UVTransformation t) { - uv.apply(t); - return this; - } -} diff --git a/dependencies/main/java/codechicken/lib/render/uv/IconTransformation.java b/dependencies/main/java/codechicken/lib/render/uv/IconTransformation.java deleted file mode 100644 index 721daef13f..0000000000 --- a/dependencies/main/java/codechicken/lib/render/uv/IconTransformation.java +++ /dev/null @@ -1,23 +0,0 @@ -package codechicken.lib.render.uv; - -import codechicken.lib.vec.IrreversibleTransformationException; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - -public class IconTransformation extends UVTransformation { - public TextureAtlasSprite icon; - - public IconTransformation(TextureAtlasSprite icon) { - this.icon = icon; - } - - @Override - public void apply(UV uv) { - uv.u = icon.getInterpolatedU(uv.u * 16); - uv.v = icon.getInterpolatedV(uv.v * 16); - } - - @Override - public UVTransformation inverse() { - throw new IrreversibleTransformationException(this); - } -} diff --git a/dependencies/main/java/codechicken/lib/render/uv/MultiIconTransformation.java b/dependencies/main/java/codechicken/lib/render/uv/MultiIconTransformation.java deleted file mode 100644 index 439d392a66..0000000000 --- a/dependencies/main/java/codechicken/lib/render/uv/MultiIconTransformation.java +++ /dev/null @@ -1,24 +0,0 @@ -package codechicken.lib.render.uv; - -import codechicken.lib.vec.IrreversibleTransformationException; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - -public class MultiIconTransformation extends UVTransformation { - public TextureAtlasSprite[] icons; - - public MultiIconTransformation(TextureAtlasSprite... icons) { - this.icons = icons; - } - - @Override - public void apply(UV uv) { - TextureAtlasSprite icon = icons[uv.tex % icons.length]; - uv.u = icon.getInterpolatedU(uv.u * 16); - uv.v = icon.getInterpolatedV(uv.v * 16); - } - - @Override - public UVTransformation inverse() { - throw new IrreversibleTransformationException(this); - } -} diff --git a/dependencies/main/java/codechicken/lib/render/uv/UV.java b/dependencies/main/java/codechicken/lib/render/uv/UV.java deleted file mode 100644 index d3538931d4..0000000000 --- a/dependencies/main/java/codechicken/lib/render/uv/UV.java +++ /dev/null @@ -1,80 +0,0 @@ -package codechicken.lib.render.uv; - -import codechicken.lib.util.Copyable; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -public class UV implements Copyable { - public double u; - public double v; - public int tex; - - public UV() { - } - - public UV(double u, double v) { - this(u, v, 0); - } - - public UV(double u, double v, int tex) { - this.u = u; - this.v = v; - this.tex = tex; - } - - public UV(UV uv) { - this(uv.u, uv.v, uv.tex); - } - - public UV set(double u, double v, int tex) { - this.u = u; - this.v = v; - this.tex = tex; - return this; - } - - public UV set(double u, double v) { - return set(u, v, tex); - } - - public UV set(UV uv) { - return set(uv.u, uv.v, uv.tex); - } - - public UV copy() { - return new UV(this); - } - - public UV add(UV uv) { - u += uv.u; - v += uv.v; - return this; - } - - public UV multiply(double d) { - u *= d; - v *= d; - return this; - } - - public String toString() { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "UV(" + new BigDecimal(u, cont) + ", " + new BigDecimal(v, cont) + ")"; - } - - public UV apply(UVTransformation t) { - t.apply(this); - return this; - } - - @Override - public boolean equals(Object o) { - if (!(o instanceof UV)) { - return false; - } - UV uv = (UV) o; - return u == uv.u && v == uv.v; - } -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/lib/render/uv/UVRotation.java b/dependencies/main/java/codechicken/lib/render/uv/UVRotation.java deleted file mode 100644 index 20ae698e76..0000000000 --- a/dependencies/main/java/codechicken/lib/render/uv/UVRotation.java +++ /dev/null @@ -1,52 +0,0 @@ -package codechicken.lib.render.uv; - -import codechicken.lib.math.MathHelper; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -public class UVRotation extends UVTransformation { - public double angle; - - /** - * @param angle The angle to rotate counterclockwise in radians - */ - public UVRotation(double angle) { - this.angle = angle; - } - - @Override - public void apply(UV uv) { - double c = MathHelper.cos(angle); - double s = MathHelper.sin(angle); - double u2 = c * uv.u + s * uv.v; - uv.v = -s * uv.u + c * uv.v; - uv.u = u2; - } - - @Override - public UVTransformation inverse() { - return new UVRotation(-angle); - } - - @Override - public UVTransformation merge(UVTransformation next) { - if (next instanceof UVRotation) { - return new UVRotation(angle + ((UVRotation) next).angle); - } - - return null; - } - - @Override - public boolean isRedundant() { - return MathHelper.between(-1E-5, angle, 1E-5); - } - - @Override - public String toString() { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "UVRotation(" + new BigDecimal(angle, cont) + ")"; - } -} diff --git a/dependencies/main/java/codechicken/lib/render/uv/UVScale.java b/dependencies/main/java/codechicken/lib/render/uv/UVScale.java deleted file mode 100644 index db229ec541..0000000000 --- a/dependencies/main/java/codechicken/lib/render/uv/UVScale.java +++ /dev/null @@ -1,36 +0,0 @@ -package codechicken.lib.render.uv; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -public class UVScale extends UVTransformation { - double su; - double sv; - - public UVScale(double scaleu, double scalev) { - su = scaleu; - sv = scalev; - } - - public UVScale(double d) { - this(d, d); - } - - @Override - public void apply(UV uv) { - uv.u *= su; - uv.v *= sv; - } - - @Override - public UVTransformation inverse() { - return new UVScale(1 / su, 1 / sv); - } - - @Override - public String toString() { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "UVScale(" + new BigDecimal(su, cont) + ", " + new BigDecimal(sv, cont) + ")"; - } -} diff --git a/dependencies/main/java/codechicken/lib/render/uv/UVTransformation.java b/dependencies/main/java/codechicken/lib/render/uv/UVTransformation.java deleted file mode 100644 index f7f7b04860..0000000000 --- a/dependencies/main/java/codechicken/lib/render/uv/UVTransformation.java +++ /dev/null @@ -1,36 +0,0 @@ -package codechicken.lib.render.uv; - -import codechicken.lib.render.CCRenderState; -import codechicken.lib.vec.ITransformation; - -/** - * Abstract supertype for any UV transformation - */ -public abstract class UVTransformation extends ITransformation implements CCRenderState.IVertexOperation { - public static final int operationIndex = CCRenderState.registerOperation(); - - public UVTransformation at(UV point) { - return new UVTransformationList(new UVTranslation(-point.u, -point.v), this, new UVTranslation(point.u, point.v)); - } - - public UVTransformationList with(UVTransformation t) { - return new UVTransformationList(this, t); - } - - @Override - public boolean load() { - return !isRedundant(); - } - - @Override - public void operate() { - apply(CCRenderState.vert.uv); - } - - @Override - public int operationID() { - return operationIndex; - } -} - - diff --git a/dependencies/main/java/codechicken/lib/render/uv/UVTransformationList.java b/dependencies/main/java/codechicken/lib/render/uv/UVTransformationList.java deleted file mode 100644 index c7df9d333a..0000000000 --- a/dependencies/main/java/codechicken/lib/render/uv/UVTransformationList.java +++ /dev/null @@ -1,112 +0,0 @@ -package codechicken.lib.render.uv; - -import java.util.ArrayList; -import java.util.Iterator; - -public class UVTransformationList extends UVTransformation { - private ArrayList transformations = new ArrayList(); - - public UVTransformationList(UVTransformation... transforms) { - for (UVTransformation t : transforms) { - if (t instanceof UVTransformationList) { - transformations.addAll(((UVTransformationList) t).transformations); - } else { - transformations.add(t); - } - } - - compact(); - } - - @Override - public void apply(UV uv) { - for (int i = 0; i < transformations.size(); i++) { - transformations.get(i).apply(uv); - } - } - - @Override - public UVTransformationList with(UVTransformation t) { - if (t.isRedundant()) { - return this; - } - - if (t instanceof UVTransformationList) { - transformations.addAll(((UVTransformationList) t).transformations); - } else { - transformations.add(t); - } - - compact(); - return this; - } - - public UVTransformationList prepend(UVTransformation t) { - if (t.isRedundant()) { - return this; - } - - if (t instanceof UVTransformationList) { - transformations.addAll(0, ((UVTransformationList) t).transformations); - } else { - transformations.add(0, t); - } - - compact(); - return this; - } - - private void compact() { - ArrayList newList = new ArrayList(transformations.size()); - Iterator iterator = transformations.iterator(); - UVTransformation prev = null; - while (iterator.hasNext()) { - UVTransformation t = iterator.next(); - if (t.isRedundant()) { - continue; - } - - if (prev != null) { - UVTransformation m = prev.merge(t); - if (m == null) { - newList.add(prev); - } else if (m.isRedundant()) { - t = null; - } else { - t = m; - } - } - prev = t; - } - if (prev != null) { - newList.add(prev); - } - - if (newList.size() < transformations.size()) { - transformations = newList; - } - } - - @Override - public boolean isRedundant() { - return transformations.size() == 0; - } - - @Override - public UVTransformation inverse() { - UVTransformationList rev = new UVTransformationList(); - for (int i = transformations.size() - 1; i >= 0; i--) { - rev.with(transformations.get(i).inverse()); - } - return rev; - } - - @Override - public String toString() { - String s = ""; - for (UVTransformation t : transformations) { - s += "\n" + t.toString(); - } - return s.trim(); - } -} diff --git a/dependencies/main/java/codechicken/lib/render/uv/UVTranslation.java b/dependencies/main/java/codechicken/lib/render/uv/UVTranslation.java deleted file mode 100644 index ac4b6b0ed5..0000000000 --- a/dependencies/main/java/codechicken/lib/render/uv/UVTranslation.java +++ /dev/null @@ -1,54 +0,0 @@ -package codechicken.lib.render.uv; - -import codechicken.lib.math.MathHelper; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -public class UVTranslation extends UVTransformation { - public double du; - public double dv; - - public UVTranslation(double u, double v) { - du = u; - dv = v; - } - - @Override - public void apply(UV uv) { - uv.u += du; - uv.v += dv; - } - - @Override - public UVTransformation at(UV point) { - return this; - } - - @Override - public UVTransformation inverse() { - return new UVTranslation(-du, -dv); - } - - @Override - public UVTransformation merge(UVTransformation next) { - if (next instanceof UVTranslation) { - UVTranslation t = (UVTranslation) next; - return new UVTranslation(du + t.du, dv + t.dv); - } - - return null; - } - - @Override - public boolean isRedundant() { - return MathHelper.between(-1E-5, du, 1E-5) && MathHelper.between(-1E-5, dv, 1E-5); - } - - @Override - public String toString() { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "UVTranslation(" + new BigDecimal(du, cont) + ", " + new BigDecimal(dv, cont) + ")"; - } -} diff --git a/dependencies/main/java/codechicken/lib/tool/LibDownloader.java b/dependencies/main/java/codechicken/lib/tool/LibDownloader.java deleted file mode 100644 index b0c2d7f66b..0000000000 --- a/dependencies/main/java/codechicken/lib/tool/LibDownloader.java +++ /dev/null @@ -1,110 +0,0 @@ -package codechicken.lib.tool; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.lang.reflect.Method; -import java.net.URL; -import java.net.URLClassLoader; -import java.net.URLConnection; -import java.nio.ByteBuffer; -import java.util.LinkedList; -import java.util.List; - -public class LibDownloader { - private static String[] libs = new String[] { "org/ow2/asm/asm-debug-all/5.0.3/asm-debug-all-5.0.3.jar", "com/google/guava/guava/14.0/guava-14.0.jar", "net/sf/jopt-simple/jopt-simple/4.5/jopt-simple-4.5.jar", "org/apache/logging/log4j/log4j-core/2.0-beta9/log4j-core-2.0-beta9.jar", "org/apache/logging/log4j/log4j-api/2.0-beta9/log4j-api-2.0-beta9.jar" }; - private static File libDir = new File("lib"); - - private static ByteBuffer downloadBuffer = ByteBuffer.allocateDirect(1 << 23); - - public static void load() { - if (!libDir.exists()) { - libDir.mkdir(); - } - if (!libDir.isDirectory()) { - throw new RuntimeException("/lib is not a directory"); - } - - List missing = checkExists(); - for (String lib : missing) { - download(lib); - } - addPaths(libs); - } - - private static void addPaths(String[] libs) { - try { - URLClassLoader cl = (URLClassLoader) ClassLoader.getSystemClassLoader(); - Method m_addURL = URLClassLoader.class.getDeclaredMethod("addURL", new Class[] { URL.class }); - m_addURL.setAccessible(true); - for (String lib : libs) { - m_addURL.invoke(cl, new File(libDir, fileName(lib)).toURI().toURL()); - } - } catch (Exception e) { - throw new RuntimeException("Failed to add libraries to classpath", e); - } - } - - private static void download(String lib) { - File libFile = new File(libDir, fileName(lib)); - try { - URL libDownload = new URL("http://repo1.maven.org/maven2/" + lib); - URLConnection connection = libDownload.openConnection(); - connection.setConnectTimeout(5000); - connection.setReadTimeout(5000); - connection.setRequestProperty("User-Agent", "CodeChickenLib Downloader"); - int sizeGuess = connection.getContentLength(); - download(connection.getInputStream(), sizeGuess, libFile); - } catch (Exception e) { - libFile.delete(); - throw new RuntimeException("A download error occured", e); - } - } - - private static void download(InputStream is, int sizeGuess, File target) throws Exception { - String name = target.getName(); - if (sizeGuess > downloadBuffer.capacity()) { - throw new Exception(String.format("The file %s is too large to be downloaded", name)); - } - - downloadBuffer.clear(); - - int bytesRead, fullLength = 0; - - System.out.format("Downloading lib %s", name); - byte[] smallBuffer = new byte[1024]; - while ((bytesRead = is.read(smallBuffer)) >= 0) { - downloadBuffer.put(smallBuffer, 0, bytesRead); - fullLength += bytesRead; - System.out.format("\rDownloading lib %s %d%%", name, (int) (fullLength * 100 / sizeGuess)); - } - System.out.format("\rDownloaded lib %s \n", name); - is.close(); - downloadBuffer.limit(fullLength); - - if (!target.exists()) { - target.createNewFile(); - } - - downloadBuffer.position(0); - FileOutputStream fos = new FileOutputStream(target); - fos.getChannel().write(downloadBuffer); - fos.close(); - } - - private static String fileName(String lib) { - return lib.replaceAll(".+/", ""); - } - - private static List checkExists() { - LinkedList list = new LinkedList(); - for (String lib : libs) { - File file = new File(libDir, fileName(lib)); - if (!file.exists()) { - list.add(lib); - } - } - return list; - } - -} diff --git a/dependencies/main/java/codechicken/lib/tool/MCStripTransformer.java b/dependencies/main/java/codechicken/lib/tool/MCStripTransformer.java deleted file mode 100644 index 9ad3f79178..0000000000 --- a/dependencies/main/java/codechicken/lib/tool/MCStripTransformer.java +++ /dev/null @@ -1,47 +0,0 @@ -package codechicken.lib.tool; - -import codechicken.lib.asm.ASMHelper; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.commons.Remapper; -import org.objectweb.asm.commons.RemappingMethodAdapter; -import org.objectweb.asm.tree.ClassNode; -import org.objectweb.asm.tree.MethodNode; - -import java.util.Iterator; - -public class MCStripTransformer { - public static class ReferenceDetector extends Remapper { - boolean found = false; - - @Override - public String map(String typeName) { - if (typeName.startsWith("net/minecraft") || !typeName.contains("/")) { - found = true; - } - return typeName; - } - } - - public static byte[] transform(byte[] bytes) { - ClassNode cnode = ASMHelper.createClassNode(bytes, ClassReader.EXPAND_FRAMES); - - boolean changed = false; - Iterator it = cnode.methods.iterator(); - while (it.hasNext()) { - MethodNode mnode = it.next(); - ReferenceDetector r = new ReferenceDetector(); - mnode.accept(new RemappingMethodAdapter(mnode.access, mnode.desc, new MethodVisitor(Opcodes.ASM4) { - }, r)); - if (r.found) { - it.remove(); - changed = true; - } - } - if (changed) { - bytes = ASMHelper.createBytes(cnode, 0); - } - return bytes; - } -} diff --git a/dependencies/main/java/codechicken/lib/tool/Main.java b/dependencies/main/java/codechicken/lib/tool/Main.java deleted file mode 100644 index e5d44ba6dc..0000000000 --- a/dependencies/main/java/codechicken/lib/tool/Main.java +++ /dev/null @@ -1,13 +0,0 @@ -package codechicken.lib.tool; - -public class Main { - public static void main(String[] args) { - LibDownloader.load(); - try { - Class c_toolMain = new StripClassLoader().loadClass("codechicken.lib.tool.ToolMain"); - c_toolMain.getDeclaredMethod("main", String[].class).invoke(null, new Object[] { args }); - } catch (Exception e) { - throw new RuntimeException(e); - } - } -} diff --git a/dependencies/main/java/codechicken/lib/tool/StripClassLoader.java b/dependencies/main/java/codechicken/lib/tool/StripClassLoader.java deleted file mode 100644 index 631bb9e3ed..0000000000 --- a/dependencies/main/java/codechicken/lib/tool/StripClassLoader.java +++ /dev/null @@ -1,52 +0,0 @@ -package codechicken.lib.tool; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.net.URLClassLoader; - -public class StripClassLoader extends URLClassLoader { - public StripClassLoader() { - super(new URL[0], StripClassLoader.class.getClassLoader()); - } - - @Override - public Class loadClass(String name) throws ClassNotFoundException { - if (!name.startsWith("codechicken.lib")) { - return super.loadClass(name); - } - - try { - String resName = name.replace('.', '/') + ".class"; - InputStream res = getResourceAsStream(resName); - if (res == null) { - throw new ClassNotFoundException("Could not find resource: " + resName); - } - byte[] bytes = readFully(res); - bytes = transform(bytes); - return defineClass(name, bytes, 0, bytes.length); - - } catch (IOException e) { - throw new ClassNotFoundException(name, e); - } - } - - public static byte[] readFully(InputStream is) throws IOException { - ByteArrayOutputStream buffer = new ByteArrayOutputStream(); - - int read; - byte[] data = new byte[16384]; - while ((read = is.read(data, 0, data.length)) > 0) { - buffer.write(data, 0, read); - } - - return buffer.toByteArray(); - } - - private byte[] transform(byte[] bytes) { - - bytes = MCStripTransformer.transform(bytes); - return bytes; - } -} diff --git a/dependencies/main/java/codechicken/lib/tool/ToolMain.java b/dependencies/main/java/codechicken/lib/tool/ToolMain.java deleted file mode 100644 index 81644989b5..0000000000 --- a/dependencies/main/java/codechicken/lib/tool/ToolMain.java +++ /dev/null @@ -1,46 +0,0 @@ -package codechicken.lib.tool; - -import codechicken.lib.tool.module.ModuleQBConverter; - -public class ToolMain { - public static interface Module { - public void main(String[] args); - - public String name(); - - public void printHelp(); - } - - public static Module[] modules = new Module[] { new ModuleQBConverter() }; - - private static void printHelp() { - System.out.println("Usage: [module] [args]"); - System.out.println(" Modules: "); - for (Module m : modules) { - System.out.println(" - " + m.name()); - } - System.out.println("-h [module] for module help"); - } - - public static void main(String[] args) { - if (args.length > 0) { - for (Module m : modules) { - if (args[0].equals(m.name())) { - String[] args2 = new String[args.length - 1]; - System.arraycopy(args, 1, args2, 0, args2.length); - m.main(args2); - return; - } - } - if (args[0].equals("-h") && args.length >= 2) { - for (Module m : modules) { - if (args[1].equals(m.name())) { - m.printHelp(); - return; - } - } - } - } - printHelp(); - } -} diff --git a/dependencies/main/java/codechicken/lib/tool/module/JOptModule.java b/dependencies/main/java/codechicken/lib/tool/module/JOptModule.java deleted file mode 100644 index 83e84d7815..0000000000 --- a/dependencies/main/java/codechicken/lib/tool/module/JOptModule.java +++ /dev/null @@ -1,41 +0,0 @@ -package codechicken.lib.tool.module; - -import codechicken.lib.tool.ToolMain; -import joptsimple.OptionException; -import joptsimple.OptionParser; -import joptsimple.OptionSet; - -import java.io.IOException; - -public abstract class JOptModule implements ToolMain.Module { - OptionParser parser = new OptionParser(); - - @Override - public void main(String[] args) { - OptionSet options; - try { - options = parser.parse(args); - } catch (OptionException ex) { - System.err.println(ex.getLocalizedMessage()); - System.exit(-1); - return; - } - - try { - main(parser, options); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - protected abstract void main(OptionParser parser, OptionSet options); - - @Override - public void printHelp() { - try { - parser.printHelpOn(System.out); - } catch (IOException e) { - e.printStackTrace(); - } - } -} diff --git a/dependencies/main/java/codechicken/lib/tool/module/ModuleQBConverter.java b/dependencies/main/java/codechicken/lib/tool/module/ModuleQBConverter.java deleted file mode 100644 index 3abfc90f9f..0000000000 --- a/dependencies/main/java/codechicken/lib/tool/module/ModuleQBConverter.java +++ /dev/null @@ -1,81 +0,0 @@ -package codechicken.lib.tool.module; - -import codechicken.lib.render.QBImporter; -import joptsimple.OptionParser; -import joptsimple.OptionSet; - -import java.io.File; - -import static java.util.Arrays.asList; - -public class ModuleQBConverter extends JOptModule { - public ModuleQBConverter() { - parser.acceptsAll(asList("?", "h", "help"), "Show the help"); - parser.acceptsAll(asList("i", "input"), "comma separated list of paths to models (.qb or directories)").withRequiredArg().ofType(File.class).withValuesSeparatedBy(',').required(); - parser.acceptsAll(asList("o", "out"), "Output Directory").withRequiredArg().ofType(File.class); - parser.acceptsAll(asList("o2", "textureplanes"), "2nd level optimisation. Merges coplanar polygons. Increases texture size"); - parser.acceptsAll(asList("s", "squaretextures"), "Produce square textures"); - parser.acceptsAll(asList("t", "mergetextures"), "Use the same texture for all models"); - parser.acceptsAll(asList("r", "scalemc"), "Resize model to mc standard (shrink by factor of 16)"); - } - - protected void main(OptionParser parser, OptionSet options) { - int flags = 0; - if (options.has("o2")) { - flags |= QBImporter.TEXTUREPLANES; - } - if (options.has("s")) { - flags |= QBImporter.SQUARETEXTURE; - } - if (options.has("t")) { - flags |= QBImporter.MERGETEXTURES; - } - if (options.has("r")) { - flags |= QBImporter.SCALEMC; - } - - File[] input = options.valuesOf("input").toArray(new File[0]); - File[] outDir = new File[input.length]; - if (options.has("out")) { - File output = (File) options.valueOf("out"); - if (output.isFile()) { - throw new RuntimeException("Output Path is not a directory"); - } - if (!output.exists()) { - output.mkdirs(); - } - - for (int i = 0; i < input.length; i++) { - outDir[i] = output; - } - } else { - for (int i = 0; i < input.length; i++) { - outDir[i] = input[i].isDirectory() ? input[i] : input[i].getParentFile(); - } - } - - for (int i = 0; i < input.length; i++) { - File file = input[i]; - if (file.isDirectory()) { - for (File file2 : file.listFiles()) { - if (file2.getName().endsWith(".qb")) { - convert(file2, outDir[i], flags); - } - } - } else { - convert(file, outDir[i], flags); - } - } - } - - private void convert(File in, File outDir, int flags) { - System.out.println("Converting: " + in.getName()); - QBImporter.RasterisedModel m = QBImporter.loadQB(in).toRasterisedModel(flags); - m.export(new File(outDir, in.getName().replace(".qb", ".obj")), outDir); - } - - @Override - public String name() { - return "QBConverter"; - } -} diff --git a/dependencies/main/java/codechicken/lib/util/Copyable.java b/dependencies/main/java/codechicken/lib/util/Copyable.java deleted file mode 100644 index 2f78c3929a..0000000000 --- a/dependencies/main/java/codechicken/lib/util/Copyable.java +++ /dev/null @@ -1,5 +0,0 @@ -package codechicken.lib.util; - -public interface Copyable { - public T copy(); -} diff --git a/dependencies/main/java/codechicken/lib/util/LangProxy.java b/dependencies/main/java/codechicken/lib/util/LangProxy.java deleted file mode 100644 index a29cf8cf53..0000000000 --- a/dependencies/main/java/codechicken/lib/util/LangProxy.java +++ /dev/null @@ -1,19 +0,0 @@ -package codechicken.lib.util; - -import net.minecraft.util.StatCollector; - -public class LangProxy { - public final String namespace; - - public LangProxy(String namespace) { - this.namespace = namespace + "."; - } - - public String translate(String key) { - return StatCollector.translateToLocal(namespace + key); - } - - public String format(String key, Object... params) { - return StatCollector.translateToLocalFormatted(namespace + key, params); - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/AxisCycle.java b/dependencies/main/java/codechicken/lib/vec/AxisCycle.java deleted file mode 100644 index 585e36d177..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/AxisCycle.java +++ /dev/null @@ -1,35 +0,0 @@ -package codechicken.lib.vec; - -public class AxisCycle { - public static Transformation[] cycles = new Transformation[] { new RedundantTransformation(), new VariableTransformation(new Matrix4(0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1)) { - @Override - public void apply(Vector3 vec) { - double d0 = vec.x; - double d1 = vec.y; - double d2 = vec.z; - vec.x = d2; - vec.y = d0; - vec.z = d1; - } - - @Override - public Transformation inverse() { - return cycles[2]; - } - }, new VariableTransformation(new Matrix4(0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1)) { - @Override - public void apply(Vector3 vec) { - double d0 = vec.x; - double d1 = vec.y; - double d2 = vec.z; - vec.x = d1; - vec.y = d2; - vec.z = d0; - } - - @Override - public Transformation inverse() { - return cycles[1]; - } - } }; -} diff --git a/dependencies/main/java/codechicken/lib/vec/BlockCoord.java b/dependencies/main/java/codechicken/lib/vec/BlockCoord.java deleted file mode 100644 index 0d6598ea3d..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/BlockCoord.java +++ /dev/null @@ -1,254 +0,0 @@ -package codechicken.lib.vec; - -import codechicken.lib.math.MathHelper; -import codechicken.lib.util.Copyable; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.BlockPos; - -public class BlockCoord implements Comparable, Copyable { - public static final BlockCoord[] sideOffsets = new BlockCoord[] { new BlockCoord(0, -1, 0), new BlockCoord(0, 1, 0), new BlockCoord(0, 0, -1), new BlockCoord(0, 0, 1), new BlockCoord(-1, 0, 0), new BlockCoord(1, 0, 0) }; - - public int x; - public int y; - public int z; - - public BlockCoord(int x, int y, int z) { - this.x = x; - this.y = y; - this.z = z; - } - - public BlockCoord(BlockPos pos) { - this(pos.getX(), pos.getY(), pos.getZ()); - } - - public BlockCoord(Vector3 v) { - this(MathHelper.floor_double(v.x), MathHelper.floor_double(v.y), MathHelper.floor_double(v.z)); - } - - public BlockCoord(TileEntity tile) { - this(tile.getPos()); - } - - public BlockCoord(int[] ia) { - this(ia[0], ia[1], ia[2]); - } - - public BlockCoord() { - } - - /** - * @param ia int[]{y, z, x} - */ - public static BlockCoord fromAxes(int[] ia) { - return new BlockCoord(ia[2], ia[0], ia[1]); - } - - @Override - public boolean equals(Object obj) { - if (!(obj instanceof BlockCoord)) { - return false; - } - BlockCoord o2 = (BlockCoord) obj; - return x == o2.x && y == o2.y && z == o2.z; - } - - @Override - public int hashCode() { - return (x ^ z) * 31 + y; - } - - public int compareTo(BlockCoord o) { - if (x != o.x) { - return x < o.x ? 1 : -1; - } - if (y != o.y) { - return y < o.y ? 1 : -1; - } - if (z != o.z) { - return z < o.z ? 1 : -1; - } - return 0; - } - - public Vector3 toVector3Centered() { - return new Vector3(x + 0.5, y + 0.5, z + 0.5); - } - - public BlockCoord multiply(int i) { - x *= i; - y *= i; - z *= i; - return this; - } - - public double mag() { - return Math.sqrt(x * x + y * y + z * z); - } - - public int mag2() { - return x * x + y * y + z * z; - } - - public boolean isZero() { - return x == 0 && y == 0 && z == 0; - } - - public boolean isAxial() { - return x == 0 ? (y == 0 || z == 0) : (y == 0 && z == 0); - } - - public BlockCoord add(BlockCoord coord2) { - x += coord2.x; - y += coord2.y; - z += coord2.z; - return this; - } - - public BlockCoord add(int i, int j, int k) { - x += i; - y += j; - z += k; - return this; - } - - public BlockCoord sub(BlockCoord coord2) { - x -= coord2.x; - y -= coord2.y; - z -= coord2.z; - return this; - } - - public BlockCoord sub(int i, int j, int k) { - x -= i; - y -= j; - z -= k; - return this; - } - - public BlockCoord offset(int side) { - return offset(side, 1); - } - - public BlockCoord offset(int side, int amount) { - BlockCoord offset = sideOffsets[side]; - x += offset.x * amount; - y += offset.y * amount; - z += offset.z * amount; - return this; - } - - public BlockCoord inset(int side) { - return inset(side, 1); - } - - public BlockCoord inset(int side, int amount) { - return offset(side, -amount); - } - - public int getSide(int side) { - switch (side) { - case 0: - case 1: - return y; - case 2: - case 3: - return z; - case 4: - case 5: - return x; - } - throw new IndexOutOfBoundsException("Switch Falloff"); - } - - public BlockCoord setSide(int s, int v) { - switch (s) { - case 0: - case 1: - y = v; - break; - case 2: - case 3: - z = v; - break; - case 4: - case 5: - x = v; - break; - default: - throw new IndexOutOfBoundsException("Switch Falloff"); - } - return this; - } - - public int[] intArray() { - return new int[] { x, y, z }; - } - - public BlockPos pos() { - return new BlockPos(x, y, z); - } - - public BlockCoord copy() { - return new BlockCoord(x, y, z); - } - - public BlockCoord set(int i, int j, int k) { - x = i; - y = j; - z = k; - return this; - } - - public BlockCoord set(BlockCoord coord) { - return set(coord.x, coord.y, coord.z); - } - - public BlockCoord set(BlockPos pos) { - return set(pos.getX(), pos.getY(), pos.getZ()); - } - - public BlockCoord set(int[] ia) { - return set(ia[0], ia[1], ia[2]); - } - - public BlockCoord set(TileEntity tile) { - return set(tile.getPos()); - } - - public int toSide() { - if (!isAxial()) { - return -1; - } - if (y < 0) { - return 0; - } - if (y > 0) { - return 1; - } - if (z < 0) { - return 2; - } - if (z > 0) { - return 3; - } - if (x < 0) { - return 4; - } - if (x > 0) { - return 5; - } - - return -1; - } - - public int absSum() { - return (x < 0 ? -x : x) + - (y < 0 ? -y : y) + - (z < 0 ? -z : z); - } - - public String toString() { - return "(" + x + ", " + y + ", " + z + ")"; - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/Cuboid6.java b/dependencies/main/java/codechicken/lib/vec/Cuboid6.java deleted file mode 100644 index 7f83e4e3a0..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/Cuboid6.java +++ /dev/null @@ -1,229 +0,0 @@ -package codechicken.lib.vec; - -import codechicken.lib.util.Copyable; -import net.minecraft.block.Block; -import net.minecraft.util.AxisAlignedBB; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -public class Cuboid6 implements Copyable { - public static Cuboid6 full = new Cuboid6(0, 0, 0, 1, 1, 1); - - public Vector3 min; - public Vector3 max; - - public Cuboid6() { - this(new Vector3(), new Vector3()); - } - - public Cuboid6(Vector3 min, Vector3 max) { - this.min = min; - this.max = max; - } - - public Cuboid6(AxisAlignedBB aabb) { - min = new Vector3(aabb.minX, aabb.minY, aabb.minZ); - max = new Vector3(aabb.maxX, aabb.maxY, aabb.maxZ); - } - - public Cuboid6(Cuboid6 cuboid) { - min = cuboid.min.copy(); - max = cuboid.max.copy(); - } - - public Cuboid6(double minx, double miny, double minz, double maxx, double maxy, double maxz) { - min = new Vector3(minx, miny, minz); - max = new Vector3(maxx, maxy, maxz); - } - - public AxisAlignedBB aabb() { - return AxisAlignedBB.fromBounds(min.x, min.y, min.z, max.x, max.y, max.z); - } - - public Cuboid6 copy() { - return new Cuboid6(this); - } - - public Cuboid6 set(Cuboid6 c) { - return set(c.min, c.max); - } - - public Cuboid6 set(Vector3 min, Vector3 max) { - this.min.set(min); - this.max.set(max); - return this; - } - - public Cuboid6 set(double minx, double miny, double minz, double maxx, double maxy, double maxz) { - min.set(minx, miny, minz); - max.set(maxx, maxy, maxz); - return this; - } - - public Cuboid6 add(Vector3 vec) { - min.add(vec); - max.add(vec); - return this; - } - - public Cuboid6 sub(Vector3 vec) { - min.subtract(vec); - max.subtract(vec); - return this; - } - - public Cuboid6 expand(double d) { - return expand(new Vector3(d, d, d)); - } - - public Cuboid6 expand(Vector3 vec) { - min.sub(vec); - max.add(vec); - return this; - } - - public void setBlockBounds(Block block) { - block.setBlockBounds((float) min.x, (float) min.y, (float) min.z, (float) max.x, (float) max.y, (float) max.z); - } - - public boolean intersects(Cuboid6 b) { - return max.x - 1E-5 > b.min.x && - b.max.x - 1E-5 > min.x && - max.y - 1E-5 > b.min.y && - b.max.y - 1E-5 > min.y && - max.z - 1E-5 > b.min.z && - b.max.z - 1E-5 > min.z; - } - - public Cuboid6 offset(Cuboid6 o) { - min.add(o.min); - max.add(o.max); - return this; - } - - public Vector3 center() { - return min.copy().add(max).multiply(0.5); - } - - public static boolean intersects(Cuboid6 a, Cuboid6 b) { - return a != null && b != null && a.intersects(b); - } - - public String toString() { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "Cuboid: (" + new BigDecimal(min.x, cont) + ", " + new BigDecimal(min.y, cont) + ", " + new BigDecimal(min.z, cont) + ") -> (" + - new BigDecimal(max.x, cont) + ", " + new BigDecimal(max.y, cont) + ", " + new BigDecimal(max.z, cont) + ")"; - } - - public Cuboid6 enclose(Vector3 vec) { - if (min.x > vec.x) { - min.x = vec.x; - } - if (min.y > vec.y) { - min.y = vec.y; - } - if (min.z > vec.z) { - min.z = vec.z; - } - if (max.x < vec.x) { - max.x = vec.x; - } - if (max.y < vec.y) { - max.y = vec.y; - } - if (max.z < vec.z) { - max.z = vec.z; - } - return this; - } - - public Cuboid6 enclose(Cuboid6 c) { - if (min.x > c.min.x) { - min.x = c.min.x; - } - if (min.y > c.min.y) { - min.y = c.min.y; - } - if (min.z > c.min.z) { - min.z = c.min.z; - } - if (max.x < c.max.x) { - max.x = c.max.x; - } - if (max.y < c.max.y) { - max.y = c.max.y; - } - if (max.z < c.max.z) { - max.z = c.max.z; - } - return this; - } - - public Cuboid6 apply(Transformation t) { - t.apply(min); - t.apply(max); - double temp; - if (min.x > max.x) { - temp = min.x; - min.x = max.x; - max.x = temp; - } - if (min.y > max.y) { - temp = min.y; - min.y = max.y; - max.y = temp; - } - if (min.z > max.z) { - temp = min.z; - min.z = max.z; - max.z = temp; - } - return this; - } - - public double getSide(int s) { - switch (s) { - case 0: - return min.y; - case 1: - return max.y; - case 2: - return min.z; - case 3: - return max.z; - case 4: - return min.x; - case 5: - return max.x; - } - throw new IndexOutOfBoundsException("Switch Falloff"); - } - - public Cuboid6 setSide(int s, double d) { - switch (s) { - case 0: - min.y = d; - break; - case 1: - max.y = d; - break; - case 2: - min.z = d; - break; - case 3: - max.z = d; - break; - case 4: - min.x = d; - break; - case 5: - max.x = d; - break; - default: - throw new IndexOutOfBoundsException("Switch Falloff"); - } - return this; - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/CuboidCoord.java b/dependencies/main/java/codechicken/lib/vec/CuboidCoord.java deleted file mode 100644 index 577cb37abc..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/CuboidCoord.java +++ /dev/null @@ -1,227 +0,0 @@ -package codechicken.lib.vec; - -import codechicken.lib.util.Copyable; -import net.minecraft.util.AxisAlignedBB; - -import java.util.Iterator; - -public class CuboidCoord implements Iterable, Copyable { - public BlockCoord min; - public BlockCoord max; - - public CuboidCoord() { - min = new BlockCoord(); - max = new BlockCoord(); - } - - public CuboidCoord(BlockCoord min, BlockCoord max) { - this.min = min; - this.max = max; - } - - public CuboidCoord(BlockCoord coord) { - this(coord, coord.copy()); - } - - public CuboidCoord(int[] ia) { - this(ia[0], ia[1], ia[2], ia[3], ia[4], ia[5]); - } - - public CuboidCoord(int x1, int y1, int z1, int x2, int y2, int z2) { - this(new BlockCoord(x1, y1, z1), new BlockCoord(x2, y2, z2)); - } - - public CuboidCoord expand(int amount) { - return expand(amount, amount, amount); - } - - public CuboidCoord expand(int x, int y, int z) { - max.add(x, y, z); - min.sub(x, y, z); - return this; - } - - public CuboidCoord expand(int side, int amount) { - if (side % 2 == 0)//negative side - { - min = min.offset(side, amount); - } else { - max = max.offset(side, amount); - } - return this; - } - - public int size(int s) { - switch (s) { - case 0: - case 1: - return max.y - min.y + 1; - case 2: - case 3: - return max.z - min.z + 1; - case 4: - case 5: - return max.x - min.x + 1; - default: - return 0; - } - } - - public int getSide(int s) { - switch (s) { - case 0: - return min.y; - case 1: - return max.y; - case 2: - return min.z; - case 3: - return max.z; - case 4: - return min.x; - case 5: - return max.x; - } - throw new IndexOutOfBoundsException("Switch Falloff"); - } - - public CuboidCoord setSide(int s, int v) { - switch (s) { - case 0: - min.y = v; - break; - case 1: - max.y = v; - break; - case 2: - min.z = v; - break; - case 3: - max.z = v; - break; - case 4: - min.x = v; - break; - case 5: - max.x = v; - break; - default: - throw new IndexOutOfBoundsException("Switch Falloff"); - } - return this; - } - - public int getVolume() { - return (max.x - min.x + 1) * (max.y - min.y + 1) * (max.z - min.z + 1); - } - - public Vector3 getCenterVec() { - return new Vector3(min.x + (max.x - min.x + 1) / 2D, min.y + (max.y - min.y + 1) / 2D, min.z + (max.z - min.z + 1) / 2D); - } - - public BlockCoord getCenter(BlockCoord store) { - store.set(min.x + (max.x - min.x) / 2, min.y + (max.y - min.y) / 2, min.z + (max.z - min.z) / 2); - return store; - } - - public boolean contains(BlockCoord coord) { - return contains(coord.x, coord.y, coord.z); - } - - public boolean contains(int x, int y, int z) { - return x >= min.x && x <= max.x && y >= min.y && y <= max.y && z >= min.z && z <= max.z; - } - - public int[] intArray() { - return new int[] { min.x, min.y, min.z, max.x, max.y, max.z }; - } - - public CuboidCoord copy() { - return new CuboidCoord(min.copy(), max.copy()); - } - - public Cuboid6 bounds() { - return new Cuboid6(min.x, min.y, min.z, max.x + 1, max.y + 1, max.z + 1); - } - - public AxisAlignedBB toAABB() { - return bounds().aabb(); - } - - public void set(BlockCoord min, BlockCoord max) { - this.min.set(min); - this.max.set(max); - } - - public CuboidCoord set(int x1, int y1, int z1, int x2, int y2, int z2) { - min.set(x1, y1, z1); - max.set(x2, y2, z2); - return this; - } - - public CuboidCoord set(BlockCoord coord) { - min.set(coord); - max.set(coord); - return this; - } - - public CuboidCoord set(int[] ia) { - return set(ia[0], ia[1], ia[2], ia[3], ia[4], ia[5]); - } - - public CuboidCoord include(BlockCoord coord) { - return include(coord.x, coord.y, coord.z); - } - - public CuboidCoord include(int x, int y, int z) { - if (x < min.x) { - min.x = x; - } else if (x > max.x) { - max.x = x; - } - if (y < min.y) { - min.y = y; - } else if (y > max.y) { - max.y = y; - } - if (z < min.z) { - min.z = z; - } else if (z > max.z) { - max.z = z; - } - return this; - } - - public Iterator iterator() { - return new Iterator() { - BlockCoord b = null; - - public boolean hasNext() { - return b == null || !b.equals(max); - } - - public BlockCoord next() { - if (b == null) { - b = min.copy(); - } else { - if (b.z != max.z) { - b.z++; - } else { - b.z = min.z; - if (b.y != max.y) { - b.y++; - } else { - b.y = min.y; - b.x++; - } - } - } - return b.copy(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - }; - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/ITransformation.java b/dependencies/main/java/codechicken/lib/vec/ITransformation.java deleted file mode 100644 index 716c6cc8ad..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/ITransformation.java +++ /dev/null @@ -1,49 +0,0 @@ -package codechicken.lib.vec; - -/** - * Abstract supertype for any VectorN transformation - * - * @param The vector type - * @param The transformation type - */ -public abstract class ITransformation { - /** - * Applies this transformation to vec - */ - public abstract void apply(Vector vec); - - /** - * @param point The point to apply this transformation around - * @return Wraps this transformation in a translation to point and then back from point - */ - public abstract Transformation at(Vector point); - - /** - * Creates a TransformationList composed of this transformation followed by t - * If this is a TransformationList, the transformation will be appended and this returned - */ - public abstract Transformation with(Transformation t); - - /** - * Returns a simplified transformation that performs this, followed by next. If such a transformation does not exist, returns null - */ - public Transformation merge(Transformation next) { - return null; - } - - /** - * Returns true if this transformation is redundant, eg. Scale(1, 1, 1), Translation(0, 0, 0) or Rotation(0, a, b, c) - */ - public boolean isRedundant() { - return false; - } - - public abstract Transformation inverse(); - - /** - * Scala ++ operator - */ - public Transformation $plus$plus(Transformation t) { - return with(t); - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/IrreversibleTransformationException.java b/dependencies/main/java/codechicken/lib/vec/IrreversibleTransformationException.java deleted file mode 100644 index 7cb6361664..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/IrreversibleTransformationException.java +++ /dev/null @@ -1,15 +0,0 @@ -package codechicken.lib.vec; - -@SuppressWarnings("serial") -public class IrreversibleTransformationException extends RuntimeException { - public ITransformation t; - - public IrreversibleTransformationException(ITransformation t) { - this.t = t; - } - - @Override - public String getMessage() { - return "The following transformation is irreversible:\n" + t; - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/Line3.java b/dependencies/main/java/codechicken/lib/vec/Line3.java deleted file mode 100644 index 8891bb92b9..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/Line3.java +++ /dev/null @@ -1,42 +0,0 @@ -package codechicken.lib.vec; - -public class Line3 { - public static final double tol = 0.0001D; - - public Vector3 pt1; - public Vector3 pt2; - - public Line3(Vector3 pt1, Vector3 pt2) { - this.pt1 = pt1; - this.pt2 = pt2; - } - - public Line3() { - this(new Vector3(), new Vector3()); - } - - public static boolean intersection2D(Line3 line1, Line3 line2, Vector3 store) { - // calculate differences - double xD1 = line1.pt2.x - line1.pt1.x; - double zD1 = line1.pt2.z - line1.pt1.z; - double xD2 = line2.pt2.x - line2.pt1.x; - double zD2 = line2.pt2.z - line2.pt1.z; - - double xD3 = line1.pt1.x - line2.pt1.x; - double zD3 = line1.pt1.z - line2.pt1.z; - - double div = zD2 * xD1 - xD2 * zD1; - if (div == 0)//lines are parallel - { - return false; - } - double ua = (xD2 * zD3 - zD2 * xD3) / div; - store.set(line1.pt1.x + ua * xD1, 0, line1.pt1.z + ua * zD1); - - if (store.x >= Math.min(line1.pt1.x, line1.pt2.x) - tol && store.x >= Math.min(line2.pt1.x, line2.pt2.x) - tol && store.z >= Math.min(line1.pt1.z, line1.pt2.z) - tol && store.z >= Math.min(line2.pt1.z, line2.pt2.z) - tol && store.x <= Math.max(line1.pt1.x, line1.pt2.x) + tol && store.x <= Math.max(line2.pt1.x, line2.pt2.x) + tol && store.z <= Math.max(line1.pt1.z, line1.pt2.z) + tol && store.z <= Math.max(line2.pt1.z, line2.pt2.z) + tol) { - return true; - } - - return false; - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/Matrix4.java b/dependencies/main/java/codechicken/lib/vec/Matrix4.java deleted file mode 100644 index 4041399900..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/Matrix4.java +++ /dev/null @@ -1,325 +0,0 @@ -package codechicken.lib.vec; - -import codechicken.lib.util.Copyable; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import org.lwjgl.opengl.GL11; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.DoubleBuffer; - -public class Matrix4 extends Transformation implements Copyable { - private static DoubleBuffer glBuf = ByteBuffer.allocateDirect(16 * 8).order(ByteOrder.nativeOrder()).asDoubleBuffer(); - - //m - public double m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33; - - public Matrix4() { - m00 = m11 = m22 = m33 = 1; - } - - public Matrix4(double d00, double d01, double d02, double d03, double d10, double d11, double d12, double d13, double d20, double d21, double d22, double d23, double d30, double d31, double d32, double d33) { - m00 = d00; - m01 = d01; - m02 = d02; - m03 = d03; - m10 = d10; - m11 = d11; - m12 = d12; - m13 = d13; - m20 = d20; - m21 = d21; - m22 = d22; - m23 = d23; - m30 = d30; - m31 = d31; - m32 = d32; - m33 = d33; - } - - public Matrix4(Matrix4 mat) { - set(mat); - } - - public Matrix4 setIdentity() { - m00 = m11 = m22 = m33 = 1; - m01 = m02 = m03 = m10 = m12 = m13 = m20 = m21 = m23 = m30 = m31 = m32 = 0; - - return this; - } - - public Matrix4 translate(Vector3 vec) { - m03 += m00 * vec.x + m01 * vec.y + m02 * vec.z; - m13 += m10 * vec.x + m11 * vec.y + m12 * vec.z; - m23 += m20 * vec.x + m21 * vec.y + m22 * vec.z; - m33 += m30 * vec.x + m31 * vec.y + m32 * vec.z; - - return this; - } - - public Matrix4 scale(Vector3 vec) { - m00 *= vec.x; - m10 *= vec.x; - m20 *= vec.x; - m30 *= vec.x; - m01 *= vec.y; - m11 *= vec.y; - m21 *= vec.y; - m31 *= vec.y; - m02 *= vec.z; - m12 *= vec.z; - m22 *= vec.z; - m32 *= vec.z; - - return this; - } - - public Matrix4 rotate(double angle, Vector3 axis) { - double c = Math.cos(angle); - double s = Math.sin(angle); - double mc = 1.0f - c; - double xy = axis.x * axis.y; - double yz = axis.y * axis.z; - double xz = axis.x * axis.z; - double xs = axis.x * s; - double ys = axis.y * s; - double zs = axis.z * s; - - double f00 = axis.x * axis.x * mc + c; - double f10 = xy * mc + zs; - double f20 = xz * mc - ys; - - double f01 = xy * mc - zs; - double f11 = axis.y * axis.y * mc + c; - double f21 = yz * mc + xs; - - double f02 = xz * mc + ys; - double f12 = yz * mc - xs; - double f22 = axis.z * axis.z * mc + c; - - double t00 = m00 * f00 + m01 * f10 + m02 * f20; - double t10 = m10 * f00 + m11 * f10 + m12 * f20; - double t20 = m20 * f00 + m21 * f10 + m22 * f20; - double t30 = m30 * f00 + m31 * f10 + m32 * f20; - double t01 = m00 * f01 + m01 * f11 + m02 * f21; - double t11 = m10 * f01 + m11 * f11 + m12 * f21; - double t21 = m20 * f01 + m21 * f11 + m22 * f21; - double t31 = m30 * f01 + m31 * f11 + m32 * f21; - m02 = m00 * f02 + m01 * f12 + m02 * f22; - m12 = m10 * f02 + m11 * f12 + m12 * f22; - m22 = m20 * f02 + m21 * f12 + m22 * f22; - m32 = m30 * f02 + m31 * f12 + m32 * f22; - m00 = t00; - m10 = t10; - m20 = t20; - m30 = t30; - m01 = t01; - m11 = t11; - m21 = t21; - m31 = t31; - - return this; - } - - public Matrix4 rotate(Rotation rotation) { - rotation.apply(this); - return this; - } - - public Matrix4 leftMultiply(Matrix4 mat) { - double n00 = m00 * mat.m00 + m10 * mat.m01 + m20 * mat.m02 + m30 * mat.m03; - double n01 = m01 * mat.m00 + m11 * mat.m01 + m21 * mat.m02 + m31 * mat.m03; - double n02 = m02 * mat.m00 + m12 * mat.m01 + m22 * mat.m02 + m32 * mat.m03; - double n03 = m03 * mat.m00 + m13 * mat.m01 + m23 * mat.m02 + m33 * mat.m03; - double n10 = m00 * mat.m10 + m10 * mat.m11 + m20 * mat.m12 + m30 * mat.m13; - double n11 = m01 * mat.m10 + m11 * mat.m11 + m21 * mat.m12 + m31 * mat.m13; - double n12 = m02 * mat.m10 + m12 * mat.m11 + m22 * mat.m12 + m32 * mat.m13; - double n13 = m03 * mat.m10 + m13 * mat.m11 + m23 * mat.m12 + m33 * mat.m13; - double n20 = m00 * mat.m20 + m10 * mat.m21 + m20 * mat.m22 + m30 * mat.m23; - double n21 = m01 * mat.m20 + m11 * mat.m21 + m21 * mat.m22 + m31 * mat.m23; - double n22 = m02 * mat.m20 + m12 * mat.m21 + m22 * mat.m22 + m32 * mat.m23; - double n23 = m03 * mat.m20 + m13 * mat.m21 + m23 * mat.m22 + m33 * mat.m23; - double n30 = m00 * mat.m30 + m10 * mat.m31 + m20 * mat.m32 + m30 * mat.m33; - double n31 = m01 * mat.m30 + m11 * mat.m31 + m21 * mat.m32 + m31 * mat.m33; - double n32 = m02 * mat.m30 + m12 * mat.m31 + m22 * mat.m32 + m32 * mat.m33; - double n33 = m03 * mat.m30 + m13 * mat.m31 + m23 * mat.m32 + m33 * mat.m33; - - m00 = n00; - m01 = n01; - m02 = n02; - m03 = n03; - m10 = n10; - m11 = n11; - m12 = n12; - m13 = n13; - m20 = n20; - m21 = n21; - m22 = n22; - m23 = n23; - m30 = n30; - m31 = n31; - m32 = n32; - m33 = n33; - - return this; - } - - public Matrix4 multiply(Matrix4 mat) { - double n00 = m00 * mat.m00 + m01 * mat.m10 + m02 * mat.m20 + m03 * mat.m30; - double n01 = m00 * mat.m01 + m01 * mat.m11 + m02 * mat.m21 + m03 * mat.m31; - double n02 = m00 * mat.m02 + m01 * mat.m12 + m02 * mat.m22 + m03 * mat.m32; - double n03 = m00 * mat.m03 + m01 * mat.m13 + m02 * mat.m23 + m03 * mat.m33; - double n10 = m10 * mat.m00 + m11 * mat.m10 + m12 * mat.m20 + m13 * mat.m30; - double n11 = m10 * mat.m01 + m11 * mat.m11 + m12 * mat.m21 + m13 * mat.m31; - double n12 = m10 * mat.m02 + m11 * mat.m12 + m12 * mat.m22 + m13 * mat.m32; - double n13 = m10 * mat.m03 + m11 * mat.m13 + m12 * mat.m23 + m13 * mat.m33; - double n20 = m20 * mat.m00 + m21 * mat.m10 + m22 * mat.m20 + m23 * mat.m30; - double n21 = m20 * mat.m01 + m21 * mat.m11 + m22 * mat.m21 + m23 * mat.m31; - double n22 = m20 * mat.m02 + m21 * mat.m12 + m22 * mat.m22 + m23 * mat.m32; - double n23 = m20 * mat.m03 + m21 * mat.m13 + m22 * mat.m23 + m23 * mat.m33; - double n30 = m30 * mat.m00 + m31 * mat.m10 + m32 * mat.m20 + m33 * mat.m30; - double n31 = m30 * mat.m01 + m31 * mat.m11 + m32 * mat.m21 + m33 * mat.m31; - double n32 = m30 * mat.m02 + m31 * mat.m12 + m32 * mat.m22 + m33 * mat.m32; - double n33 = m30 * mat.m03 + m31 * mat.m13 + m32 * mat.m23 + m33 * mat.m33; - - m00 = n00; - m01 = n01; - m02 = n02; - m03 = n03; - m10 = n10; - m11 = n11; - m12 = n12; - m13 = n13; - m20 = n20; - m21 = n21; - m22 = n22; - m23 = n23; - m30 = n30; - m31 = n31; - m32 = n32; - m33 = n33; - - return this; - } - - public Matrix4 transpose() { - double n00 = m00; - double n10 = m01; - double n20 = m02; - double n30 = m03; - double n01 = m10; - double n11 = m11; - double n21 = m12; - double n31 = m13; - double n02 = m20; - double n12 = m21; - double n22 = m22; - double n32 = m23; - double n03 = m30; - double n13 = m31; - double n23 = m32; - double n33 = m33; - - m00 = n00; - m01 = n01; - m02 = n02; - m03 = n03; - m10 = n10; - m11 = n11; - m12 = n12; - m13 = n13; - m20 = n20; - m21 = n21; - m22 = n22; - m23 = n23; - m30 = n30; - m31 = n31; - m32 = n32; - m33 = n33; - - return this; - } - - public Matrix4 copy() { - return new Matrix4(this); - } - - public Matrix4 set(Matrix4 mat) { - m00 = mat.m00; - m01 = mat.m01; - m02 = mat.m02; - m03 = mat.m03; - m10 = mat.m10; - m11 = mat.m11; - m12 = mat.m12; - m13 = mat.m13; - m20 = mat.m20; - m21 = mat.m21; - m22 = mat.m22; - m23 = mat.m23; - m30 = mat.m30; - m31 = mat.m31; - m32 = mat.m32; - m33 = mat.m33; - - return this; - } - - @Override - public void apply(Matrix4 mat) { - mat.multiply(this); - } - - private void mult3x3(Vector3 vec) { - double x = m00 * vec.x + m01 * vec.y + m02 * vec.z; - double y = m10 * vec.x + m11 * vec.y + m12 * vec.z; - double z = m20 * vec.x + m21 * vec.y + m22 * vec.z; - - vec.x = x; - vec.y = y; - vec.z = z; - } - - @Override - public void apply(Vector3 vec) { - mult3x3(vec); - vec.add(m03, m13, m23); - } - - @Override - public void applyN(Vector3 vec) { - mult3x3(vec); - vec.normalize(); - } - - @Override - public String toString() { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "[" + new BigDecimal(m00, cont) + "," + new BigDecimal(m01, cont) + "," + new BigDecimal(m02, cont) + "," + new BigDecimal(m03, cont) + "]\n" + - "[" + new BigDecimal(m10, cont) + "," + new BigDecimal(m11, cont) + "," + new BigDecimal(m12, cont) + "," + new BigDecimal(m13, cont) + "]\n" + - "[" + new BigDecimal(m20, cont) + "," + new BigDecimal(m21, cont) + "," + new BigDecimal(m22, cont) + "," + new BigDecimal(m23, cont) + "]\n" + - "[" + new BigDecimal(m30, cont) + "," + new BigDecimal(m31, cont) + "," + new BigDecimal(m32, cont) + "," + new BigDecimal(m33, cont) + "]"; - } - - public Matrix4 apply(Transformation t) { - t.apply(this); - return this; - } - - @Override - @SideOnly(Side.CLIENT) - public void glApply() { - glBuf.put(m00).put(m10).put(m20).put(m30).put(m01).put(m11).put(m21).put(m31).put(m02).put(m12).put(m22).put(m32).put(m03).put(m13).put(m23).put(m33); - glBuf.flip(); - GL11.glMultMatrix(glBuf); - } - - @Override - public Transformation inverse() { - throw new IrreversibleTransformationException(this);//Don't waste your cpu with matrix inverses - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/Quat.java b/dependencies/main/java/codechicken/lib/vec/Quat.java deleted file mode 100644 index 94c3d52e04..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/Quat.java +++ /dev/null @@ -1,138 +0,0 @@ -package codechicken.lib.vec; - -import codechicken.lib.math.MathHelper; -import codechicken.lib.util.Copyable; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -public class Quat implements Copyable { - public double x; - public double y; - public double z; - public double s; - - public Quat() { - s = 1; - x = 0; - y = 0; - z = 0; - } - - public Quat(Quat quat) { - x = quat.x; - y = quat.y; - z = quat.z; - s = quat.s; - } - - public Quat(double d, double d1, double d2, double d3) { - x = d1; - y = d2; - z = d3; - s = d; - } - - public Quat set(Quat quat) { - x = quat.x; - y = quat.y; - z = quat.z; - s = quat.s; - - return this; - } - - public Quat set(double d, double d1, double d2, double d3) { - x = d1; - y = d2; - z = d3; - s = d; - - return this; - } - - public static Quat aroundAxis(double ax, double ay, double az, double angle) { - return new Quat().setAroundAxis(ax, ay, az, angle); - } - - public static Quat aroundAxis(Vector3 axis, double angle) { - return aroundAxis(axis.x, axis.y, axis.z, angle); - } - - public Quat setAroundAxis(double ax, double ay, double az, double angle) { - angle *= 0.5; - double d4 = MathHelper.sin(angle); - return set(MathHelper.cos(angle), ax * d4, ay * d4, az * d4); - } - - public Quat setAroundAxis(Vector3 axis, double angle) { - return setAroundAxis(axis.x, axis.y, axis.z, angle); - } - - public Quat multiply(Quat quat) { - double d = s * quat.s - x * quat.x - y * quat.y - z * quat.z; - double d1 = s * quat.x + x * quat.s - y * quat.z + z * quat.y; - double d2 = s * quat.y + x * quat.z + y * quat.s - z * quat.x; - double d3 = s * quat.z - x * quat.y + y * quat.x + z * quat.s; - s = d; - x = d1; - y = d2; - z = d3; - - return this; - } - - public Quat rightMultiply(Quat quat) { - double d = s * quat.s - x * quat.x - y * quat.y - z * quat.z; - double d1 = s * quat.x + x * quat.s + y * quat.z - z * quat.y; - double d2 = s * quat.y - x * quat.z + y * quat.s + z * quat.x; - double d3 = s * quat.z + x * quat.y - y * quat.x + z * quat.s; - s = d; - x = d1; - y = d2; - z = d3; - - return this; - } - - public double mag() { - return Math.sqrt(x * x + y * y + z * z + s * s); - } - - public Quat normalize() { - double d = mag(); - if (d != 0) { - d = 1 / d; - x *= d; - y *= d; - z *= d; - s *= d; - } - - return this; - } - - public Quat copy() { - return new Quat(this); - } - - public void rotate(Vector3 vec) { - double d = -x * vec.x - y * vec.y - z * vec.z; - double d1 = s * vec.x + y * vec.z - z * vec.y; - double d2 = s * vec.y - x * vec.z + z * vec.x; - double d3 = s * vec.z + x * vec.y - y * vec.x; - vec.x = d1 * s - d * x - d2 * z + d3 * y; - vec.y = d2 * s - d * y + d1 * z - d3 * x; - vec.z = d3 * s - d * z - d1 * y + d2 * x; - } - - public String toString() { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "Quat(" + new BigDecimal(s, cont) + ", " + new BigDecimal(x, cont) + ", " + new BigDecimal(y, cont) + ", " + new BigDecimal(z, cont) + ")"; - } - - public Rotation rotation() { - return new Rotation(this); - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/Rectangle4i.java b/dependencies/main/java/codechicken/lib/vec/Rectangle4i.java deleted file mode 100644 index 3c06f59936..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/Rectangle4i.java +++ /dev/null @@ -1,99 +0,0 @@ -package codechicken.lib.vec; - -public class Rectangle4i { - public int x; - public int y; - public int w; - public int h; - - public Rectangle4i() { - } - - public Rectangle4i(int x, int y, int w, int h) { - this.x = x; - this.y = y; - this.w = w; - this.h = h; - } - - public int x1() { - return x; - } - - public int y1() { - return y; - } - - public int x2() { - return x + w - 1; - } - - public int y2() { - return y + h - 1; - } - - public void set(int x, int y, int w, int h) { - this.x = x; - this.y = y; - this.w = w; - this.h = h; - } - - public Rectangle4i offset(int dx, int dy) { - x += dx; - y += dy; - return this; - } - - public Rectangle4i include(int px, int py) { - if (px < x) { - expand(px - x, 0); - } - if (px >= x + w) { - expand(px - x - w + 1, 0); - } - if (py < y) { - expand(0, py - y); - } - if (py >= y + h) { - expand(0, py - y - h + 1); - } - return this; - } - - public Rectangle4i include(Rectangle4i r) { - include(r.x, r.y); - return include(r.x2(), r.y2()); - } - - public Rectangle4i expand(int px, int py) { - if (px > 0) { - w += px; - } else { - x += px; - w -= px; - } - if (py > 0) { - h += py; - } else { - y += py; - h -= py; - } - return this; - } - - public boolean contains(int px, int py) { - return x <= px && px < x + w && y <= py && py < y + h; - } - - public boolean intersects(Rectangle4i r) { - return r.x + r.w > x && - r.x < x + w && - r.y + r.h > y && - r.y < y + h; - } - - public int area() { - return w * h; - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/RedundantTransformation.java b/dependencies/main/java/codechicken/lib/vec/RedundantTransformation.java deleted file mode 100644 index df9f227d63..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/RedundantTransformation.java +++ /dev/null @@ -1,48 +0,0 @@ -package codechicken.lib.vec; - -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class RedundantTransformation extends Transformation { - @Override - public void apply(Vector3 vec) { - } - - @Override - public void apply(Matrix4 mat) { - } - - @Override - public void applyN(Vector3 normal) { - } - - @Override - public Transformation at(Vector3 point) { - return this; - } - - @Override - @SideOnly(Side.CLIENT) - public void glApply() { - } - - @Override - public Transformation inverse() { - return this; - } - - @Override - public Transformation merge(Transformation next) { - return next; - } - - @Override - public boolean isRedundant() { - return true; - } - - @Override - public String toString() { - return "Nothing()"; - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/Rotation.java b/dependencies/main/java/codechicken/lib/vec/Rotation.java deleted file mode 100644 index 88f5ab7512..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/Rotation.java +++ /dev/null @@ -1,280 +0,0 @@ -package codechicken.lib.vec; - -import codechicken.lib.math.MathHelper; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -public class Rotation extends Transformation { - /** - * Clockwise pi/2 about y looking down - */ - public static Transformation[] quarterRotations = new Transformation[] { new RedundantTransformation(), new VariableTransformation(new Matrix4(0, 0, -1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1)) { - @Override - public void apply(Vector3 vec) { - double d1 = vec.x; - double d2 = vec.z; - vec.x = -d2; - vec.z = d1; - } - - @Override - public Transformation inverse() { - return quarterRotations[3]; - } - }, new VariableTransformation(new Matrix4(-1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1)) { - @Override - public void apply(Vector3 vec) { - vec.x = -vec.x; - vec.z = -vec.z; - } - - @Override - public Transformation inverse() { - return this; - } - }, new VariableTransformation(new Matrix4(0, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1)) { - @Override - public void apply(Vector3 vec) { - double d1 = vec.x; - double d2 = vec.z; - vec.x = d2; - vec.z = -d1; - } - - @Override - public Transformation inverse() { - return quarterRotations[1]; - } - } }; - - public static Transformation[] sideRotations = new Transformation[] { new RedundantTransformation(), new VariableTransformation(new Matrix4(1, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1)) { - @Override - public void apply(Vector3 vec) { - vec.y = -vec.y; - vec.z = -vec.z; - } - - @Override - public Transformation inverse() { - return this; - } - }, new VariableTransformation(new Matrix4(1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1)) { - @Override - public void apply(Vector3 vec) { - double d1 = vec.y; - double d2 = vec.z; - vec.y = -d2; - vec.z = d1; - } - - @Override - public Transformation inverse() { - return sideRotations[3]; - } - }, new VariableTransformation(new Matrix4(1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1)) { - @Override - public void apply(Vector3 vec) { - double d1 = vec.y; - double d2 = vec.z; - vec.y = d2; - vec.z = -d1; - } - - @Override - public Transformation inverse() { - return sideRotations[2]; - } - }, new VariableTransformation(new Matrix4(0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)) { - @Override - public void apply(Vector3 vec) { - double d0 = vec.x; - double d1 = vec.y; - vec.x = d1; - vec.y = -d0; - } - - @Override - public Transformation inverse() { - return sideRotations[5]; - } - }, new VariableTransformation(new Matrix4(0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)) { - @Override - public void apply(Vector3 vec) { - double d0 = vec.x; - double d1 = vec.y; - vec.x = -d1; - vec.y = d0; - } - - @Override - public Transformation inverse() { - return sideRotations[4]; - } - } }; - - public static Vector3[] axes = new Vector3[] { new Vector3(0, -1, 0), new Vector3(0, 1, 0), new Vector3(0, 0, -1), new Vector3(0, 0, 1), new Vector3(-1, 0, 0), new Vector3(1, 0, 0) }; - - public static int[] sideRotMap = new int[] { 3, 4, 2, 5, 3, 5, 2, 4, 1, 5, 0, 4, 1, 4, 0, 5, 1, 2, 0, 3, 1, 3, 0, 2 }; - - public static int[] rotSideMap = new int[] { -1, -1, 2, 0, 1, 3, -1, -1, 2, 0, 3, 1, 2, 0, -1, -1, 3, 1, 2, 0, -1, -1, 1, 3, 2, 0, 1, 3, -1, -1, 2, 0, 3, 1, -1, -1 }; - - /** - * Rotate pi/2 * this offset for [side] about y axis before rotating to the side for the rotation indicies to line up - */ - public static int[] sideRotOffsets = new int[] { 0, 2, 2, 0, 1, 3 }; - - public static int rotateSide(int s, int r) { - return sideRotMap[s << 2 | r]; - } - - /** - * Reverse of rotateSide - */ - public static int rotationTo(int s1, int s2) { - if ((s1 & 6) == (s2 & 6)) { - throw new IllegalArgumentException("Faces " + s1 + " and " + s2 + " are opposites"); - } - return rotSideMap[s1 * 6 + s2]; - } - - /** - * @param player The placing player, used for obtaining the look vector - * @param side The side of the block being placed on - * @return The rotation for the face == side^1 - */ - public static int getSidedRotation(EntityPlayer player, int side) { - Vector3 look = new Vector3(player.getLook(1)); - double max = 0; - int maxr = 0; - for (int r = 0; r < 4; r++) { - Vector3 axis = Rotation.axes[rotateSide(side ^ 1, r)]; - double d = look.scalarProject(axis); - if (d > max) { - max = d; - maxr = r; - } - } - return maxr; - } - - /** - * @return The rotation quat for side 0 and rotation 0 to side s with rotation r - */ - public static Transformation sideOrientation(int s, int r) { - return quarterRotations[(r + sideRotOffsets[s]) % 4].with(sideRotations[s]); - } - - /** - * @param entity The placing entity, used for obtaining the look vector - * @return The side towards which the entity is most directly looking. - */ - public static int getSideFromLookAngle(EntityLivingBase entity) { - Vector3 look = new Vector3(entity.getLook(1)); - double max = 0; - int maxs = 0; - for (int s = 0; s < 6; s++) { - double d = look.scalarProject(axes[s]); - if (d > max) { - max = d; - maxs = s; - } - } - return maxs; - } - - public double angle; - public Vector3 axis; - - private Quat quat; - - public Rotation(double angle, Vector3 axis) { - this.angle = angle; - this.axis = axis; - } - - public Rotation(double angle, double x, double y, double z) { - this(angle, new Vector3(x, y, z)); - } - - public Rotation(Quat quat) { - this.quat = quat; - - angle = Math.acos(quat.s) * 2; - if (angle == 0) { - axis = new Vector3(0, 1, 0); - } else { - double sa = Math.sin(angle * 0.5); - axis = new Vector3(quat.x / sa, quat.y / sa, quat.z / sa); - } - } - - @Override - public void apply(Vector3 vec) { - if (quat == null) { - quat = Quat.aroundAxis(axis, angle); - } - - vec.rotate(quat); - } - - @Override - public void applyN(Vector3 normal) { - apply(normal); - } - - @Override - public void apply(Matrix4 mat) { - mat.rotate(angle, axis); - } - - public Quat toQuat() { - if (quat == null) { - quat = Quat.aroundAxis(axis, angle); - } - return quat; - } - - @Override - @SideOnly(Side.CLIENT) - public void glApply() { - GlStateManager.rotate((float) (angle * MathHelper.todeg), (float) axis.x, (float) axis.y, (float) axis.z); - } - - @Override - public Transformation inverse() { - return new Rotation(-angle, axis); - } - - @Override - public Transformation merge(Transformation next) { - if (next instanceof Rotation) { - Rotation r = (Rotation) next; - if (r.axis.equalsT(axis)) { - return new Rotation(angle + r.angle, axis); - } - - return new Rotation(toQuat().copy().multiply(r.toQuat())); - } - - return null; - } - - @Override - public boolean isRedundant() { - return MathHelper.between(-1E-5, angle, 1E-5); - } - - @Override - public String toString() { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "Rotation(" + new BigDecimal(angle, cont) + ", " + new BigDecimal(axis.x, cont) + ", " + - new BigDecimal(axis.y, cont) + ", " + new BigDecimal(axis.z, cont) + ")"; - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/Scale.java b/dependencies/main/java/codechicken/lib/vec/Scale.java deleted file mode 100644 index 8dd77120cb..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/Scale.java +++ /dev/null @@ -1,70 +0,0 @@ -package codechicken.lib.vec; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -public class Scale extends Transformation { - public Vector3 factor; - - public Scale(Vector3 factor) { - this.factor = factor; - } - - public Scale(double factor) { - this(new Vector3(factor, factor, factor)); - } - - public Scale(double x, double y, double z) { - this(new Vector3(x, y, z)); - } - - @Override - public void apply(Vector3 vec) { - vec.multiply(factor); - } - - @Override - public void applyN(Vector3 normal) { - } - - @Override - public void apply(Matrix4 mat) { - mat.scale(factor); - } - - @Override - @SideOnly(Side.CLIENT) - public void glApply() { - GlStateManager.scale(factor.x, factor.y, factor.z); - } - - @Override - public Transformation inverse() { - return new Scale(1 / factor.x, 1 / factor.y, 1 / factor.z); - } - - @Override - public Transformation merge(Transformation next) { - if (next instanceof Scale) { - return new Scale(factor.copy().multiply(((Scale) next).factor)); - } - - return null; - } - - @Override - public boolean isRedundant() { - return factor.equalsT(Vector3.one); - } - - @Override - public String toString() { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "Scale(" + new BigDecimal(factor.x, cont) + ", " + new BigDecimal(factor.y, cont) + ", " + new BigDecimal(factor.z, cont) + ")"; - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/SwapYZ.java b/dependencies/main/java/codechicken/lib/vec/SwapYZ.java deleted file mode 100644 index 0f965e6393..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/SwapYZ.java +++ /dev/null @@ -1,19 +0,0 @@ -package codechicken.lib.vec; - -public class SwapYZ extends VariableTransformation { - public SwapYZ() { - super(new Matrix4(1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1)); - } - - @Override - public void apply(Vector3 vec) { - double vz = vec.z; - vec.z = vec.y; - vec.y = vz; - } - - @Override - public Transformation inverse() { - return this; - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/Transformation.java b/dependencies/main/java/codechicken/lib/vec/Transformation.java deleted file mode 100644 index 37bb02a801..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/Transformation.java +++ /dev/null @@ -1,56 +0,0 @@ -package codechicken.lib.vec; - -import codechicken.lib.render.CCRenderState; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -/** - * Abstract supertype for any 3D vector transformation - */ -public abstract class Transformation extends ITransformation implements CCRenderState.IVertexOperation { - public static final int operationIndex = CCRenderState.registerOperation(); - - /** - * Applies this transformation to a normal (doesn't translate) - * - * @param normal The normal to transform - */ - public abstract void applyN(Vector3 normal); - - /** - * Applies this transformation to a matrix as a multiplication on the right hand side. - * - * @param mat The matrix to combine this transformation with - */ - public abstract void apply(Matrix4 mat); - - public Transformation at(Vector3 point) { - return new TransformationList(new Translation(-point.x, -point.y, -point.z), this, point.translation()); - } - - public TransformationList with(Transformation t) { - return new TransformationList(this, t); - } - - @SideOnly(Side.CLIENT) - public abstract void glApply(); - - @Override - public boolean load() { - CCRenderState.pipeline.addRequirement(CCRenderState.normalAttrib.operationID()); - return !isRedundant(); - } - - @Override - public void operate() { - apply(CCRenderState.vert.vec); - if (CCRenderState.normalAttrib.active) { - applyN(CCRenderState.normal); - } - } - - @Override - public int operationID() { - return operationIndex; - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/TransformationList.java b/dependencies/main/java/codechicken/lib/vec/TransformationList.java deleted file mode 100644 index ec0132f7ce..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/TransformationList.java +++ /dev/null @@ -1,174 +0,0 @@ -package codechicken.lib.vec; - -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.ArrayList; -import java.util.Iterator; - -public class TransformationList extends Transformation { - private ArrayList transformations = new ArrayList(); - private Matrix4 mat; - - public TransformationList(Transformation... transforms) { - for (Transformation t : transforms) { - if (t instanceof TransformationList) { - transformations.addAll(((TransformationList) t).transformations); - } else { - transformations.add(t); - } - } - - compact(); - } - - public Matrix4 compile() { - if (mat == null) { - mat = new Matrix4(); - for (int i = transformations.size() - 1; i >= 0; i--) { - transformations.get(i).apply(mat); - } - } - return mat; - } - - /** - * Returns a global space matrix as opposed to an object space matrix (reverse application order) - * - * @return - */ - public Matrix4 reverseCompile() { - Matrix4 mat = new Matrix4(); - for (Transformation t : transformations) { - t.apply(mat); - } - return mat; - } - - @Override - public void apply(Vector3 vec) { - if (mat != null) { - mat.apply(vec); - } else { - for (int i = 0; i < transformations.size(); i++) { - transformations.get(i).apply(vec); - } - } - } - - @Override - public void applyN(Vector3 normal) { - if (mat != null) { - mat.applyN(normal); - } else { - for (int i = 0; i < transformations.size(); i++) { - transformations.get(i).applyN(normal); - } - } - } - - @Override - public void apply(Matrix4 mat) { - mat.multiply(compile()); - } - - @Override - public TransformationList with(Transformation t) { - if (t.isRedundant()) { - return this; - } - - mat = null;//matrix invalid - if (t instanceof TransformationList) { - transformations.addAll(((TransformationList) t).transformations); - } else { - transformations.add(t); - } - - compact(); - return this; - } - - public TransformationList prepend(Transformation t) { - if (t.isRedundant()) { - return this; - } - - mat = null;//matrix invalid - if (t instanceof TransformationList) { - transformations.addAll(0, ((TransformationList) t).transformations); - } else { - transformations.add(0, t); - } - - compact(); - return this; - } - - private void compact() { - ArrayList newList = new ArrayList(transformations.size()); - Iterator iterator = transformations.iterator(); - Transformation prev = null; - while (iterator.hasNext()) { - Transformation t = iterator.next(); - if (t.isRedundant()) { - continue; - } - - if (prev != null) { - Transformation m = prev.merge(t); - if (m == null) { - newList.add(prev); - } else if (m.isRedundant()) { - t = null; - } else { - t = m; - } - } - prev = t; - } - if (prev != null) { - newList.add(prev); - } - - if (newList.size() < transformations.size()) { - transformations = newList; - mat = null; - } - - if (transformations.size() > 3 && mat == null) { - compile(); - } - } - - @Override - public boolean isRedundant() { - return transformations.size() == 0; - } - - @Override - @SideOnly(Side.CLIENT) - public void glApply() { - for (int i = transformations.size() - 1; i >= 0; i--) { - transformations.get(i).glApply(); - } - } - - @Override - public Transformation inverse() { - TransformationList rev = new TransformationList(); - for (int i = transformations.size() - 1; i >= 0; i--) { - rev.with(transformations.get(i).inverse()); - } - return rev; - } - - @Override - public String toString() { - String s = ""; - for (Transformation t : transformations) { - s += "\n" + t.toString(); - } - return s.trim(); - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/Translation.java b/dependencies/main/java/codechicken/lib/vec/Translation.java deleted file mode 100644 index c74356f47e..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/Translation.java +++ /dev/null @@ -1,71 +0,0 @@ -package codechicken.lib.vec; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -public class Translation extends Transformation { - public Vector3 vec; - - public Translation(Vector3 vec) { - this.vec = vec; - } - - public Translation(double x, double y, double z) { - this(new Vector3(x, y, z)); - } - - @Override - public void apply(Vector3 vec) { - vec.add(this.vec); - } - - @Override - public void applyN(Vector3 normal) { - } - - @Override - public void apply(Matrix4 mat) { - mat.translate(vec); - } - - @Override - public Transformation at(Vector3 point) { - return this; - } - - @Override - @SideOnly(Side.CLIENT) - public void glApply() { - GlStateManager.translate(vec.x, vec.y, vec.z); - } - - @Override - public Transformation inverse() { - return new Translation(-vec.x, -vec.y, -vec.z); - } - - @Override - public Transformation merge(Transformation next) { - if (next instanceof Translation) { - return new Translation(vec.copy().add(((Translation) next).vec)); - } - - return null; - } - - @Override - public boolean isRedundant() { - return vec.equalsT(Vector3.zero); - } - - @Override - public String toString() { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "Translation(" + new BigDecimal(vec.x, cont) + ", " + new BigDecimal(vec.y, cont) + ", " + new BigDecimal(vec.z, cont) + ")"; - } -} diff --git a/dependencies/main/java/codechicken/lib/vec/VariableTransformation.java b/dependencies/main/java/codechicken/lib/vec/VariableTransformation.java deleted file mode 100644 index 333e3ec609..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/VariableTransformation.java +++ /dev/null @@ -1,28 +0,0 @@ -package codechicken.lib.vec; - -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public abstract class VariableTransformation extends Transformation { - public Matrix4 mat; - - public VariableTransformation(Matrix4 mat) { - this.mat = mat; - } - - @Override - public void applyN(Vector3 normal) { - apply(normal); - } - - @Override - public void apply(Matrix4 mat) { - mat.multiply(this.mat); - } - - @Override - @SideOnly(Side.CLIENT) - public void glApply() { - mat.glApply(); - } -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/lib/vec/Vector3.java b/dependencies/main/java/codechicken/lib/vec/Vector3.java deleted file mode 100644 index 68ba3128b0..0000000000 --- a/dependencies/main/java/codechicken/lib/vec/Vector3.java +++ /dev/null @@ -1,471 +0,0 @@ -package codechicken.lib.vec; - -import codechicken.lib.math.MathHelper; -import codechicken.lib.util.Copyable; -import net.minecraft.entity.Entity; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.BlockPos; -import net.minecraft.util.Vec3; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; -import org.lwjgl.opengl.GL11; -import org.lwjgl.util.vector.Vector3f; -import org.lwjgl.util.vector.Vector4f; - -import java.math.BigDecimal; -import java.math.MathContext; -import java.math.RoundingMode; - -public class Vector3 implements Copyable { - public static Vector3 zero = new Vector3(); - public static Vector3 one = new Vector3(1, 1, 1); - public static Vector3 center = new Vector3(0.5, 0.5, 0.5); - - public double x; - public double y; - public double z; - - public Vector3() { - } - - public Vector3(double d, double d1, double d2) { - x = d; - y = d1; - z = d2; - } - - public Vector3(Vector3 vec) { - x = vec.x; - y = vec.y; - z = vec.z; - } - - public Vector3(double[] da) { - this(da[0], da[1], da[2]); - } - - public Vector3(Vec3 vec) { - x = vec.xCoord; - y = vec.yCoord; - z = vec.zCoord; - } - - public Vector3(BlockCoord coord) { - x = coord.x; - y = coord.y; - z = coord.z; - } - - public Vector3(BlockPos pos) { - x = pos.getX(); - y = pos.getY(); - z = pos.getZ(); - } - - public Vector3 copy() { - return new Vector3(this); - } - - public static Vector3 fromEntity(Entity e) { - return new Vector3(e.posX, e.posY, e.posZ); - } - - public static Vector3 fromEntityCenter(Entity e) { - return new Vector3(e.posX, e.posY - e.getYOffset() + e.height / 2, e.posZ); - } - - public static Vector3 fromTile(TileEntity tile) { - return new Vector3(tile.getPos()); - } - - public static Vector3 fromTileCenter(TileEntity tile) { - return fromTile(tile).add(0.5); - } - - public static Vector3 fromAxes(double[] da) { - return new Vector3(da[2], da[0], da[1]); - } - - public Vector3 set(double d, double d1, double d2) { - x = d; - y = d1; - z = d2; - return this; - } - - public Vector3 set(Vector3 vec) { - x = vec.x; - y = vec.y; - z = vec.z; - return this; - } - - public double getSide(int side) { - switch (side) { - case 0: - case 1: - return y; - case 2: - case 3: - return z; - case 4: - case 5: - return x; - } - throw new IndexOutOfBoundsException("Switch Falloff"); - } - - public Vector3 setSide(int s, double v) { - switch (s) { - case 0: - case 1: - y = v; - break; - case 2: - case 3: - z = v; - break; - case 4: - case 5: - x = v; - break; - default: - throw new IndexOutOfBoundsException("Switch Falloff"); - } - return this; - } - - public double dotProduct(Vector3 vec) { - double d = vec.x * x + vec.y * y + vec.z * z; - - if (d > 1 && d < 1.00001) { - d = 1; - } else if (d < -1 && d > -1.00001) { - d = -1; - } - return d; - } - - public double dotProduct(double d, double d1, double d2) { - return d * x + d1 * y + d2 * z; - } - - public Vector3 crossProduct(Vector3 vec) { - double d = y * vec.z - z * vec.y; - double d1 = z * vec.x - x * vec.z; - double d2 = x * vec.y - y * vec.x; - x = d; - y = d1; - z = d2; - return this; - } - - public Vector3 add(double d, double d1, double d2) { - x += d; - y += d1; - z += d2; - return this; - } - - public Vector3 add(Vector3 vec) { - x += vec.x; - y += vec.y; - z += vec.z; - return this; - } - - public Vector3 add(double d) { - return add(d, d, d); - } - - public Vector3 sub(Vector3 vec) { - return subtract(vec); - } - - public Vector3 subtract(Vector3 vec) { - x -= vec.x; - y -= vec.y; - z -= vec.z; - return this; - } - - public Vector3 negate(Vector3 vec) { - x = -x; - y = -y; - z = -z; - return this; - } - - public Vector3 multiply(double d) { - x *= d; - y *= d; - z *= d; - return this; - } - - public Vector3 multiply(Vector3 f) { - x *= f.x; - y *= f.y; - z *= f.z; - return this; - } - - public Vector3 multiply(double fx, double fy, double fz) { - x *= fx; - y *= fy; - z *= fz; - return this; - } - - public double mag() { - return Math.sqrt(x * x + y * y + z * z); - } - - public double magSquared() { - return x * x + y * y + z * z; - } - - public Vector3 normalize() { - double d = mag(); - if (d != 0) { - multiply(1 / d); - } - return this; - } - - public String toString() { - MathContext cont = new MathContext(4, RoundingMode.HALF_UP); - return "Vector3(" + new BigDecimal(x, cont) + ", " + new BigDecimal(y, cont) + ", " + new BigDecimal(z, cont) + ")"; - } - - public Vector3 perpendicular() { - if (z == 0) { - return zCrossProduct(); - } - return xCrossProduct(); - } - - public Vector3 xCrossProduct() { - double d = z; - double d1 = -y; - x = 0; - y = d; - z = d1; - return this; - } - - public Vector3 zCrossProduct() { - double d = y; - double d1 = -x; - x = d; - y = d1; - z = 0; - return this; - } - - public Vector3 yCrossProduct() { - double d = -z; - double d1 = x; - x = d; - y = 0; - z = d1; - return this; - } - - public Vector3 rotate(double angle, Vector3 axis) { - Quat.aroundAxis(axis.copy().normalize(), angle).rotate(this); - return this; - } - - public Vector3 rotate(Quat rotator) { - rotator.rotate(this); - return this; - } - - public Vec3 vec3() { - return new Vec3(x, y, z); - } - - public double angle(Vector3 vec) { - return Math.acos(copy().normalize().dotProduct(vec.copy().normalize())); - } - - public boolean isZero() { - return x == 0 && y == 0 && z == 0; - } - - public boolean isAxial() { - return x == 0 ? (y == 0 || z == 0) : (y == 0 && z == 0); - } - - @SideOnly(Side.CLIENT) - public Vector3f vector3f() { - return new Vector3f((float) x, (float) y, (float) z); - } - - @SideOnly(Side.CLIENT) - public Vector4f vector4f() { - return new Vector4f((float) x, (float) y, (float) z, 1); - } - - @SideOnly(Side.CLIENT) - public void glVertex() { - GL11.glVertex3d(x, y, z); - } - - public Vector3 YZintercept(Vector3 end, double px) { - double dx = end.x - x; - double dy = end.y - y; - double dz = end.z - z; - - if (dx == 0) { - return null; - } - - double d = (px - x) / dx; - if (MathHelper.between(-1E-5, d, 1E-5)) { - return this; - } - - if (!MathHelper.between(0, d, 1)) { - return null; - } - - x = px; - y += d * dy; - z += d * dz; - return this; - } - - public Vector3 XZintercept(Vector3 end, double py) { - double dx = end.x - x; - double dy = end.y - y; - double dz = end.z - z; - - if (dy == 0) { - return null; - } - - double d = (py - y) / dy; - if (MathHelper.between(-1E-5, d, 1E-5)) { - return this; - } - - if (!MathHelper.between(0, d, 1)) { - return null; - } - - x += d * dx; - y = py; - z += d * dz; - return this; - } - - public Vector3 XYintercept(Vector3 end, double pz) { - double dx = end.x - x; - double dy = end.y - y; - double dz = end.z - z; - - if (dz == 0) { - return null; - } - - double d = (pz - z) / dz; - if (MathHelper.between(-1E-5, d, 1E-5)) { - return this; - } - - if (!MathHelper.between(0, d, 1)) { - return null; - } - - x += d * dx; - y += d * dy; - z = pz; - return this; - } - - public Vector3 negate() { - x = -x; - y = -y; - z = -z; - return this; - } - - public Translation translation() { - return new Translation(this); - } - - public double scalarProject(Vector3 b) { - double l = b.mag(); - return l == 0 ? 0 : dotProduct(b) / l; - } - - public Vector3 project(Vector3 b) { - double l = b.magSquared(); - if (l == 0) { - set(0, 0, 0); - return this; - } - double m = dotProduct(b) / l; - set(b).multiply(m); - return this; - } - - @Override - public boolean equals(Object o) { - if (!(o instanceof Vector3)) { - return false; - } - Vector3 v = (Vector3) o; - return x == v.x && y == v.y && z == v.z; - } - - /** - * Equals method with tolerance - * - * @return true if this is equal to v within +-1E-5 - */ - public boolean equalsT(Vector3 v) { - return MathHelper.between(x - 1E-5, v.x, x + 1E-5) && - MathHelper.between(y - 1E-5, v.y, y + 1E-5) && - MathHelper.between(z - 1E-5, v.z, z + 1E-5); - } - - public Vector3 apply(Transformation t) { - t.apply(this); - return this; - } - - public Vector3 $tilde() { - return normalize(); - } - - public Vector3 unary_$tilde() { - return normalize(); - } - - public Vector3 $plus(Vector3 v) { - return add(v); - } - - public Vector3 $minus(Vector3 v) { - return subtract(v); - } - - public Vector3 $times(double d) { - return multiply(d); - } - - public Vector3 $div(double d) { - return multiply(1 / d); - } - - public Vector3 $times(Vector3 v) { - return crossProduct(v); - } - - public double $dot$times(Vector3 v) { - return dotProduct(v); - } -} diff --git a/dependencies/main/java/codechicken/lib/world/ChunkExtension.java b/dependencies/main/java/codechicken/lib/world/ChunkExtension.java deleted file mode 100644 index 6c478ea6fc..0000000000 --- a/dependencies/main/java/codechicken/lib/world/ChunkExtension.java +++ /dev/null @@ -1,72 +0,0 @@ -package codechicken.lib.world; - -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.network.Packet; -import net.minecraft.world.ChunkCoordIntPair; -import net.minecraft.world.chunk.Chunk; - -import java.util.HashSet; - -public abstract class ChunkExtension { - public final Chunk chunk; - public final ChunkCoordIntPair coord; - public final WorldExtension world; - public HashSet watchedPlayers; - - public ChunkExtension(Chunk chunk, WorldExtension world) { - this.chunk = chunk; - coord = chunk.getChunkCoordIntPair(); - this.world = world; - watchedPlayers = new HashSet(); - } - - public void loadData(NBTTagCompound tag) { - } - - public void saveData(NBTTagCompound tag) { - } - - public void load() { - } - - public void unload() { - } - - public final void sendPacketToPlayers(Packet packet) { - for (EntityPlayerMP player : watchedPlayers) { - player.playerNetServerHandler.sendPacket(packet); - } - } - - public final void watchPlayer(EntityPlayerMP player) { - watchedPlayers.add(player); - onWatchPlayer(player); - } - - public void onWatchPlayer(EntityPlayerMP player) { - } - - public final void unwatchPlayer(EntityPlayerMP player) { - watchedPlayers.remove(player); - onUnWatchPlayer(player); - } - - public void onUnWatchPlayer(EntityPlayerMP player) { - } - - public void sendUpdatePackets() { - } - - @Override - public int hashCode() { - return coord.chunkXPos ^ coord.chunkZPos; - } - - @Override - public boolean equals(Object o) { - return (o instanceof ChunkExtension && ((ChunkExtension) o).coord.equals(coord)) || - (o instanceof ChunkCoordIntPair && coord.equals(o)) || - (o instanceof Long && (Long) o == (((long) coord.chunkXPos) << 32 | coord.chunkZPos)); - } -} diff --git a/dependencies/main/java/codechicken/lib/world/IChunkLoadTile.java b/dependencies/main/java/codechicken/lib/world/IChunkLoadTile.java deleted file mode 100644 index 8e53c7692f..0000000000 --- a/dependencies/main/java/codechicken/lib/world/IChunkLoadTile.java +++ /dev/null @@ -1,11 +0,0 @@ -package codechicken.lib.world; - -/** - * Provides a callback for tile entities when a chunk is loaded, as an alternative to validate when the chunk hasn't been added to the world. - * To hook all world join/seperate events. Use this, TileEntity.validate with a worldObj.blockExists check, TileEntity.onChunkUnload and TileEntity.invalidate - * Be sure to call TileChunkLoadHook.init() from your mod during initialisation - * You could easily implement this in your own mod, but providing it here reduces the number of times the chunkTileEntityMap needs to be iterated - */ -public interface IChunkLoadTile { - public void onChunkLoad(); -} diff --git a/dependencies/main/java/codechicken/lib/world/TileChunkLoadHook.java b/dependencies/main/java/codechicken/lib/world/TileChunkLoadHook.java deleted file mode 100644 index 3e48a94bf3..0000000000 --- a/dependencies/main/java/codechicken/lib/world/TileChunkLoadHook.java +++ /dev/null @@ -1,32 +0,0 @@ -package codechicken.lib.world; - -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.world.ChunkEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; - -import java.util.ArrayList; -import java.util.List; - -public class TileChunkLoadHook { - private static boolean init; - - public static void init() { - if (init) { - return; - } - init = true; - - MinecraftForge.EVENT_BUS.register(new TileChunkLoadHook()); - } - - @SubscribeEvent - public void onChunkLoad(ChunkEvent.Load event) { - List list = new ArrayList(event.getChunk().chunkTileEntityMap.values()); - for (TileEntity t : list) { - if (t instanceof IChunkLoadTile) { - ((IChunkLoadTile) t).onChunkLoad(); - } - } - } -} diff --git a/dependencies/main/java/codechicken/lib/world/WorldExtension.java b/dependencies/main/java/codechicken/lib/world/WorldExtension.java deleted file mode 100644 index b84a437f1f..0000000000 --- a/dependencies/main/java/codechicken/lib/world/WorldExtension.java +++ /dev/null @@ -1,84 +0,0 @@ -package codechicken.lib.world; - -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.BlockPos; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; - -import java.util.HashMap; - -public abstract class WorldExtension { - public final World world; - public HashMap chunkMap = new HashMap(); - - public WorldExtension(World world) { - this.world = world; - } - - public void load() { - } - - public void unload() { - } - - public void save() { - } - - public void preTick() { - } - - public void postTick() { - } - - protected final void addChunk(ChunkExtension extension) { - chunkMap.put(extension.chunk, extension); - } - - protected final void loadChunk(Chunk chunk) { - chunkMap.get(chunk).load(); - } - - protected final void unloadChunk(Chunk chunk) { - chunkMap.get(chunk).unload(); - } - - protected final void loadChunkData(Chunk chunk, NBTTagCompound tag) { - chunkMap.get(chunk).loadData(tag); - } - - protected final void saveChunkData(Chunk chunk, NBTTagCompound tag) { - chunkMap.get(chunk).saveData(tag); - } - - protected final void remChunk(Chunk chunk) { - chunkMap.remove(chunk); - } - - protected final void watchChunk(Chunk chunk, EntityPlayerMP player) { - chunkMap.get(chunk).watchPlayer(player); - } - - protected final void unwatchChunk(Chunk chunk, EntityPlayerMP player) { - ChunkExtension extension = chunkMap.get(chunk); - if (extension != null) { - extension.unwatchPlayer(player); - } - } - - protected final void sendChunkUpdates(Chunk chunk) { - chunkMap.get(chunk).sendUpdatePackets(); - } - - public boolean containsChunk(Chunk chunk) { - return chunkMap.containsKey(chunk); - } - - public ChunkExtension getChunkExtension(int chunkXPos, int chunkZPos) { - if (!world.isBlockLoaded(new BlockPos(chunkXPos << 4, 128, chunkZPos << 4))) { - return null; - } - - return chunkMap.get(world.getChunkFromChunkCoords(chunkXPos, chunkZPos)); - } -} diff --git a/dependencies/main/java/codechicken/lib/world/WorldExtensionInstantiator.java b/dependencies/main/java/codechicken/lib/world/WorldExtensionInstantiator.java deleted file mode 100644 index fbd93ead01..0000000000 --- a/dependencies/main/java/codechicken/lib/world/WorldExtensionInstantiator.java +++ /dev/null @@ -1,16 +0,0 @@ -package codechicken.lib.world; - -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; - -public abstract class WorldExtensionInstantiator { - public int instantiatorID; - - public abstract WorldExtension createWorldExtension(World world); - - public abstract ChunkExtension createChunkExtension(Chunk chunk, WorldExtension world); - - public WorldExtension getExtension(World world) { - return WorldExtensionManager.getWorldExtension(world, instantiatorID); - } -} diff --git a/dependencies/main/java/codechicken/lib/world/WorldExtensionManager.java b/dependencies/main/java/codechicken/lib/world/WorldExtensionManager.java deleted file mode 100644 index 585016d81a..0000000000 --- a/dependencies/main/java/codechicken/lib/world/WorldExtensionManager.java +++ /dev/null @@ -1,208 +0,0 @@ -package codechicken.lib.world; - -import net.minecraft.client.Minecraft; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.chunk.EmptyChunk; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.world.ChunkDataEvent; -import net.minecraftforge.event.world.ChunkEvent; -import net.minecraftforge.event.world.ChunkWatchEvent.UnWatch; -import net.minecraftforge.event.world.ChunkWatchEvent.Watch; -import net.minecraftforge.event.world.WorldEvent; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -import java.util.ArrayList; -import java.util.HashMap; - -public class WorldExtensionManager { - public static class WorldExtensionEventHandler { - @SubscribeEvent - public void onChunkDataLoad(ChunkDataEvent.Load event) { - if (!worldMap.containsKey(event.world)) { - WorldExtensionManager.onWorldLoad(event.world); - } - - createChunkExtension(event.world, event.getChunk()); - - for (WorldExtension extension : worldMap.get(event.world)) { - extension.loadChunkData(event.getChunk(), event.getData()); - } - } - - @SubscribeEvent - public void onChunkDataSave(ChunkDataEvent.Save event) { - for (WorldExtension extension : worldMap.get(event.world)) { - extension.saveChunkData(event.getChunk(), event.getData()); - } - - if (!event.getChunk().isChunkLoaded) { - removeChunk(event.world, event.getChunk()); - } - } - - @SubscribeEvent - public void onChunkLoad(ChunkEvent.Load event) { - if (!worldMap.containsKey(event.world)) { - WorldExtensionManager.onWorldLoad(event.world); - } - - createChunkExtension(event.world, event.getChunk()); - - for (WorldExtension extension : worldMap.get(event.world)) { - extension.loadChunk(event.getChunk()); - } - } - - @SubscribeEvent - public void onChunkUnLoad(ChunkEvent.Unload event) { - if (event.getChunk() instanceof EmptyChunk) { - return; - } - - for (WorldExtension extension : worldMap.get(event.world)) { - extension.unloadChunk(event.getChunk()); - } - - if (event.world.isRemote) { - removeChunk(event.world, event.getChunk()); - } - } - - @SubscribeEvent - public void onWorldSave(WorldEvent.Save event) { - if (worldMap.containsKey(event.world)) { - for (WorldExtension extension : worldMap.get(event.world)) { - extension.save(); - } - } - } - - @SubscribeEvent - public void onWorldLoad(WorldEvent.Load event) { - if (!worldMap.containsKey(event.world)) { - WorldExtensionManager.onWorldLoad(event.world); - } - } - - @SubscribeEvent - public void onWorldUnLoad(WorldEvent.Unload event) { - if (worldMap.containsKey(event.world))//because force closing unloads a world twice - { - for (WorldExtension extension : worldMap.remove(event.world)) { - extension.unload(); - } - } - } - - @SubscribeEvent - public void onChunkWatch(Watch event) { - Chunk chunk = event.player.worldObj.getChunkFromChunkCoords(event.chunk.chunkXPos, event.chunk.chunkZPos); - for (WorldExtension extension : worldMap.get(event.player.worldObj)) { - extension.watchChunk(chunk, event.player); - } - } - - @SubscribeEvent - @SideOnly(Side.CLIENT) - public void onChunkUnWatch(UnWatch event) { - Chunk chunk = event.player.worldObj.getChunkFromChunkCoords(event.chunk.chunkXPos, event.chunk.chunkZPos); - for (WorldExtension extension : worldMap.get(event.player.worldObj)) { - extension.unwatchChunk(chunk, event.player); - } - } - - @SubscribeEvent - @SideOnly(Side.CLIENT) - public void clientTick(TickEvent.ClientTickEvent event) { - World world = Minecraft.getMinecraft().theWorld; - if (worldMap.containsKey(world)) { - if (event.phase == TickEvent.Phase.START) { - preTick(world); - } else { - postTick(world); - } - } - } - - @SubscribeEvent - public void serverTick(TickEvent.WorldTickEvent event) { - if (!worldMap.containsKey(event.world)) { - WorldExtensionManager.onWorldLoad(event.world); - } - - if (event.phase == TickEvent.Phase.START) { - preTick(event.world); - } else { - postTick(event.world); - } - } - } - - private static boolean initialised; - private static ArrayList extensionIntialisers = new ArrayList(); - - public static void registerWorldExtension(WorldExtensionInstantiator init) { - if (!initialised) { - init(); - } - - init.instantiatorID = extensionIntialisers.size(); - extensionIntialisers.add(init); - } - - private static void init() { - initialised = true; - MinecraftForge.EVENT_BUS.register(new WorldExtensionEventHandler()); - //FMLCommonHandler.instance().bus().register(new WorldExtensionEventHandler()); - } - - private static HashMap worldMap = new HashMap(); - - private static void onWorldLoad(World world) { - WorldExtension[] extensions = new WorldExtension[extensionIntialisers.size()]; - for (int i = 0; i < extensions.length; i++) { - extensions[i] = extensionIntialisers.get(i).createWorldExtension(world); - } - - worldMap.put(world, extensions); - - for (WorldExtension extension : extensions) { - extension.load(); - } - } - - private static void createChunkExtension(World world, Chunk chunk) { - WorldExtension[] extensions = worldMap.get(world); - for (int i = 0; i < extensionIntialisers.size(); i++) { - if (!extensions[i].containsChunk(chunk)) { - extensions[i].addChunk(extensionIntialisers.get(i).createChunkExtension(chunk, extensions[i])); - } - } - } - - private static void removeChunk(World world, Chunk chunk) { - for (WorldExtension extension : worldMap.get(world)) { - extension.remChunk(chunk); - } - } - - private static void preTick(World world) { - for (WorldExtension extension : worldMap.get(world)) { - extension.preTick(); - } - } - - private static void postTick(World world) { - for (WorldExtension extension : worldMap.get(world)) { - extension.postTick(); - } - } - - public static WorldExtension getWorldExtension(World world, int instantiatorID) { - return worldMap.get(world)[instantiatorID]; - } -} diff --git a/dependencies/main/java/codechicken/nei/Button.java b/dependencies/main/java/codechicken/nei/Button.java deleted file mode 100644 index 89392c7315..0000000000 --- a/dependencies/main/java/codechicken/nei/Button.java +++ /dev/null @@ -1,72 +0,0 @@ -package codechicken.nei; - -import java.util.List; - -import static codechicken.lib.gui.GuiDraw.getStringWidth; - -public abstract class Button extends Widget { - public Button(String s) { - label = s; - } - - public Button() { - label = ""; - } - - public int contentWidth() { - return getRenderIcon() == null ? getStringWidth(label) : getRenderIcon().width; - } - - @Override - public void draw(int mousex, int mousey) { - LayoutManager.getLayoutStyle().drawButton(this, mousex, mousey); - } - - @Override - public boolean handleClick(int mx, int my, int button) { - if (button == 1 || button == 0) { - if (onButtonPress(button == 1)) { - NEIClientUtils.playClickSound(); - } - } - return true; - } - - public abstract boolean onButtonPress(boolean rightclick); - - public Image getRenderIcon() { - return icon; - } - - @Override - public List handleTooltip(int mx, int my, List tooltip) { - if (!contains(mx, my)) { - return tooltip; - } - - String tip = getButtonTip(); - if (tip != null) { - tooltip.add(tip); - } - return tooltip; - } - - public String getButtonTip() { - return null; - } - - public String getRenderLabel() { - return label; - } - - public String label; - public Image icon; - - /** - * 0x4 = state flag, as opposed to 1 click - * 0 = normal - * 1 = on - * 2 = disabled - */ - public int state; -} diff --git a/dependencies/main/java/codechicken/nei/ButtonCycled.java b/dependencies/main/java/codechicken/nei/ButtonCycled.java deleted file mode 100644 index 9827416552..0000000000 --- a/dependencies/main/java/codechicken/nei/ButtonCycled.java +++ /dev/null @@ -1,11 +0,0 @@ -package codechicken.nei; - -public abstract class ButtonCycled extends Button { - @Override - public Image getRenderIcon() { - return icons[index]; - } - - public int index; - public Image[] icons; -} diff --git a/dependencies/main/java/codechicken/nei/ClientHandler.java b/dependencies/main/java/codechicken/nei/ClientHandler.java deleted file mode 100644 index e0cde6d093..0000000000 --- a/dependencies/main/java/codechicken/nei/ClientHandler.java +++ /dev/null @@ -1,230 +0,0 @@ -package codechicken.nei; - -import codechicken.core.ClientUtils; -import codechicken.core.GuiModListScroll; -import codechicken.lib.packet.PacketCustom; -import codechicken.nei.api.API; -import codechicken.nei.api.ItemInfo; -import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.EntityPlayerSP; -import net.minecraft.client.gui.*; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.world.World; -import net.minecraftforge.client.event.RenderWorldLastEvent; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.client.CustomModLoadingErrorDisplayException; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent.Phase; - -import java.util.ArrayList; -import java.util.Iterator; - -public class ClientHandler { - private static ClientHandler instance; - - private ArrayList SMPmagneticItems = new ArrayList(); - private World lastworld; - private GuiScreen lastGui; - - public void addSMPMagneticItem(int i, World world) { - Entity e = world.getEntityByID(i); - if (e instanceof EntityItem) { - SMPmagneticItems.add((EntityItem) e); - } - } - - private void updateMagnetMode(World world, EntityPlayerSP player) { - if (!NEIClientConfig.getMagnetMode()) { - return; - } - - float distancexz = 16; - float distancey = 8; - double maxspeedxz = 0.5; - double maxspeedy = 0.5; - double speedxz = 0.05; - double speedy = 0.07; - - for (Iterator iterator = SMPmagneticItems.iterator(); iterator.hasNext(); ) { - EntityItem item = iterator.next(); - - if (item.cannotPickup()) { - continue; - } - if (item.isDead) { - iterator.remove(); - } - if (!NEIClientUtils.canItemFitInInventory(player, item.getEntityItem())) { - continue; - } - - double dx = player.posX - item.posX; - double dy = player.posY + player.getEyeHeight() - item.posY; - double dz = player.posZ - item.posZ; - double absxz = Math.sqrt(dx * dx + dz * dz); - double absy = Math.abs(dy); - if (absxz > distancexz || absy > distancey) { - continue; - } - - if (absxz > 1) { - dx /= absxz; - dz /= absxz; - } - - if (absy > 1) { - dy /= absy; - } - - double vx = item.motionX + speedxz * dx; - double vy = item.motionY + speedy * dy; - double vz = item.motionZ + speedxz * dz; - - double absvxz = Math.sqrt(vx * vx + vz * vz); - double absvy = Math.abs(vy); - - double rationspeedxz = absvxz / maxspeedxz; - if (rationspeedxz > 1) { - vx /= rationspeedxz; - vz /= rationspeedxz; - } - - double rationspeedy = absvy / maxspeedy; - if (rationspeedy > 1) { - vy /= rationspeedy; - } - - if (absvxz < 0.2 && absxz < 0.2) { - item.setDead(); - } - - item.setVelocity(vx, vy, vz); - } - } - - public static void preInit() { - ItemInfo.preInit(); - } - - public static void init() { - instance = new ClientHandler(); - - GuiModListScroll.register("NotEnoughItems"); - PacketCustom.assignHandler(NEICPH.channel, new NEICPH()); - FMLCommonHandler.instance().bus().register(instance); - MinecraftForge.EVENT_BUS.register(instance); - - ItemInfo.init(); - API.registerHighlightHandler(new DefaultHighlightHandler(), ItemInfo.Layout.HEADER); - HUDRenderer.load(); - WorldOverlayRenderer.load(); - } - - @SubscribeEvent - public void tickEvent(TickEvent.ClientTickEvent event) { - if (event.phase == Phase.END) { - return; - } - - Minecraft mc = Minecraft.getMinecraft(); - if (mc.theWorld != null) { - if (loadWorld(mc.theWorld)) { - NEIClientConfig.setHasSMPCounterPart(false); - NEIClientConfig.setInternalEnabled(false); - - if (!Minecraft.getMinecraft().isSingleplayer())//wait for server to initiate in singleplayer - { - NEIClientConfig.loadWorld("remote/" + ClientUtils.getServerIP().replace(':', '~')); - } - } - - if (!NEIClientConfig.isEnabled()) { - return; - } - - KeyManager.tickKeyStates(); - - NEIController.updateUnlimitedItems(mc.thePlayer.inventory); - if (mc.currentScreen == null) { - NEIController.processCreativeCycling(mc.thePlayer.inventory); - } - - updateMagnetMode(mc.theWorld, mc.thePlayer); - } - - GuiScreen gui = mc.currentScreen; - if (gui != lastGui) { - if (gui instanceof GuiMainMenu) { - lastworld = null; - } else if (gui instanceof GuiSelectWorld) { - NEIClientConfig.reloadSaves(); - } - } - lastGui = gui; - } - - @SubscribeEvent - public void tickEvent(TickEvent.RenderTickEvent event) { - if (event.phase == Phase.END && NEIClientConfig.isEnabled()) { - HUDRenderer.renderOverlay(); - } - } - - @SubscribeEvent - public void renderLastEvent(RenderWorldLastEvent event) { - if (NEIClientConfig.isEnabled()) { - WorldOverlayRenderer.render(event.partialTicks); - } - } - - public boolean loadWorld(World world) { - if (world != lastworld) { - SMPmagneticItems.clear(); - WorldOverlayRenderer.reset(); - lastworld = world; - return true; - } - return false; - } - - public static ClientHandler instance() { - return instance; - } - - public static RuntimeException throwCME(final String message) { - final GuiScreen errorGui = new GuiErrorScreen(null, null) { - @Override - public void handleMouseInput() { - } - - @Override - public void handleKeyboardInput() { - } - - @Override - public void drawScreen(int par1, int par2, float par3) { - drawDefaultBackground(); - String[] s_msg = message.split("\n"); - for (int i = 0; i < s_msg.length; ++i) { - drawCenteredString(fontRendererObj, s_msg[i], width / 2, height / 3 + 12 * i, 0xFFFFFFFF); - } - } - }; - - @SuppressWarnings("serial") - CustomModLoadingErrorDisplayException e = new CustomModLoadingErrorDisplayException() { - @Override - public void initGui(GuiErrorScreen errorScreen, FontRenderer fontRenderer) { - Minecraft.getMinecraft().displayGuiScreen(errorGui); - } - - @Override - public void drawScreen(GuiErrorScreen errorScreen, FontRenderer fontRenderer, int mouseRelX, int mouseRelY, float tickTime) { - } - }; - throw e; - } -} diff --git a/dependencies/main/java/codechicken/nei/ContainerCreativeInv.java b/dependencies/main/java/codechicken/nei/ContainerCreativeInv.java deleted file mode 100644 index c82a93e708..0000000000 --- a/dependencies/main/java/codechicken/nei/ContainerCreativeInv.java +++ /dev/null @@ -1,116 +0,0 @@ -package codechicken.nei; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemArmor; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class ContainerCreativeInv extends Container { - private class SlotArmor extends Slot { - int armorType; - - public SlotArmor(IInventory inv, int slot, int x, int y, int armor) { - super(inv, slot, x, y); - armorType = armor; - } - - @Override - public int getSlotStackLimit() { - return 1; - } - - @Override - public boolean isItemValid(ItemStack stack) { - return stack != null && stack.getItem().isValidArmor(stack, armorType, player); - } - - @Override - @SideOnly(Side.CLIENT) - public String getSlotTexture() { - return ItemArmor.EMPTY_SLOT_NAMES[armorType]; - } - } - - private class SlotBlockArmor extends SlotArmor { - public SlotBlockArmor(IInventory inv, int slot, int x, int y, int armor) { - super(inv, slot, x, y, armor); - } - - @Override - public boolean isItemValid(ItemStack stack) { - return super.isItemValid(stack) || stack != null;// && Block.getBlockFromItem(stack.getItem()) != Blocks.air; - } - } - - public EntityPlayer player; - - public ContainerCreativeInv(EntityPlayer player, ExtendedCreativeInv extraInv) { - this.player = player; - InventoryPlayer invPlayer = player.inventory; - for (int row = 0; row < 6; row++) { - for (int col = 0; col < 9; col++) { - addSlotToContainer(new Slot(extraInv, col + row * 9, 8 + col * 18, 5 + row * 18)); - } - } - - for (int row = 0; row < 3; ++row) { - for (int col = 0; col < 9; ++col) { - addSlotToContainer(new Slot(invPlayer, col + row * 9 + 9, 8 + col * 18, 118 + row * 18)); - } - } - - for (int col = 0; col < 9; ++col) { - addSlotToContainer(new Slot(invPlayer, col, 8 + col * 18, 176)); - } - - addSlotToContainer(new SlotBlockArmor(invPlayer, invPlayer.getSizeInventory() - 1, -15, 23, 0)); - for (int armorType = 1; armorType < 4; armorType++) { - addSlotToContainer(new SlotArmor(invPlayer, invPlayer.getSizeInventory() - 1 - armorType, -15, 23 + armorType * 18, armorType)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int slotIndex) { - ItemStack transferredStack = null; - Slot slot = (Slot) inventorySlots.get(slotIndex); - - if (slot != null && slot.getHasStack()) { - ItemStack stack = slot.getStack(); - transferredStack = stack.copy(); - - if (stack.getItem() instanceof ItemArmor) { - ItemArmor armor = (ItemArmor) stack.getItem(); - if (!getSlot(90 + armor.armorType).getHasStack()) { - getSlot(90 + armor.armorType).putStack(transferredStack); - slot.putStack(null); - return transferredStack; - } - } - - if (slotIndex < 54) { - if (!this.mergeItemStack(stack, 54, 90, true)) { - return null; - } - } else if (!this.mergeItemStack(stack, 0, 54, false)) { - return null; - } - - if (stack.stackSize == 0) { - slot.putStack(null); - } else { - slot.onSlotChanged(); - } - } - - return transferredStack; - } - - public boolean canInteractWith(EntityPlayer var1) { - return true; - } -} diff --git a/dependencies/main/java/codechicken/nei/ContainerEnchantmentModifier.java b/dependencies/main/java/codechicken/nei/ContainerEnchantmentModifier.java deleted file mode 100644 index 9eac2a200b..0000000000 --- a/dependencies/main/java/codechicken/nei/ContainerEnchantmentModifier.java +++ /dev/null @@ -1,331 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.render.CCRenderState; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ContainerEnchantment; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.BlockPos; -import net.minecraft.world.World; - -import java.util.ArrayList; - -/** - * This is crap code, don't ever do this. - */ -public class ContainerEnchantmentModifier extends ContainerEnchantment { - public static class EnchantmentHash { - public EnchantmentHash(Enchantment e, int i, int l) { - enchantment = e; - state = i; - level = l; - } - - Enchantment enchantment; - int state; - int level; - } - - public ArrayList slotEnchantment = new ArrayList(); - int level = 5; - - public int scrollclicky = -1; - public float scrollpercent; - public int scrollmousey; - public float percentscrolled; - public int relx = 60; - public int rely = 14; - public int height = 57; - public int cwidth = 101; - public int slotheight = 19; - public GuiEnchantmentModifier parentscreen; - - public ContainerEnchantmentModifier(InventoryPlayer inventoryplayer, World world) { - super(inventoryplayer, world, new BlockPos(0, 0, 0)); - } - - public int getNumSlots() { - return slotEnchantment.size(); - } - - public int getScrollBarHeight() { - int sbarh = (int) ((height / (float) getContentHeight()) * height); - if (sbarh > height) { - return height; - } else if (sbarh < height / 15) { - return height / 15; - } else { - return sbarh; - } - } - - public int getScrollBarWidth() { - return 7; - } - - public int getContentHeight() { - return slotheight * getNumSlots(); - } - - public int getScrolledSlots() { - int slots = getNumSlots(); - int shownslots = height / slotheight; - return (int) (percentscrolled * (slots - shownslots) + 0.5F); - } - - private int getClickedSlot(int mousey) { - return ((mousey - rely) / slotheight) + getScrolledSlots(); - } - - public void calculatePercentScrolled() { - int barempty = height - getScrollBarHeight(); - if (scrollclicky >= 0) { - int scrolldiff = scrollmousey - scrollclicky; - percentscrolled = scrolldiff / (float) barempty + scrollpercent; - } - if (percentscrolled < 0) { - percentscrolled = 0; - } - if (percentscrolled > 1) { - percentscrolled = 1; - } - int sbary = rely + (int) (barempty * percentscrolled + 0.5); - percentscrolled = (sbary - rely) / (float) barempty; - } - - public boolean clickScrollBar(int mousex, int mousey, int button) { - mousex -= parentscreen.guiLeft; - mousey -= parentscreen.guiTop; - - int barempty = height - getScrollBarHeight(); - int sbary = rely + (int) (barempty * percentscrolled + 0.5); - - if (button == 0 && - getScrollBarHeight() < height && //the scroll bar can move (not full length) - mousex >= relx + cwidth && mousex < relx + cwidth + getScrollBarWidth() && - mousey >= rely && mousey < rely + height)//in the scroll pane - { - if (mousey < sbary) { - percentscrolled = (mousey - rely) / (float) barempty; - calculatePercentScrolled(); - } else if (mousey > sbary + getScrollBarHeight()) { - percentscrolled = (mousey - rely - getScrollBarHeight() + 1) / (float) barempty; - calculatePercentScrolled(); - } else { - scrollclicky = mousey; - scrollpercent = percentscrolled; - scrollmousey = mousey; - } - return true; - } - return false; - } - - public void mouseUp(int mousex, int mousey, int button) { - if (scrollclicky >= 0 && button == 0)//we were scrolling and we released mouse - { - scrollclicky = -1; - } - } - - public boolean clickButton(int mousex, int mousey, int button) { - mousex -= parentscreen.guiLeft; - mousey -= parentscreen.guiTop; - if (mousex >= relx && mousex < relx + cwidth && - mousey >= rely && mousey <= rely + height)//in the box - { - int slot = getClickedSlot(mousey); - if (slot >= getNumSlots()) { - return false; - } - toggleSlotEnchantment(slot); - return true; - } - return false; - } - - private void toggleSlotEnchantment(int slot) { - EnchantmentHash e = slotEnchantment.get(slot); - if (e.state == 2) { - NEICPH.sendModifyEnchantment(e.enchantment.effectId, 0, false); - e.state = 0; - } else if (e.state == 1) { - return; - } else { - NEICPH.sendModifyEnchantment(e.enchantment.effectId, level, true); - e.state = 2; - } - updateEnchantmentOptions(GuiEnchantmentModifier.validateEnchantments()); - } - - public boolean addEnchantment(int e, int level) { - if (e < Enchantment.enchantmentsList.length && Enchantment.enchantmentsList[e] != null) { - ((Slot) inventorySlots.get(0)).getStack().addEnchantment(Enchantment.enchantmentsList[e], level); - return true; - } - return false; - } - - public void removeEnchantment(int e) { - ItemStack stack = ((Slot) inventorySlots.get(0)).getStack(); - NBTTagList nbttaglist = stack.getEnchantmentTagList(); - if (nbttaglist != null) { - for (int i = 0; i < nbttaglist.tagCount(); i++) { - int ID = nbttaglist.getCompoundTagAt(i).getShort("id"); - if (ID == e) { - nbttaglist.removeTag(i); - if (nbttaglist.tagCount() == 0) { - stack.getTagCompound().removeTag("ench"); - } - if (stack.getTagCompound().hasNoTags()) { - stack.setTagCompound(null); - } - return; - } - } - } - } - - public boolean canInteractWith(EntityPlayer entityplayer) { - return true; - } - - public void onCraftMatrixChanged(IInventory iinventory) { - if (parentscreen != null) { - updateEnchantmentOptions(GuiEnchantmentModifier.validateEnchantments()); - } - } - - public void updateEnchantmentOptions(boolean validate) { - int numoptions = slotEnchantment.size(); - slotEnchantment.clear(); - - ItemStack toolstack = getSlot(0).getStack(); - if (toolstack == null) { - percentscrolled = 0; - return; - } - - Item item = toolstack.getItem(); - int enchantablity = item.getItemEnchantability(); - if (enchantablity == 0 && validate) { - percentscrolled = 0; - return; - } - - for (Enchantment e : Enchantment.enchantmentsList) { - if (e == null || e.type == null || (!e.type.canEnchantItem(item) && validate)) { - continue; - } - int state = 0; - int level = -1; - if (NEIServerUtils.stackHasEnchantment(toolstack, e.effectId)) { - state = 2; - level = NEIServerUtils.getEnchantmentLevel(toolstack, e.effectId); - } else if (NEIServerUtils.doesEnchantmentConflict(NEIServerUtils.getEnchantments(toolstack), e) && validate) { - state = 1; - } - slotEnchantment.add(new EnchantmentHash(e, state, level)); - } - if (numoptions != slotEnchantment.size()) { - percentscrolled = 0; - } - } - - public void drawSlots(GuiEnchantmentModifier gui) { - for (int slot = 0; slot < 3; slot++) { - int shade = 0; - String text = ""; - - int containerslot = slot + getScrolledSlots(); - if (containerslot + 1 > slotEnchantment.size()) { - shade = 1; - } else { - EnchantmentHash e = slotEnchantment.get(containerslot); - shade = e.state; - text = e.enchantment.getTranslatedName(e.level == -1 ? level : e.level); - if (gui.mc.fontRendererObj.getStringWidth(text) > 95 && text.contains("Projectile")) { - text = text.replace("Projectile", "Proj"); - } - if (gui.mc.fontRendererObj.getStringWidth(text) > 95 && text.contains("Protection")) { - text = text.replace("Protection", "Protect"); - } - if (gui.mc.fontRendererObj.getStringWidth(text) > 95 && text.contains("Bane of")) { - text = text.replace("Bane of ", ""); - } - } - - CCRenderState.changeTexture("textures/gui/container/enchanting_table.png"); - GlStateManager.color(1, 1, 1); - if (hasScrollBar()) { - gui.drawTexturedModalRect(relx, rely + slot * slotheight, 0, gui.ySize + slotheight * shade, cwidth - 30, slotheight); - gui.drawTexturedModalRect(relx + cwidth - 30, rely + slot * slotheight, cwidth - 23, gui.ySize + slotheight * shade, 30, slotheight); - } else { - gui.drawTexturedModalRect(relx, rely + slot * slotheight, 0, gui.ySize + slotheight * shade, cwidth + 7, slotheight); - } - - gui.getFontRenderer().drawString(text, relx + 4, rely + slot * slotheight + 5, textColourFromState(shade)); - } - } - - private boolean hasScrollBar() { - return getNumSlots() > 3; - } - - public void drawScrollBar(GuiEnchantmentModifier gui) { - if (!hasScrollBar()) { - return; - } - - int sbary = rely + (int) ((height - getScrollBarHeight()) * percentscrolled + 0.5); - int sbarx = relx + cwidth; - - Gui.drawRect(sbarx, rely, sbarx + getScrollBarWidth(), rely + height, 0xFF202020);//background - Gui.drawRect(sbarx, sbary, sbarx + getScrollBarWidth(), sbary + getScrollBarHeight(), 0xFF8B8B8B);//corners - Gui.drawRect(sbarx, sbary, sbarx + getScrollBarWidth() - 1, sbary + getScrollBarHeight() - 1, 0xFFF0F0F0);//topleft up - Gui.drawRect(sbarx + 1, sbary + 1, sbarx + getScrollBarWidth() - 1, sbary + getScrollBarHeight() - 1, 0xFF555555);//bottom right down - Gui.drawRect(sbarx + 1, sbary + 1, sbarx + getScrollBarWidth() - 2, sbary + getScrollBarHeight() - 2, 0xFFC6C6C6);//scrollbar - } - - private int textColourFromState(int shade) { - switch (shade) { - case 0: - return 0x685e4a; - case 1: - return 0x407f10; - default: - return 0xffff80; - } - } - - public void onUpdate(int mousex, int mousey) { - processScrollMouse(mousey); - } - - public void processScrollMouse(int mousey) { - mousey -= parentscreen.guiTop; - - if (scrollclicky >= 0) { - int scrolldiff = mousey - scrollclicky; - int barupallowed = (int) ((height - getScrollBarHeight()) * scrollpercent + 0.5); - int bardownallowed = (height - getScrollBarHeight()) - barupallowed; - - if (-scrolldiff > barupallowed) { - scrollmousey = scrollclicky - barupallowed; - } else if (scrolldiff > bardownallowed) { - scrollmousey = scrollclicky + bardownallowed; - } else { - scrollmousey = mousey; - } - - calculatePercentScrolled(); - } - } -} diff --git a/dependencies/main/java/codechicken/nei/ContainerPotionCreator.java b/dependencies/main/java/codechicken/nei/ContainerPotionCreator.java deleted file mode 100644 index 04e809483b..0000000000 --- a/dependencies/main/java/codechicken/nei/ContainerPotionCreator.java +++ /dev/null @@ -1,167 +0,0 @@ -package codechicken.nei; - -import codechicken.core.inventory.ContainerExtended; -import codechicken.core.inventory.SlotHandleClicks; -import codechicken.lib.inventory.InventoryNBT; -import codechicken.lib.inventory.InventoryUtils; -import codechicken.lib.packet.PacketCustom; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.InventoryBasic; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemPotion; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.potion.PotionEffect; - -public class ContainerPotionCreator extends ContainerExtended { - public class SlotPotion extends Slot { - public SlotPotion(IInventory inv, int slotIndex, int x, int y) { - super(inv, slotIndex, x, y); - } - - @Override - public boolean isItemValid(ItemStack stack) { - return stack.getItem() instanceof ItemPotion; - } - - @Override - public void onSlotChanged() { - super.onSlotChanged(); - if (getHasStack()) { - ItemStack stack = getStack(); - if (!stack.hasTagCompound()) { - stack.setTagCompound(new NBTTagCompound()); - } - if (!stack.getTagCompound().hasKey("CustomPotionEffects")) { - stack.getTagCompound().setTag("CustomPotionEffects", new NBTTagList()); - } - } - } - } - - public class SlotPotionStore extends SlotHandleClicks { - public SlotPotionStore(IInventory inv, int slotIndex, int x, int y) { - super(inv, slotIndex, x, y); - } - - @Override - public ItemStack slotClick(ContainerExtended container, EntityPlayer player, int button, int modifier) { - ItemStack held = player.inventory.getItemStack(); - if (button == 0 && modifier == 1) { - NEIClientUtils.cheatItem(getStack(), button, -1); - } else if (button == 1) { - putStack(null); - } else if (held != null) { - if (isItemValid(held)) { - putStack(InventoryUtils.copyStack(held, 1)); - player.inventory.setItemStack(null); - } - } else if (getHasStack()) { - player.inventory.setItemStack(getStack()); - } - - return null; - } - - @Override - public boolean isItemValid(ItemStack stack) { - return stack.getItem() instanceof ItemPotion; - } - } - - public static class InventoryPotionStore extends InventoryNBT { - public InventoryPotionStore() { - super(9, NEIClientConfig.global.nbt.getCompoundTag("potionStore")); - } - - @Override - public void markDirty() { - super.markDirty(); - NEIClientConfig.global.nbt.setTag("potionStore", tag); - NEIClientConfig.global.saveNBT(); - } - } - - InventoryPlayer playerInv; - InventoryBasic potionInv; - IInventory potionStoreInv; - - public ContainerPotionCreator(InventoryPlayer inventoryPlayer, IInventory potionStoreInv) { - playerInv = inventoryPlayer; - potionInv = new InventoryBasic("Potion", true, 1); - this.potionStoreInv = potionStoreInv; - - addSlotToContainer(new SlotPotion(potionInv, 0, 25, 102)); - for (int i = 0; i < 9; i++) { - addSlotToContainer(new SlotPotionStore(potionStoreInv, i, 8 + i * 18, 14)); - } - bindPlayerInventory(inventoryPlayer, 8, 125); - } - - @Override - public boolean doMergeStackAreas(int slotIndex, ItemStack stack) { - if (slotIndex < 10) { - return mergeItemStack(stack, 10, 46, true); - } - return mergeItemStack(stack, 0, 1, false); - } - - @Override - public boolean canInteractWith(EntityPlayer entityplayer) { - return true; - } - - @Override - public void onContainerClosed(EntityPlayer player) { - super.onContainerClosed(player); - - if (!player.worldObj.isRemote) { - InventoryUtils.dropOnClose(player, potionInv); - } - } - - @SuppressWarnings("unchecked") - @Override - public void handleInputPacket(PacketCustom packet) { - ItemStack potion = potionInv.getStackInSlot(0); - if (potion == null) { - return; - } - - boolean add = packet.readBoolean(); - int effectID = packet.readUByte(); - - NBTTagList effects = potion.getTagCompound().getTagList("CustomPotionEffects", 10); - NBTTagList newEffects = new NBTTagList(); - for (int i = 0; i < effects.tagCount(); i++) { - NBTTagCompound tag = effects.getCompoundTagAt(i); - PotionEffect e = PotionEffect.readCustomPotionEffectFromNBT(tag); - if (e.getPotionID() != effectID) { - newEffects.appendTag(tag); - } - } - if (add) { - newEffects.appendTag(new PotionEffect(effectID, packet.readInt(), packet.readUByte()).writeCustomPotionEffectToNBT(new NBTTagCompound())); - } - potion.getTagCompound().setTag("CustomPotionEffects", newEffects); - } - - public void setPotionEffect(int effectID, int duration, int amplifier) { - PacketCustom packet = NEICPH.createContainerPacket(); - packet.writeBoolean(true); - packet.writeByte(effectID); - packet.writeInt(duration); - packet.writeByte(amplifier); - packet.sendToServer(); - } - - public void removePotionEffect(int effectID) { - PacketCustom packet = NEICPH.createContainerPacket(); - packet.writeBoolean(false); - packet.writeByte(effectID); - packet.sendToServer(); - } -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/nei/DefaultHighlightHandler.java b/dependencies/main/java/codechicken/nei/DefaultHighlightHandler.java deleted file mode 100644 index 71c6bfdc98..0000000000 --- a/dependencies/main/java/codechicken/nei/DefaultHighlightHandler.java +++ /dev/null @@ -1,48 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.api.IHighlightHandler; -import codechicken.nei.api.ItemInfo; -import codechicken.nei.guihook.GuiContainerManager; -import net.minecraft.block.BlockRedstoneWire; -import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -import java.util.List; - -public class DefaultHighlightHandler implements IHighlightHandler { - @Override - public List handleTextData(ItemStack stack, World world, EntityPlayer player, MovingObjectPosition mop, List currenttip, ItemInfo.Layout layout) { - String name = null; - try { - String s = GuiContainerManager.itemDisplayNameShort(stack); - if (s != null && !s.endsWith("Unnamed")) { - name = s; - } - - if (name != null) { - currenttip.add(name); - } - } catch (Exception ignored) { - } - - IBlockState b = world.getBlockState(mop.getBlockPos()); - if (name != null && b.getBlock() == Blocks.redstone_wire) { - String s = "" + b.getValue(BlockRedstoneWire.POWER); - if (s.length() < 2) { - s = " " + s; - } - currenttip.set(currenttip.size() - 1, name + " " + s); - } - - return currenttip; - } - - @Override - public ItemStack identifyHighlight(World world, EntityPlayer player, MovingObjectPosition mop) { - return null; - } -} diff --git a/dependencies/main/java/codechicken/nei/ExtendedCreativeInv.java b/dependencies/main/java/codechicken/nei/ExtendedCreativeInv.java deleted file mode 100644 index 474caa750f..0000000000 --- a/dependencies/main/java/codechicken/nei/ExtendedCreativeInv.java +++ /dev/null @@ -1,134 +0,0 @@ -package codechicken.nei; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IChatComponent; -import net.minecraftforge.fml.relauncher.Side; - -public class ExtendedCreativeInv implements IInventory { - PlayerSave playerSave; - Side side; - - public ExtendedCreativeInv(PlayerSave playerSave, Side side) { - this.playerSave = playerSave; - this.side = side; - } - - @Override - public int getSizeInventory() { - return 54; - } - - @Override - public ItemStack getStackInSlot(int slot) { - if (side.isClient()) { - return NEIClientConfig.creativeInv[slot]; - } - return playerSave.creativeInv[slot]; - } - - @Override - public ItemStack decrStackSize(int slot, int size) { - ItemStack item = getStackInSlot(slot); - - if (item != null) { - if (item.stackSize <= size) { - setInventorySlotContents(slot, null); - markDirty(); - return item; - } - ItemStack itemstack1 = item.splitStack(size); - if (item.stackSize == 0) { - setInventorySlotContents(slot, null); - } - - markDirty(); - return itemstack1; - } - return null; - } - - @Override - public ItemStack removeStackFromSlot(int slot) { - synchronized (this) { - ItemStack stack = getStackInSlot(slot); - setInventorySlotContents(slot, null); - return stack; - } - } - - @Override - public void setInventorySlotContents(int slot, ItemStack stack) { - if (side.isClient()) { - NEIClientConfig.creativeInv[slot] = stack; - } else { - playerSave.creativeInv[slot] = stack; - } - - markDirty(); - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public void markDirty() { - if (side.isServer()) { - playerSave.setCreativeDirty(); - } - } - - @Override - public boolean isUseableByPlayer(EntityPlayer var1) { - return true; - } - - @Override - public boolean isItemValidForSlot(int slot, ItemStack stack) { - return true; - } - - @Override - public void openInventory(EntityPlayer player) { - } - - @Override - public void closeInventory(EntityPlayer player) { - } - - @Override - public int getField(int id) { - return 0; - } - - @Override - public void setField(int id, int value) { - } - - @Override - public int getFieldCount() { - return 0; - } - - @Override - public void clear() { - } - - @Override - public String getName() { - return null; - } - - @Override - public boolean hasCustomName() { - return false; - } - - @Override - public IChatComponent getDisplayName() { - return null; - } -} diff --git a/dependencies/main/java/codechicken/nei/FastTransferManager.java b/dependencies/main/java/codechicken/nei/FastTransferManager.java deleted file mode 100644 index f0a43f51f6..0000000000 --- a/dependencies/main/java/codechicken/nei/FastTransferManager.java +++ /dev/null @@ -1,374 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.guihook.GuiContainerManager; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -import java.util.*; - -import static codechicken.nei.NEIServerUtils.*; - -public class FastTransferManager { - /** - * Based on the general assumption that we want to fill top to bottom, left to right - */ - public static class SlotPositionComparator implements Comparator { - Container container; - - public SlotPositionComparator(Container c) { - container = c; - } - - @Override - public int compare(Integer arg0, Integer arg1) { - Slot slot1 = container.getSlot(arg0); - Slot slot2 = container.getSlot(arg1); - - if (slot2.yDisplayPosition != slot1.yDisplayPosition) { - return slot1.yDisplayPosition - slot2.yDisplayPosition; - } - return slot1.xDisplayPosition - slot2.xDisplayPosition; - } - } - - public LinkedList> slotZones = new LinkedList>(); - public HashMap slotZoneMap = new HashMap(); - - private void generateSlotMap(Container container, ItemStack stack) { - stack = stack.copy(); - stack.stackSize = 1; - - for (int slotNo = 0; slotNo < container.inventorySlots.size(); slotNo++) { - if (slotZoneMap.containsKey(slotNo) || !container.getSlot(slotNo).isItemValid(stack)) { - continue; - } - - HashSet connectedSlots = new HashSet(); - findConnectedSlots(container, slotNo, connectedSlots); - - LinkedList zoneSlots = new LinkedList(connectedSlots); - Collections.sort(zoneSlots, new SlotPositionComparator(container)); - slotZones.add(zoneSlots); - - for (int i : zoneSlots) { - slotZoneMap.put(i, slotZones.size() - 1); - } - } - } - - private void findConnectedSlots(Container container, int slotNo, HashSet connectedSlots) { - connectedSlots.add(slotNo); - Slot slot = container.getSlot(slotNo); - final int threshold = 18; - - for (int i = 0; i < container.inventorySlots.size(); i++) { - if (connectedSlots.contains(i)) { - continue; - } - - Slot slot1 = container.getSlot(i); - if (Math.abs(slot.xDisplayPosition - slot1.xDisplayPosition) <= threshold && Math.abs(slot.yDisplayPosition - slot1.yDisplayPosition) <= threshold) { - findConnectedSlots(container, i, connectedSlots); - } - } - } - - public static int findSlotWithItem(Container container, ItemStack teststack) { - for (int slotNo = 0; slotNo < container.inventorySlots.size(); slotNo++) { - ItemStack stack = container.getSlot(slotNo).getStack(); - if (stack != null && areStacksSameType(stack, teststack)) { - return slotNo; - } - } - return -1; - } - - public static void clearSlots(Container container) { - for (int slotNo = 0; slotNo < container.inventorySlots.size(); slotNo++) { - ((Slot) container.inventorySlots.get(slotNo)).putStack(null); - } - } - - public void performMassTransfer(GuiContainer window, int fromSlot, int toSlot, ItemStack heldStack) { - generateSlotMap(window.inventorySlots, heldStack); - - Integer fromZone = slotZoneMap.get(fromSlot); - Integer toZone = slotZoneMap.get(toSlot); - - if (fromZone == null || toZone == null || fromZone.equals(toZone)) { - return; - } - - if (NEIClientUtils.getHeldItem() != null && !areStacksSameType(heldStack, NEIClientUtils.getHeldItem())) { - return; - } - - if (!fillZoneWithHeldItem(window, toZone)) { - return; - } - - for (int transferFrom : slotZones.get(fromZone)) { - ItemStack transferStack = window.inventorySlots.getSlot(transferFrom).getStack(); - - if (!areStacksSameType(heldStack, transferStack)) { - continue; - } - - clickSlot(window, transferFrom); - if (!fillZoneWithHeldItem(window, toZone)) { - clickSlot(window, transferFrom); - return; - } - } - } - - /** - * @return The slot that one item from the source slot will end up in apon shift clicking, -1 if none. - */ - public int findShiftClickDestinationSlot(Container container, int fromSlot) { - LinkedList save = saveContainer(container); - - Slot slot = container.getSlot(fromSlot); - ItemStack stack = slot.getStack(); - if (stack == null) { - return -1; - } - - stack.stackSize = 1; - slot.putStack(stack.copy()); - - LinkedList compareBefore = saveContainer(container); - container.slotClick(fromSlot, 0, 1, Minecraft.getMinecraft().thePlayer); - LinkedList compareAfter = saveContainer(container); - - try { - //if(compareAfter.get(fromSlot) != null)//transfer failed - //return -1; - - for (int i = 0; i < compareBefore.size(); i++) { - if (i == fromSlot) { - continue; - } - - ItemStack before = compareBefore.get(i); - ItemStack after = compareAfter.get(i); - - if (!areStacksIdentical(before, after) && after != null) { - if (before == null ? areStacksSameType(stack, after) ://transfered into this empty slot - areStacksSameType(stack, after) && after.stackSize - before.stackSize > 0)//it added to this stack - { - return i; - } - } - } - - return -1; - } finally { - restoreContainer(container, save); - } - } - - public LinkedList saveContainer(Container container) { - LinkedList stacks = new LinkedList(); - for (int i = 0; i < container.inventorySlots.size(); i++) { - stacks.add(copyStack(container.getSlot(i).getStack())); - } - - return stacks; - } - - public void restoreContainer(Container container, LinkedList items) { - for (int i = 0; i < container.inventorySlots.size(); i++) { - container.getSlot(i).putStack(items.get(i)); - } - - container.slotClick(-999, 0, 0, Minecraft.getMinecraft().thePlayer); - } - - public void transferItem(GuiContainer window, int fromSlot) { - int toSlot = findShiftClickDestinationSlot(window.inventorySlots, fromSlot); - if (toSlot == -1) { - return; - } - - Slot from = window.inventorySlots.getSlot(fromSlot); - - if (from.isItemValid(from.getStack())) { - moveOneItem(window, fromSlot, toSlot); - } else//slots that you can't put stuff in - { - moveOutputSet(window, fromSlot, toSlot); - } - } - - public void moveOutputSet(GuiContainer window, int fromSlot, int toSlot) { - if (NEIClientUtils.getHeldItem() != null) { - return; - } - - clickSlot(window, fromSlot);//pickup fromSlot - if (NEIClientUtils.getHeldItem() == null)//maybe this container does auto transfers. No need to pick up the final item - { - return; - } - clickSlot(window, toSlot);//place one in toSlot - } - - public void moveOneItem(GuiContainer window, int fromSlot, int toSlot) { - clickSlot(window, fromSlot);//pickup fromSlot - clickSlot(window, toSlot, 1);//place one in toSlot - clickSlot(window, fromSlot);//place down in fromSlot - } - - public void retrieveItem(GuiContainer window, int toSlot) { - Slot slot = window.inventorySlots.getSlot(toSlot); - ItemStack slotStack = slot.getStack(); - if (slotStack == null || - slotStack.stackSize == slot.getSlotStackLimit() || - slotStack.stackSize == slotStack.getMaxStackSize()) { - return; - } - - generateSlotMap(window.inventorySlots, slotStack); - - Integer destZone = slotZoneMap.get(toSlot); - if (destZone == null)//slots that don't accept - { - return; - } - - int firstZoneSlot = findShiftClickDestinationSlot(window.inventorySlots, toSlot); - int firstZone = -1; - if (firstZoneSlot != -1) { - Integer integer = slotZoneMap.get(firstZoneSlot); - if (integer != null) { - firstZone = integer; - if (retrieveItemFromZone(window, firstZone, toSlot)) { - return; - } - } - } - - for (int zone = 0; zone < slotZones.size(); zone++) { - if (zone == destZone || zone == firstZone) { - continue; - } - - if (retrieveItemFromZone(window, zone, toSlot)) { - return; - } - } - - retrieveItemFromZone(window, destZone, toSlot); - } - - private boolean retrieveItemFromZone(GuiContainer window, int zone, int toSlot) { - ItemStack stack = window.inventorySlots.getSlot(toSlot).getStack(); - for (int i : slotZones.get(zone)) { - if (i == toSlot) { - continue; - } - - Slot slot = window.inventorySlots.getSlot(i); - ItemStack stack1 = slot.getStack(); - - if (areStacksSameType(stack, stack1) && - stack1.stackSize != slot.getSlotStackLimit() && //get from full stacks on second pass - stack1.stackSize != stack1.getMaxStackSize()) { - moveOneItem(window, i, toSlot); - return true; - } - } - - for (int i : slotZones.get(zone)) { - if (i == toSlot) { - continue; - } - - Slot slot = window.inventorySlots.getSlot(i); - ItemStack stack1 = slot.getStack(); - - if (areStacksSameType(stack, stack1)) { - moveOneItem(window, i, toSlot); - return true; - } - } - return false; - } - - public static void clickSlot(GuiContainer window, int slotIndex) { - clickSlot(window, slotIndex, 0); - } - - public static void clickSlot(GuiContainer window, int slotIndex, int button) { - clickSlot(window, slotIndex, button, 0); - } - - public static void clickSlot(GuiContainer window, int slotIndex, int button, int modifier) { - GuiContainerManager.getManager(window).handleSlotClick(slotIndex, button, modifier); - } - - private boolean fillZoneWithHeldItem(GuiContainer window, int zoneIndex) { - for (int transferTo : slotZones.get(zoneIndex)) { - ItemStack held = NEIClientUtils.getHeldItem(); - - if (held == null) { - break; - } - - ItemStack inToSlot = window.inventorySlots.getSlot(transferTo).getStack(); - - if (!areStacksSameType(inToSlot, held)) { - continue; - } - - clickSlot(window, transferTo); - } - - for (int transferTo : slotZones.get(zoneIndex))//repeat on empty slots - { - ItemStack held = NEIClientUtils.getHeldItem(); - - if (held == null) { - break; - } - - ItemStack inToSlot = window.inventorySlots.getSlot(transferTo).getStack(); - - if (inToSlot != null) { - continue; - } - - clickSlot(window, transferTo); - } - - return NEIClientUtils.getHeldItem() == null; - } - - public void throwAll(GuiContainer window, int pickedUpFromSlot) { - ItemStack held = NEIClientUtils.getHeldItem(); - if (held == null) { - return; - } - - clickSlot(window, -999); - - generateSlotMap(window.inventorySlots, held); - Integer zone = slotZoneMap.get(pickedUpFromSlot); - if (zone == null) //something went wrong and we can't work out where the item was picked up from - { - return; - } - - for (int slotIndex : slotZones.get(zone)) { - Slot slot = window.inventorySlots.getSlot(slotIndex); - if (areStacksSameType(held, slot.getStack())) { - clickSlot(window, slotIndex); - clickSlot(window, -999); - } - } - } -} diff --git a/dependencies/main/java/codechicken/nei/GuiEnchantmentModifier.java b/dependencies/main/java/codechicken/nei/GuiEnchantmentModifier.java deleted file mode 100644 index e9ce63d742..0000000000 --- a/dependencies/main/java/codechicken/nei/GuiEnchantmentModifier.java +++ /dev/null @@ -1,106 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.render.CCRenderState; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.world.World; - -import java.io.IOException; - -import static codechicken.nei.NEIClientUtils.translate; - -public class GuiEnchantmentModifier extends GuiContainer { - ContainerEnchantmentModifier container; - - public GuiEnchantmentModifier(InventoryPlayer inventoryplayer, World world) { - super(new ContainerEnchantmentModifier(inventoryplayer, world)); - container = (ContainerEnchantmentModifier) inventorySlots; - container.parentscreen = this; - } - - @Override - protected void drawGuiContainerForegroundLayer(int par1, int par2) { - fontRendererObj.drawString(translate("enchant"), 12, 6, 0x404040); - fontRendererObj.drawString(translate("enchant.level"), 19, 20, 0x404040); - } - - protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { - GlStateManager.color(1, 1, 1, 1); - CCRenderState.changeTexture("textures/gui/container/enchanting_table.png"); - GlStateManager.translate(guiLeft, guiTop, 0); - drawTexturedModalRect(0, 0, 0, 0, xSize, ySize); - - container.onUpdate(i, j); - container.drawSlots(this); - container.drawScrollBar(this); - - String levelstring = "" + container.level; - fontRendererObj.drawString(levelstring, 33 - fontRendererObj.getStringWidth(levelstring) / 2, 34, 0xFF606060); - - GlStateManager.translate(-guiLeft, -guiTop, 0); - } - - public void initGui() { - super.initGui(); - - buttonList.add(new GuiNEIButton(0, width / 2 - 78, height / 2 - 52, 12, 12, "<")); - buttonList.add(new GuiNEIButton(1, width / 2 - 44, height / 2 - 52, 12, 12, ">")); - buttonList.add(new GuiNEIButton(2, width / 2 - 80, height / 2 - 15, 50, 12, lockDisplayString())); - } - - private String lockDisplayString() { - return validateEnchantments() ? translate("enchant.locked") : translate("enchant.unlocked"); - } - - public static boolean validateEnchantments() { - return NEIClientConfig.world.nbt.getBoolean("validateenchantments"); - } - - public static void toggleEnchantmentValidation() { - NEIClientConfig.world.nbt.setBoolean("validateenchantments", !validateEnchantments()); - NEIClientConfig.world.saveNBT(); - } - - protected void actionPerformed(GuiButton guibutton) { - if (guibutton.id == 0) { - changeLevel(-1); - } else if (guibutton.id == 1) { - changeLevel(1); - } else if (guibutton.id == 2) { - toggleEnchantmentValidation(); - container.updateEnchantmentOptions(validateEnchantments()); - guibutton.displayString = lockDisplayString(); - } - } - - private void changeLevel(int i) { - container.level += i; - ((GuiButton) buttonList.get(0)).enabled = container.level != 1; - ((GuiButton) buttonList.get(1)).enabled = container.level != 10; - } - - @Override - protected void mouseClicked(int i, int j, int k) throws IOException { - if (container.clickButton(i, j, k)) { - return; - } - if (container.clickScrollBar(i, j, k)) { - return; - } - - super.mouseClicked(i, j, k); - } - - @Override - protected void mouseReleased(int i, int j, int k) { - container.mouseUp(i, j, k); - super.mouseReleased(i, j, k); - } - - public FontRenderer getFontRenderer() { - return fontRendererObj; - } -} diff --git a/dependencies/main/java/codechicken/nei/GuiExtendedCreativeInv.java b/dependencies/main/java/codechicken/nei/GuiExtendedCreativeInv.java deleted file mode 100644 index 28a3aeaa15..0000000000 --- a/dependencies/main/java/codechicken/nei/GuiExtendedCreativeInv.java +++ /dev/null @@ -1,55 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.render.CCRenderState; -import codechicken.nei.api.INEIGuiHandler; -import codechicken.nei.api.TaggedInventoryArea; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; - -import java.util.Arrays; -import java.util.List; - -public class GuiExtendedCreativeInv extends GuiContainer implements INEIGuiHandler { - public GuiExtendedCreativeInv(Container par1Container) { - super(par1Container); - ySize = 198; - } - - @Override - protected void drawGuiContainerBackgroundLayer(float var1, int var2, int var3) { - GlStateManager.color(1, 1, 1, 1); - CCRenderState.changeTexture("nei:textures/gui/inv.png"); - - int x = guiLeft; - int y = guiTop - 4; - - drawTexturedModalRect(x - 23, y, 0, 0, 199, 204); - } - - @Override - public VisiblityData modifyVisiblity(GuiContainer gui, VisiblityData currentVisibility) { - return currentVisibility; - } - - @Override - public Iterable getItemSpawnSlots(GuiContainer gui, ItemStack item) { - return NEIServerUtils.getRange(0, 54); - } - - @Override - public List getInventoryAreas(GuiContainer gui) { - return Arrays.asList(new TaggedInventoryArea("ExtendedCreativeInv", 0, 54, inventorySlots)); - } - - @Override - public boolean handleDragNDrop(GuiContainer gui, int mousex, int mousey, ItemStack draggedStack, int button) { - return false; - } - - @Override - public boolean hideItemPanelSlot(GuiContainer gui, int x, int y, int w, int h) { - return false; - } -} diff --git a/dependencies/main/java/codechicken/nei/GuiNEIButton.java b/dependencies/main/java/codechicken/nei/GuiNEIButton.java deleted file mode 100644 index 026cca4af7..0000000000 --- a/dependencies/main/java/codechicken/nei/GuiNEIButton.java +++ /dev/null @@ -1,40 +0,0 @@ -package codechicken.nei; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.ResourceLocation; - -public class GuiNEIButton extends GuiButton { - protected static ResourceLocation guiTex = new ResourceLocation("textures/gui/widgets.png"); - - public GuiNEIButton(int i, int j, int k, int l, int i1, String s) { - super(i, j, k, l, i1, s); - } - - public void drawButton(Minecraft minecraft, int i, int j) { - if (!visible) { - return; - } - - FontRenderer fontrenderer = minecraft.fontRendererObj; - minecraft.renderEngine.bindTexture(guiTex); - GlStateManager.color(1, 1, 1, 1); - boolean flag = i >= xPosition && j >= yPosition && i < xPosition + width && j < yPosition + height; - int k = getHoverState(flag); - drawTexturedModalRect(xPosition, yPosition, 0, 46 + k * 20, width / 2, height / 2);//top left - drawTexturedModalRect(xPosition + width / 2, yPosition, 200 - width / 2, 46 + k * 20, width / 2, height / 2);//top right - drawTexturedModalRect(xPosition, yPosition + height / 2, 0, 46 + k * 20 + 20 - height / 2, width / 2, height / 2);//bottom left - drawTexturedModalRect(xPosition + width / 2, yPosition + height / 2, 200 - width / 2, 46 + k * 20 + 20 - height / 2, width / 2, height / 2);//bottom right - mouseDragged(minecraft, i, j); - - if (!enabled) { - drawCenteredString(fontrenderer, displayString, xPosition + width / 2, yPosition + (height - 8) / 2, 0xffa0a0a0); - } else if (flag) { - drawCenteredString(fontrenderer, displayString, xPosition + width / 2, yPosition + (height - 8) / 2, 0xffffa0); - } else { - drawCenteredString(fontrenderer, displayString, xPosition + width / 2, yPosition + (height - 8) / 2, 0xe0e0e0); - } - } -} diff --git a/dependencies/main/java/codechicken/nei/GuiPotionCreator.java b/dependencies/main/java/codechicken/nei/GuiPotionCreator.java deleted file mode 100644 index 4e0e8126d0..0000000000 --- a/dependencies/main/java/codechicken/nei/GuiPotionCreator.java +++ /dev/null @@ -1,339 +0,0 @@ -package codechicken.nei; - -import codechicken.core.gui.GuiCCButton; -import codechicken.core.gui.GuiCCTextField; -import codechicken.core.gui.GuiScrollSlot; -import codechicken.core.inventory.GuiContainerWidget; -import codechicken.lib.render.CCRenderState; -import codechicken.lib.render.FontUtils; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.potion.Potion; -import net.minecraft.potion.PotionEffect; -import net.minecraft.util.StatCollector; - -import java.awt.*; -import java.util.ArrayList; - -public class GuiPotionCreator extends GuiContainerWidget { - public class GuiSlotPotionEffects extends GuiScrollSlot { - public int selectedslot = -1; - public boolean enabled = true; - private ArrayList validPotions = new ArrayList(); - - public GuiSlotPotionEffects(int x, int y) { - super(x, y, 108, 76); - for (Potion p : Potion.potionTypes) { - if (p != null) { - validPotions.add(p); - } - } - setSmoothScroll(false); - setMargins(0, 0, 0, 0); - } - - @Override - public int getSlotHeight(int slot) { - return 19; - } - - @Override - public void drawBackground(float frame) { - super.drawBackground(frame); - drawRect(x, y, x + width, y + height, 0xFF000000); - } - - @Override - public void drawOverlay(float frame) { - } - - @Override - public int scrollbarGuideAlignment() { - return 0; - } - - @Override - public Dimension scrollbarDim() { - Dimension dim = super.scrollbarDim(); - dim.width = 7; - return dim; - } - - @Override - protected void drawSlot(int slot, int x, int y, int mx, int my, float frame) { - GlStateManager.color(1, 1, 1, 1); - Potion potion = validPotions.get(slot); - PotionEffect effect = getEffect(potion.id); - boolean blank = effect == null; - if (effect == null) { - effect = new PotionEffect(potion.id, 1200, 0); - } - int shade = selectedslot == slot ? 2 : blank ? 1 : 0; - - CCRenderState.changeTexture("textures/gui/container/enchanting_table.png"); - drawTexturedModalRect(x, y, 0, 166 + getSlotHeight(slot) * shade, width - 30, getSlotHeight(slot)); - drawTexturedModalRect(x + width - 30, y, width - 23, 166 + getSlotHeight(slot) * shade, 30, getSlotHeight(slot)); - - if (potion.hasStatusIcon()) { - CCRenderState.changeTexture("textures/gui/container/inventory.png"); - int icon = potion.getStatusIconIndex(); - drawTexturedModalRect(x + 1, y + 1, icon % 8 * 18, 198 + icon / 8 * 18, 18, 18); - } - - String name = StatCollector.translateToLocal(potion.getName()); - String amp = effect.getAmplifier() > 0 ? " " + translateAmplifier(effect.getAmplifier()) : ""; - int textColour = shade == 0 ? 0x685e4a : shade == 1 ? 0x407f10 : 0xffff80; - if (fontRenderer.getStringWidth(name + amp) < width - 20) { - fontRenderer.drawString(name + amp, x + 20, y + 1, textColour); - } else { - fontRenderer.drawString(name, x + 20, y + 1, textColour); - FontUtils.drawRightString(amp, x + width - 10, y + 10, textColour); - } - - String duration = Potion.getDurationString(effect); - textColour = shade == 0 ? 0xA0A0A0 : shade == 1 ? 0x808080 : 0xCCCCCC; - fontRenderer.drawStringWithShadow(duration, x + 20, y + 10, textColour); - } - - private PotionEffect getEffect(int id) { - ItemStack potion = container.potionInv.getStackInSlot(0); - if (potion != null && potion.hasTagCompound() && potion.getTagCompound().hasKey("CustomPotionEffects")) { - NBTTagList potionTagList = potion.getTagCompound().getTagList("CustomPotionEffects", 10); - for (int i = 0; i < potionTagList.tagCount(); i++) { - PotionEffect effect = PotionEffect.readCustomPotionEffectFromNBT(potionTagList.getCompoundTagAt(i)); - if (effect.getPotionID() == id) { - return effect; - } - } - } - return null; - } - - @Override - protected int getNumSlots() { - return validPotions.size(); - } - - @Override - protected void slotClicked(int slot, int button, int mx, int my, int count) { - if (!enabled) { - return; - } - - if (button == 0) { - select(slot); - applyEffect(); - } else if (button == 1) { - deselect(); - container.removePotionEffect(validPotions.get(slot).id); - } - } - - public void selectNext() { - if (selectedslot >= 0 && selectedslot + 1 < getNumSlots()) { - select(selectedslot + 1); - showSlot(selectedslot); - } - } - - public void selectPrev() { - if (selectedslot > 0) { - select(selectedslot - 1); - showSlot(selectedslot); - } - } - - public void setEnabled(boolean b) { - if (b == enabled) { - return; - } - enabled = b; - if (!enabled) { - deselect(); - } - } - - private void select(int slot) { - selectedslot = slot; - durationField.setEnabled(true); - PotionEffect effect = getEffect(validPotions.get(slot).id); - if (effect == null) { - effect = new PotionEffect(validPotions.get(slot).id, 1200, 0); - } - durationField.setDurationTicks(effect.getDuration()); - amplifier = effect.getAmplifier(); - validateInputButtons(); - } - - private void deselect() { - selectedslot = -1; - durationField.setEnabled(false); - ampDown.setEnabled(false); - ampUp.setEnabled(false); - } - - public int selectedPotion() { - return validPotions.get(selectedslot).id; - } - } - - public class GuiDurationField extends GuiCCTextField { - private String baseValue; - - public GuiDurationField(int x, int y, int width, int height) { - super(x, y, width, height, "100"); - setMaxStringLength(4); - setAllowedCharacters("0123456789"); - baseValue = getText(); - } - - public void setDurationTicks(int i) { - i /= 20; - String minutes = Integer.toString(i / 60); - String seconds = Integer.toString(i % 60); - if (seconds.length() == 1) { - seconds = '0' + seconds; - } - setText(minutes + seconds); - } - - @Override - public void setEnabled(boolean b) { - super.setEnabled(b); - if (!isEnabled()) { - setText("100"); - } - } - - @Override - public void onFocusChanged() { - if (isFocused()) { - baseValue = getText(); - } else { - if (!validateValue()) { - setText(baseValue); - } else { - applyEffect(); - } - } - } - - @Override - public void onTextChanged(String oldText) { - validateInputButtons(); - } - - private boolean validateValue() { - try { - int i = Integer.parseInt(getText()); - return i > 1 && getDurationTicks() < Short.MAX_VALUE && i / 100 <= 60 && i % 100 < 60; - } catch (NumberFormatException nfe) { - return false; - } - } - - @Override - public void drawText() { - String s = getText(); - String seconds = s.substring(Math.max(0, s.length() - 2), Math.max(0, s.length() - 2) + Math.min(s.length(), 2)); - String minutes = s.length() < 3 ? "" : s.substring(0, s.length() - 2); - int ty = y + height / 2 - 4; - int tcolour = getTextColour(); - FontUtils.drawCenteredString(":", x + width / 2 + 1, ty, tcolour); - FontUtils.drawRightString(seconds, x + width - 3, ty, tcolour); - FontUtils.drawRightString(minutes, x + width / 2 - 1, ty, tcolour); - } - - @Override - public int getTextColour() { - return isFocused() ? 0xCCCCCC : 0x909090; - } - - public int getDurationTicks() { - int i = Integer.parseInt(getText()); - return ((i / 100) * 60 + (i % 100)) * 20; - } - } - - int amplifier = 0; - GuiCCButton ampDown; - GuiCCButton ampUp; - GuiSlotPotionEffects slotPotionEffects; - GuiDurationField durationField; - ContainerPotionCreator container; - - public GuiPotionCreator(InventoryPlayer inventoryplayer) { - super(new ContainerPotionCreator(inventoryplayer, new ContainerPotionCreator.InventoryPotionStore()), 176, 208); - container = (ContainerPotionCreator) inventorySlots; - } - - public void applyEffect() { - if (slotPotionEffects.selectedslot >= 0) { - container.setPotionEffect(slotPotionEffects.selectedPotion(), durationField.getDurationTicks(), amplifier); - } - } - - public String translateAmplifier(int amplifier) { - switch (amplifier) { - case 0: - return "I"; - case 1: - return "II"; - case 2: - return "III"; - case 3: - return "IV"; - case 4: - return "V"; - } - return Integer.toString(amplifier); - } - - public void validateInputButtons() { - ampDown.setEnabled(amplifier > 0); - ampUp.setEnabled(amplifier < 3); - } - - @Override - protected void drawGuiContainerForegroundLayer(int par1, int par2) { - //fontRenderer.drawString("Potion", 12, 6, 0x404040); - } - - @Override - public void drawBackground() { - CCRenderState.changeTexture("nei:textures/gui/potion.png"); - drawTexturedModalRect(0, 0, 0, 0, xSize, ySize); - - FontUtils.drawCenteredString("Favourite Potions", xSize / 2, 4, 0x404040); - fontRendererObj.drawString("Duration", 12, 40, 0x404040); - fontRendererObj.drawString("Level", 19, 73, 0x404040); - FontUtils.drawCenteredString(translateAmplifier(amplifier), 33, 86, 0xFF606060); - } - - @Override - public void addWidgets() { - add(ampDown = new GuiCCButton(10, 84, 12, 12, "<").setActionCommand("ampDown")); - add(ampUp = new GuiCCButton(44, 84, 12, 12, ">").setActionCommand("ampUp")); - add(durationField = new GuiDurationField(15, 53, 35, 12)); - add(slotPotionEffects = new GuiSlotPotionEffects(60, 38)); - } - - @Override - public void updateScreen() { - super.updateScreen(); - slotPotionEffects.setEnabled(container.potionInv.getStackInSlot(0) != null); - } - - @Override - public void actionPerformed(String ident, Object... params) { - if (ident.equals("ampDown")) { - amplifier--; - } else if (ident.equals("ampUp")) { - amplifier++; - } - applyEffect(); - validateInputButtons(); - } -} diff --git a/dependencies/main/java/codechicken/nei/HUDRenderer.java b/dependencies/main/java/codechicken/nei/HUDRenderer.java deleted file mode 100644 index 08eeec104c..0000000000 --- a/dependencies/main/java/codechicken/nei/HUDRenderer.java +++ /dev/null @@ -1,97 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.config.ConfigTag; -import codechicken.nei.KeyManager.IKeyStateTracker; -import codechicken.nei.api.ItemInfo; -import codechicken.nei.guihook.GuiContainerManager; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.item.ItemStack; -import net.minecraft.util.MovingObjectPosition.MovingObjectType; -import net.minecraft.world.World; - -import java.awt.*; -import java.util.ArrayList; -import java.util.List; - -import static codechicken.lib.gui.GuiDraw.*; - -public class HUDRenderer implements IKeyStateTracker { - @Override - public void tickKeyStates() { - if (KeyManager.keyStates.get("world.highlight_tips").down) { - ConfigTag tag = NEIClientConfig.getSetting("world.highlight_tips"); - tag.setBooleanValue(!tag.getBooleanValue()); - } - } - - public static void renderOverlay() { - Minecraft mc = Minecraft.getMinecraft(); - if (mc.currentScreen == null && - mc.theWorld != null && - !mc.gameSettings.keyBindPlayerList.isKeyDown() && - NEIClientConfig.getBooleanSetting("world.highlight_tips") && - mc.objectMouseOver != null && - mc.objectMouseOver.typeOfHit == MovingObjectType.BLOCK) { - World world = mc.theWorld; - ArrayList items = ItemInfo.getIdentifierItems(world, mc.thePlayer, mc.objectMouseOver); - if (items.isEmpty()) { - return; - } - - int minDamage = Integer.MAX_VALUE; - ItemStack stack = null; - for (ItemStack astack : items) { - if (astack.getItem() != null && astack.getItemDamage() < minDamage) { - stack = astack; - minDamage = stack.getItemDamage(); - } - } - - renderOverlay(stack, ItemInfo.getText(stack, world, mc.thePlayer, mc.objectMouseOver), getPositioning()); - } - } - - public static void renderOverlay(ItemStack stack, List textData, Point pos) { - if ((stack == null || stack.getItem() == null) && textData.isEmpty()) { - return; - } - - int w = 0; - for (String s : textData) { - w = Math.max(w, getStringWidth(s) + 29); - } - int h = Math.max(24, 10 + 10 * textData.size()); - - Dimension size = displaySize(); - int x = (size.width - w - 1) * pos.x / 10000; - int y = (size.height - h - 1) * pos.y / 10000; - - GlStateManager.disableRescaleNormal(); - RenderHelper.disableStandardItemLighting(); - GlStateManager.disableDepth(); - - drawTooltipBox(x, y, w, h); - - int ty = (h - 8 * textData.size()) / 2; - for (int i = 0; i < textData.size(); i++) { - drawString(textData.get(i), x + 24, y + ty + 10 * i, 0xFFA0A0A0, true); - } - - GlStateManager.enableRescaleNormal(); - RenderHelper.enableGUIStandardItemLighting(); - - if (stack != null && stack.getItem() != null) { - GuiContainerManager.drawItem(x + 5, y + h / 2 - 8, stack); - } - } - - private static Point getPositioning() { - return new Point(NEIClientConfig.getSetting("world.highlight_tips.x").getIntValue(), NEIClientConfig.getSetting("world.highlight_tips.y").getIntValue()); - } - - public static void load() { - KeyManager.trackers.add(new HUDRenderer()); - } -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/nei/Image.java b/dependencies/main/java/codechicken/nei/Image.java deleted file mode 100644 index 5290e00b7c..0000000000 --- a/dependencies/main/java/codechicken/nei/Image.java +++ /dev/null @@ -1,15 +0,0 @@ -package codechicken.nei; - -public class Image { - public int x; - public int y; - public int width; - public int height; - - public Image(int i, int j, int k, int l) { - x = i; - y = j; - width = k; - height = l; - } -} diff --git a/dependencies/main/java/codechicken/nei/InfiniteStackSizeHandler.java b/dependencies/main/java/codechicken/nei/InfiniteStackSizeHandler.java deleted file mode 100644 index 7f28080549..0000000000 --- a/dependencies/main/java/codechicken/nei/InfiniteStackSizeHandler.java +++ /dev/null @@ -1,49 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.inventory.InventoryUtils; -import codechicken.nei.api.IInfiniteItemHandler; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; - -public class InfiniteStackSizeHandler implements IInfiniteItemHandler { - @Override - public void onPickup(ItemStack heldItem) { - heldItem.stackSize = 1; - } - - @Override - public void onPlaceInfinite(ItemStack heldItem) { - heldItem.stackSize = 111; - } - - @Override - public boolean canHandleItem(ItemStack stack) { - return !stack.isItemStackDamageable(); - } - - @Override - public boolean isItemInfinite(ItemStack stack) { - return stack.stackSize == -1 || stack.stackSize > 100; - } - - @Override - public void replenishInfiniteStack(InventoryPlayer inv, int slotNo) { - ItemStack stack = inv.getStackInSlot(slotNo); - stack.stackSize = 111; - - for (int i = 0; i < inv.getSizeInventory(); i++) { - if (i == slotNo) { - continue; - } - - if (NEIServerUtils.areStacksSameType(stack, inv.getStackInSlot(i))) { - inv.setInventorySlotContents(i, null); - } - } - } - - @Override - public ItemStack getInfiniteItem(ItemStack typeStack) { - return InventoryUtils.copyStack(typeStack, -1); - } -} diff --git a/dependencies/main/java/codechicken/nei/InfiniteToolHandler.java b/dependencies/main/java/codechicken/nei/InfiniteToolHandler.java deleted file mode 100644 index c55aea6677..0000000000 --- a/dependencies/main/java/codechicken/nei/InfiniteToolHandler.java +++ /dev/null @@ -1,37 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.api.IInfiniteItemHandler; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; - -public class InfiniteToolHandler implements IInfiniteItemHandler { - @Override - public void onPickup(ItemStack heldItem) { - heldItem.setItemDamage(0); - } - - @Override - public void onPlaceInfinite(ItemStack heldItem) { - heldItem.setItemDamage(-32000); - } - - @Override - public void replenishInfiniteStack(InventoryPlayer inv, int slotNo) { - inv.getStackInSlot(slotNo).setItemDamage(-32000); - } - - @Override - public boolean canHandleItem(ItemStack stack) { - return stack.getItem().isDamageable() && stack.getMaxStackSize() == 1; - } - - @Override - public boolean isItemInfinite(ItemStack stack) { - return stack.getItemDamage() < -30000; - } - - @Override - public ItemStack getInfiniteItem(ItemStack typeStack) { - return new ItemStack(typeStack.getItem(), 1, -32000); - } -} diff --git a/dependencies/main/java/codechicken/nei/InventoryCraftingDummy.java b/dependencies/main/java/codechicken/nei/InventoryCraftingDummy.java deleted file mode 100644 index fa4ed8473c..0000000000 --- a/dependencies/main/java/codechicken/nei/InventoryCraftingDummy.java +++ /dev/null @@ -1,16 +0,0 @@ -package codechicken.nei; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.InventoryCrafting; - -public class InventoryCraftingDummy extends InventoryCrafting { - public InventoryCraftingDummy() { - super(new Container() { - @Override - public boolean canInteractWith(EntityPlayer entityplayer) { - return true; - } - }, 3, 3); - } -} diff --git a/dependencies/main/java/codechicken/nei/ItemList.java b/dependencies/main/java/codechicken/nei/ItemList.java deleted file mode 100644 index 70963a1078..0000000000 --- a/dependencies/main/java/codechicken/nei/ItemList.java +++ /dev/null @@ -1,261 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.ThreadOperationTimer.TimeoutException; -import codechicken.nei.api.ItemFilter; -import codechicken.nei.api.ItemFilter.ItemFilterProvider; -import codechicken.nei.api.ItemInfo; -import codechicken.nei.guihook.GuiContainerManager; -import com.google.common.collect.ArrayListMultimap; -import com.google.common.collect.ListMultimap; -import net.minecraft.client.resources.model.IBakedModel; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.regex.Pattern; - -public class ItemList { - /** - * Fields are replaced atomically and contents never modified. - */ - public static volatile List items = new ArrayList(); - /** - * Fields are replaced atomically and contents never modified. - */ - public static volatile ListMultimap itemMap = ArrayListMultimap.create(); - /** - * Updates to this should be synchronised on this - */ - public static final List itemFilterers = new LinkedList(); - public static final List loadCallbacks = new LinkedList(); - - private static HashSet erroredItems = new HashSet(); - private static HashSet stackTraces = new HashSet(); - - public static class EverythingItemFilter implements ItemFilter { - @Override - public boolean matches(ItemStack item) { - return true; - } - } - - public static class NothingItemFilter implements ItemFilter { - @Override - public boolean matches(ItemStack item) { - return false; - } - } - - public static class PatternItemFilter implements ItemFilter { - public Pattern pattern; - - public PatternItemFilter(Pattern pattern) { - this.pattern = pattern; - } - - @Override - public boolean matches(ItemStack item) { - return pattern.matcher(ItemInfo.getSearchName(item)).find(); - } - } - - public static class AllMultiItemFilter implements ItemFilter { - public List filters = new LinkedList(); - - public AllMultiItemFilter(List filters) { - this.filters = filters; - } - - public AllMultiItemFilter() { - this(new LinkedList()); - } - - @Override - public boolean matches(ItemStack item) { - for (ItemFilter filter : filters) { - try { - if (!filter.matches(item)) { - return false; - } - } catch (Exception e) { - NEIClientConfig.logger.error("Exception filtering " + item + " with " + filter, e); - } - } - - return true; - } - } - - public static class AnyMultiItemFilter implements ItemFilter { - public List filters = new LinkedList(); - - public AnyMultiItemFilter(List filters) { - this.filters = filters; - } - - public AnyMultiItemFilter() { - this(new LinkedList()); - } - - @Override - public boolean matches(ItemStack item) { - for (ItemFilter filter : filters) { - try { - if (filter.matches(item)) { - return true; - } - } catch (Exception e) { - NEIClientConfig.logger.error("Exception filtering " + item + " with " + filter, e); - } - } - - return false; - } - } - - public interface ItemsLoadedCallback { - void itemsLoaded(); - } - - public static boolean itemMatchesAll(ItemStack item, List filters) { - for (ItemFilter filter : filters) { - try { - if (!filter.matches(item)) { - return false; - } - } catch (Exception e) { - NEIClientConfig.logger.error("Exception filtering " + item + " with " + filter, e); - } - } - - return true; - } - - /** - * @deprecated use getItemListFilter().matches(item) - */ - @Deprecated - public static boolean itemMatches(ItemStack item) { - return getItemListFilter().matches(item); - } - - public static ItemFilter getItemListFilter() { - return new AllMultiItemFilter(getItemFilters()); - } - - public static List getItemFilters() { - LinkedList filters = new LinkedList(); - synchronized (itemFilterers) { - for (ItemFilterProvider p : itemFilterers) { - filters.add(p.getFilter()); - } - } - return filters; - } - - public static final RestartableTask loadItems = new RestartableTask("NEI Item Loading") { - private void damageSearch(Item item, List permutations) { - HashSet damageIconSet = new HashSet(); - for (int damage = 0; damage < 16; damage++) { - try { - ItemStack stack = new ItemStack(item, 1, damage); - IBakedModel model = GuiContainerManager.drawItems.getItemModelMesher().getItemModel(stack); - String name = GuiContainerManager.concatenatedDisplayName(stack, false); - String s = name + "@" + (model == null ? 0 : model.hashCode()); - if (!damageIconSet.contains(s)) { - damageIconSet.add(s); - permutations.add(stack); - } - } catch (TimeoutException t) { - throw t; - } catch (Throwable t) { - NEIServerUtils.logOnce(t, stackTraces, "Ommiting " + item + ":" + damage + " " + item.getClass().getSimpleName(), item.toString()); - } - } - } - - @Override - public void execute() { - ThreadOperationTimer timer = getTimer(500); - - LinkedList items = new LinkedList(); - LinkedList permutations = new LinkedList(); - ListMultimap itemMap = ArrayListMultimap.create(); - - timer.setLimit(500); - for (Item item : Item.itemRegistry) { - if (interrupted()) { - return; - } - - if (item == null || erroredItems.contains(item)) { - continue; - } - - try { - timer.reset(item); - - permutations.clear(); - permutations.addAll(ItemInfo.itemOverrides.get(item)); - - if (permutations.isEmpty()) { - item.getSubItems(item, null, permutations); - } - - if (permutations.isEmpty()) { - damageSearch(item, permutations); - } - - permutations.addAll(ItemInfo.itemVariants.get(item)); - - timer.reset(); - items.addAll(permutations); - itemMap.putAll(item, permutations); - } catch (Throwable t) { - NEIServerConfig.logger.error("Removing item: " + item + " from list.", t); - erroredItems.add(item); - } - } - - if (interrupted()) { - return; - } - ItemList.items = items; - ItemList.itemMap = itemMap; - for (ItemsLoadedCallback callback : loadCallbacks) { - callback.itemsLoaded(); - } - - updateFilter.restart(); - } - }; - - public static final RestartableTask updateFilter = new RestartableTask("NEI Item Filtering") { - @Override - public void execute() { - ArrayList filtered = new ArrayList(); - ItemFilter filter = getItemListFilter(); - for (ItemStack item : items) { - if (interrupted()) { - return; - } - - if (filter.matches(item)) { - filtered.add(item); - } - } - - if (interrupted()) { - return; - } - ItemSorter.sort(filtered); - if (interrupted()) { - return; - } - ItemPanel.updateItemList(filtered); - } - }; -} diff --git a/dependencies/main/java/codechicken/nei/ItemMobSpawner.java b/dependencies/main/java/codechicken/nei/ItemMobSpawner.java deleted file mode 100644 index a81ce68d2e..0000000000 --- a/dependencies/main/java/codechicken/nei/ItemMobSpawner.java +++ /dev/null @@ -1,152 +0,0 @@ -package codechicken.nei; - -import codechicken.core.featurehack.GameDataManipulator; -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityList; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.monster.IMob; -import net.minecraft.entity.passive.EntityPig; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntityMobSpawner; -import net.minecraft.util.BlockPos; -import net.minecraft.world.World; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -public class ItemMobSpawner extends ItemBlock { - private static Map entityHashMap = new HashMap(); - private static Map IDtoNameMap = new HashMap(); - public static int idPig; - private static boolean loaded; - private static ItemMobSpawner instance; - - public static void register() { - GameDataManipulator.replaceItem(Block.getIdFromBlock(Blocks.mob_spawner), instance = new ItemMobSpawner()); - } - - public static void initRender() { - SpawnerRenderer.load(instance); - } - - public ItemMobSpawner() { - super(Blocks.mob_spawner); - setHasSubtypes(true); - } - - /** - * Called from BlockMobSpawner on the client via asm generated onBlockPlacedBy - */ - public static void onBlockPlaced(World world, BlockPos pos, ItemStack stack) { - if (!NEIClientConfig.hasSMPCounterPart()) { - return; - } - - TileEntityMobSpawner tileentitymobspawner = (TileEntityMobSpawner) world.getTileEntity(pos); - if (tileentitymobspawner != null) { - setDefaultTag(stack); - String mobtype = IDtoNameMap.get(stack.getItemDamage()); - if (mobtype != null) { - NEICPH.sendMobSpawnerID(pos.getX(), pos.getY(), pos.getZ(), mobtype); - tileentitymobspawner.getSpawnerBaseLogic().setEntityName(mobtype); - } - } - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer par2EntityPlayer, List list, boolean par4) { - setDefaultTag(itemstack); - int meta = itemstack.getItemDamage(); - if (meta == 0) { - meta = idPig; - } - Entity e = getEntity(meta); - list.add("\u00A7" + (e instanceof IMob ? "4" : "3") + IDtoNameMap.get(meta)); - } - - public static EntityLiving getEntity(int ID) { - EntityLiving e = entityHashMap.get(ID); - if (e == null) { - World world = Minecraft.getMinecraft().theWorld; - Class clazz = EntityList.idToClassMapping.get(ID); - try { - e = (EntityLiving) clazz.getConstructor(World.class).newInstance(world); - } catch (Throwable t) { - if (clazz == null) { - NEIClientConfig.logger.error("Null class for entity (" + ID + ", " + IDtoNameMap.get(ID)); - } else { - NEIClientConfig.logger.error("Error creating instance of entity: " + clazz.getName(), t); - } - e = getEntity(idPig); - } - entityHashMap.put(ID, e); - } - return e; - } - - private static void setDefaultTag(ItemStack itemstack) { - if (!IDtoNameMap.containsKey(itemstack.getItemDamage())) { - itemstack.setItemDamage(idPig); - } - } - - public static void loadSpawners(World world) { - if (loaded) { - return; - } - loaded = true; - HashMap, String> classToStringMapping = (HashMap, String>) EntityList.classToStringMapping; - HashMap, Integer> classToIDMapping = (HashMap, Integer>) EntityList.classToIDMapping; - for (Class entityClass : classToStringMapping.keySet()) { - if (!EntityLiving.class.isAssignableFrom(entityClass)) { - continue; - } - try { - EntityLiving entityliving = (EntityLiving) entityClass.getConstructor(new Class[] { World.class }).newInstance(world); - entityliving.isChild(); - - int id = classToIDMapping.get(entityClass); - String name = classToStringMapping.get(entityClass); - - if (name.equals("EnderDragon")) { - continue; - } - - IDtoNameMap.put(id, name); - - if (name.equals("Pig")) { - idPig = id; - } - } catch (Throwable ignored) { - } - } - - for (Iterator> it = IDtoNameMap.entrySet().iterator(); it.hasNext(); ) { - Entry e = it.next(); - if (getEntity(e.getKey()).getClass() == EntityPig.class && !e.getValue().equals("Pig")) { - it.remove(); - } - } - } - - @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { - if (!NEIClientConfig.hasSMPCounterPart()) { - list.add(new ItemStack(item)); - } else { - for (int i : IDtoNameMap.keySet()) { - list.add(new ItemStack(item, 1, i)); - } - } - } -} diff --git a/dependencies/main/java/codechicken/nei/ItemPanel.java b/dependencies/main/java/codechicken/nei/ItemPanel.java deleted file mode 100644 index 88d09a54f6..0000000000 --- a/dependencies/main/java/codechicken/nei/ItemPanel.java +++ /dev/null @@ -1,378 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.vec.Rectangle4i; -import codechicken.nei.api.GuiInfo; -import codechicken.nei.api.INEIGuiHandler; -import codechicken.nei.guihook.GuiContainerManager; -import codechicken.nei.recipe.GuiCraftingRecipe; -import codechicken.nei.recipe.GuiRecipe; -import codechicken.nei.recipe.GuiUsageRecipe; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -import java.util.ArrayList; - -import static codechicken.lib.gui.GuiDraw.drawRect; - -public class ItemPanel extends Widget { - /** - * Should not be externally modified, use updateItemList - */ - public static ArrayList items = new ArrayList(); - /** - * Swapped into visible items on update - */ - private static ArrayList _items = items; - - public static void updateItemList(ArrayList newItems) { - _items = newItems; - } - - public class ItemPanelSlot { - public ItemStack item; - public int slotIndex; - - public ItemPanelSlot(int index) { - item = items.get(index); - slotIndex = index; - } - } - - public ItemStack draggedStack; - public int mouseDownSlot = -1; - - private int marginLeft; - private int marginTop; - private int rows; - private int columns; - - private boolean[] validSlotMap; - private int firstIndex; - private int itemsPerPage; - - private int page; - private int numPages; - - public void resize() { - items = _items; - - marginLeft = x + (w % 18) / 2; - marginTop = y + (h % 18) / 2; - columns = w / 18; - rows = h / 18; - //sometimes width and height can be negative with certain resizing - if (rows < 0) { - rows = 0; - } - if (columns < 0) { - columns = 0; - } - - calculatePage(); - updateValidSlots(); - } - - private void calculatePage() { - if (itemsPerPage == 0) { - numPages = 0; - } else { - numPages = (int) Math.ceil((float) items.size() / (float) itemsPerPage); - } - - if (firstIndex >= items.size()) { - firstIndex = 0; - } - - if (numPages == 0) { - page = 0; - } else { - page = firstIndex / itemsPerPage + 1; - } - } - - private void updateValidSlots() { - GuiContainer gui = NEIClientUtils.getGuiContainer(); - validSlotMap = new boolean[rows * columns]; - itemsPerPage = 0; - for (int i = 0; i < validSlotMap.length; i++) { - if (slotValid(gui, i)) { - validSlotMap[i] = true; - itemsPerPage++; - } - } - } - - private boolean slotValid(GuiContainer gui, int i) { - Rectangle4i rect = getSlotRect(i); - for (INEIGuiHandler handler : GuiInfo.guiHandlers) { - if (handler.hideItemPanelSlot(gui, rect.x, rect.y, rect.w, rect.h)) { - return false; - } - } - return true; - } - - public Rectangle4i getSlotRect(int i) { - return getSlotRect(i / columns, i % columns); - } - - public Rectangle4i getSlotRect(int row, int column) { - return new Rectangle4i(marginLeft + column * 18, marginTop + row * 18, 18, 18); - } - - @Override - public void draw(int mousex, int mousey) { - if (itemsPerPage == 0) { - return; - } - - GuiContainerManager.enableMatrixStackLogging(); - int index = firstIndex; - for (int i = 0; i < rows * columns && index < items.size(); i++) { - if (validSlotMap[i]) { - Rectangle4i rect = getSlotRect(i); - if (rect.contains(mousex, mousey)) { - drawRect(rect.x, rect.y, rect.w, rect.h, 0xee555555);//highlight - } - - GuiContainerManager.drawItem(rect.x + 1, rect.y + 1, items.get(index)); - - index++; - } - } - GuiContainerManager.disableMatrixStackLogging(); - } - - @Override - public void postDraw(int mousex, int mousey) { - if (draggedStack != null) { - GuiContainerManager.drawItems.zLevel += 100; - GuiContainerManager.drawItem(mousex - 8, mousey - 8, draggedStack); - GuiContainerManager.drawItems.zLevel -= 100; - } - } - - @Override - public void mouseDragged(int mousex, int mousey, int button, long heldTime) { - if (mouseDownSlot >= 0 && draggedStack == null && NEIClientUtils.getHeldItem() == null && - NEIClientConfig.hasSMPCounterPart() && !GuiInfo.hasCustomSlots(NEIClientUtils.getGuiContainer())) { - ItemPanelSlot mouseOverSlot = getSlotMouseOver(mousex, mousey); - ItemStack stack = new ItemPanelSlot(mouseDownSlot).item; - if (stack != null && (mouseOverSlot == null || mouseOverSlot.slotIndex != mouseDownSlot || heldTime > 500)) { - int amount = NEIClientConfig.getItemQuantity(); - if (amount == 0) { - amount = stack.getMaxStackSize(); - } - - draggedStack = NEIServerUtils.copyStack(stack, amount); - } - } - } - - @Override - public boolean handleClick(int mousex, int mousey, int button) { - if (handleDraggedClick(mousex, mousey, button)) { - return true; - } - - if (NEIClientUtils.getHeldItem() != null) { - for (INEIGuiHandler handler : GuiInfo.guiHandlers) { - if (handler.hideItemPanelSlot(NEIClientUtils.getGuiContainer(), mousex, mousey, 1, 1)) { - return false; - } - } - - if (NEIClientConfig.canPerformAction("delete") && NEIClientConfig.canPerformAction("item")) { - if (button == 1) { - NEIClientUtils.decreaseSlotStack(-999); - } else { - NEIClientUtils.deleteHeldItem(); - } - } else { - NEIClientUtils.dropHeldItem(); - } - - return true; - } - - ItemPanelSlot hoverSlot = getSlotMouseOver(mousex, mousey); - if (hoverSlot != null) { - if (button == 2) { - ItemStack stack = hoverSlot.item; - if (stack != null) { - int amount = NEIClientConfig.getItemQuantity(); - if (amount == 0) { - amount = stack.getMaxStackSize(); - } - - draggedStack = NEIServerUtils.copyStack(stack, amount); - } - } else { - mouseDownSlot = hoverSlot.slotIndex; - } - return true; - } - return false; - } - - private boolean handleDraggedClick(int mousex, int mousey, int button) { - if (draggedStack == null) { - return false; - } - - GuiContainer gui = NEIClientUtils.getGuiContainer(); - boolean handled = false; - for (INEIGuiHandler handler : GuiInfo.guiHandlers) { - if (handler.handleDragNDrop(gui, mousex, mousey, draggedStack, button)) { - handled = true; - if (draggedStack.stackSize == 0) { - draggedStack = null; - return true; - } - } - } - - if (handled) { - return true; - } - - Slot overSlot = gui.getSlotAtPosition(mousex, mousey); - if (overSlot != null && overSlot.isItemValid(draggedStack)) { - if (NEIClientConfig.canCheatItem(draggedStack)) { - int contents = overSlot.getHasStack() ? overSlot.getStack().stackSize : 0; - int add = button == 0 ? draggedStack.stackSize : 1; - if (overSlot.getHasStack() && !NEIServerUtils.areStacksSameType(draggedStack, overSlot.getStack())) { - contents = 0; - } - int total = Math.min(contents + add, Math.min(overSlot.getSlotStackLimit(), draggedStack.getMaxStackSize())); - - if (total > contents) { - NEIClientUtils.setSlotContents(overSlot.slotNumber, NEIServerUtils.copyStack(draggedStack, total), true); - NEICPH.sendGiveItem(NEIServerUtils.copyStack(draggedStack, total), false, false); - draggedStack.stackSize -= total - contents; - } - if (draggedStack.stackSize == 0) { - draggedStack = null; - } - } else { - draggedStack = null; - } - } else if (mousex < gui.guiLeft || mousey < gui.guiTop || mousex >= gui.guiLeft + gui.xSize || mousey >= gui.guiTop + gui.ySize) { - draggedStack = null; - } - - return true; - } - - @Override - public boolean handleClickExt(int mousex, int mousey, int button) { - return handleDraggedClick(mousex, mousey, button); - } - - @Override - public void mouseUp(int mousex, int mousey, int button) { - ItemPanelSlot hoverSlot = getSlotMouseOver(mousex, mousey); - if (hoverSlot != null && hoverSlot.slotIndex == mouseDownSlot && draggedStack == null) { - ItemStack item = hoverSlot.item; - if (NEIController.manager.window instanceof GuiRecipe || !NEIClientConfig.canCheatItem(item)) { - if (button == 0) { - GuiCraftingRecipe.openRecipeGui("item", item); - } else if (button == 1) { - GuiUsageRecipe.openRecipeGui("item", item); - } - - draggedStack = null; - mouseDownSlot = -1; - return; - } - - NEIClientUtils.cheatItem(item, button, -1); - } - - mouseDownSlot = -1; - } - - @Override - public boolean onMouseWheel(int i, int mousex, int mousey) { - if (!contains(mousex, mousey)) { - return false; - } - - scroll(-i); - return true; - } - - @Override - public boolean handleKeyPress(int keyID, char keyChar) { - if (keyID == NEIClientConfig.getKeyBinding("gui.next")) { - scroll(1); - return true; - } - if (keyID == NEIClientConfig.getKeyBinding("gui.prev")) { - scroll(-1); - return true; - } - return false; - } - - @Override - public ItemStack getStackMouseOver(int mousex, int mousey) { - ItemPanelSlot slot = getSlotMouseOver(mousex, mousey); - return slot == null ? null : slot.item; - } - - public ItemPanelSlot getSlotMouseOver(int mousex, int mousey) { - int index = firstIndex; - for (int i = 0; i < rows * columns && index < items.size(); i++) { - if (validSlotMap[i]) { - if (getSlotRect(i).contains(mousex, mousey)) { - return new ItemPanelSlot(index); - } - index++; - } - } - - return null; - } - - public void scroll(int i) { - if (itemsPerPage != 0) { - int oldIndex = firstIndex; - firstIndex += i * itemsPerPage; - if (firstIndex >= items.size()) { - firstIndex = 0; - } - if (firstIndex < 0) { - if (oldIndex > 0) { - firstIndex = 0; - } else { - firstIndex = (items.size() - 1) / itemsPerPage * itemsPerPage; - } - } - - calculatePage(); - } - } - - public int getPage() { - return page; - } - - public int getNumPages() { - return numPages; - } - - @Override - public boolean contains(int px, int py) { - GuiContainer gui = NEIClientUtils.getGuiContainer(); - Rectangle4i rect = new Rectangle4i(px, py, 1, 1); - for (INEIGuiHandler handler : GuiInfo.guiHandlers) { - if (handler.hideItemPanelSlot(gui, rect.x, rect.y, rect.w, rect.h)) { - return false; - } - } - - return super.contains(px, py); - } -} diff --git a/dependencies/main/java/codechicken/nei/ItemQuantityField.java b/dependencies/main/java/codechicken/nei/ItemQuantityField.java deleted file mode 100644 index 9c9e0d0b28..0000000000 --- a/dependencies/main/java/codechicken/nei/ItemQuantityField.java +++ /dev/null @@ -1,46 +0,0 @@ -package codechicken.nei; - -public class ItemQuantityField extends TextField { - public ItemQuantityField(String ident) { - super(ident); - centered = true; - } - - @Override - public boolean isValid(String string) { - if (string.equals("")) { - return true; - } - - try { - return Integer.parseInt(string) >= 0; - } catch (NumberFormatException nfe) { - return false; - } - } - - public int intValue() { - return intValue(text()); - } - - public int intValue(String s) { - try { - return Integer.parseInt(s); - } catch (NumberFormatException nfe) { - return 0; - } - } - - @Override - public void loseFocus() { - setText(Integer.toString(NEIClientConfig.getItemQuantity())); - } - - @Override - public void onTextChange(String oldText) { - if (intValue(oldText) != intValue())//hacky recursion stopper - { - NEIClientUtils.setItemQuantity(intValue()); - } - } -} diff --git a/dependencies/main/java/codechicken/nei/ItemSorter.java b/dependencies/main/java/codechicken/nei/ItemSorter.java deleted file mode 100644 index 18918ac8ae..0000000000 --- a/dependencies/main/java/codechicken/nei/ItemSorter.java +++ /dev/null @@ -1,202 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.config.ConfigTagParent; -import codechicken.nei.ItemList.ItemsLoadedCallback; -import codechicken.nei.api.API; -import codechicken.nei.api.ItemInfo; -import codechicken.nei.config.GuiItemSorter; -import codechicken.nei.config.OptionOpenGui; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.StatCollector; - -import java.util.*; - -public class ItemSorter implements Comparator, ItemsLoadedCallback { - public static class SortEntry { - public String name; - public Comparator comparator; - - public SortEntry(String name, Comparator comparator) { - this.name = name; - this.comparator = comparator; - } - - public String getLocalisedName() { - return StatCollector.translateToLocal(name); - } - - public String getTooltip() { - String tipname = name + ".tip"; - String tip = StatCollector.translateToLocal(tipname); - return !tip.equals(tipname) ? tip : null; - } - } - - public static ArrayList entries = new ArrayList(); - public static ArrayList list = new ArrayList(); - public static final ItemSorter instance = new ItemSorter(); - - //optimisations - public HashMap ordering = null; - - public static void sort(ArrayList items) { - try { - Collections.sort(items, instance); - } catch (Exception e) { - NEIClientConfig.logger.error("Exception sorting item list", e); - } - } - - @Override - public int compare(ItemStack o1, ItemStack o2) { - for (SortEntry e : list) { - int c = e.comparator.compare(o1, o2); - if (c != 0) { - return c; - } - } - return 0; - } - - @Override - public void itemsLoaded() { - HashMap newMap = new HashMap(); - int i = 0; - for (ItemStack stack : ItemList.items) { - newMap.put(stack, i++); - } - ordering = newMap; - } - - public static SortEntry find(String name) { - for (SortEntry e : entries) { - if (e.name.equals(name)) { - return e; - } - } - - return null; - } - - public static int compareInt(int a, int b) { - return a == b ? 0 : a < b ? -1 : 1; - } - - public static void add(String name, Comparator comparator) { - SortEntry e = new SortEntry(name, comparator); - entries.add(e); - ArrayList nlist = new ArrayList(list); - nlist.add(e); - list = nlist;//concurrency - } - - public static void initConfig(ConfigTagParent tag) { - //minecraft, mod, id, default, meta, name - API.addSortOption("nei.itemsort.minecraft", new Comparator() { - @Override - public int compare(ItemStack o1, ItemStack o2) { - boolean m1 = "minecraft".equals(ItemInfo.itemOwners.get(o1.getItem())); - boolean m2 = "minecraft".equals(ItemInfo.itemOwners.get(o2.getItem())); - return m1 == m2 ? 0 : m1 ? -1 : 1; - } - }); - API.addSortOption("nei.itemsort.mod", new Comparator() { - @Override - public int compare(ItemStack o1, ItemStack o2) { - String mod1 = ItemInfo.itemOwners.get(o1.getItem()); - String mod2 = ItemInfo.itemOwners.get(o2.getItem()); - if (mod1 == null) { - return mod2 == null ? 0 : 1; - } - if (mod2 == null) { - return -1; - } - return mod1.compareTo(mod2); - } - }); - API.addSortOption("nei.itemsort.id", new Comparator() { - @Override - public int compare(ItemStack o1, ItemStack o2) { - int id1 = Item.getIdFromItem(o1.getItem()); - int id2 = Item.getIdFromItem(o2.getItem()); - return compareInt(id1, id2); - } - }); - API.addSortOption("nei.itemsort.default", new Comparator() { - @Override - public int compare(ItemStack o1, ItemStack o2) { - Integer order1 = instance.ordering.get(o1); - Integer order2 = instance.ordering.get(o2); - if (order1 == null) { - return order2 == null ? 0 : 1; - } - if (order2 == null) { - return -1; - } - return compareInt(order1, order2); - } - }); - API.addSortOption("nei.itemsort.damage", new Comparator() { - @Override - public int compare(ItemStack o1, ItemStack o2) { - int id1 = o1.getItemDamage(); - int id2 = o2.getItemDamage(); - return compareInt(id1, id2); - } - }); - API.addSortOption("nei.itemsort.name", new Comparator() { - @Override - public int compare(ItemStack o1, ItemStack o2) { - String name1 = ItemInfo.getSearchName(o1); - String name2 = ItemInfo.getSearchName(o2); - return name1.compareTo(name2); - } - }); - tag.getTag("inventory.itemsort").setDefaultValue(getSaveString(list)); - API.addOption(new OptionOpenGui("inventory.itemsort", GuiItemSorter.class) { - @Override - public void useGlobals() { - super.useGlobals(); - list = fromSaveString(activeTag().getValue()); - } - }); - ItemList.loadCallbacks.add(instance); - } - - public static String getSaveString(List list) { - StringBuilder sb = new StringBuilder(); - for (SortEntry e : list) { - if (sb.length() > 0) { - sb.append(','); - } - sb.append(e.name); - } - return sb.toString(); - } - - public static ArrayList fromSaveString(String s) { - if (s == null) { - return new ArrayList(entries); - } - - ArrayList list = new ArrayList(); - for (String s2 : s.split(",")) { - SortEntry e = find(s2.trim()); - if (e != null) { - list.add(e); - } - } - for (SortEntry e : entries) { - if (!list.contains(e)) { - list.add(e); - } - } - - return list; - } - - public static void loadConfig() { - list = fromSaveString(NEIClientConfig.getStringSetting("inventory.itemsort")); - } -} diff --git a/dependencies/main/java/codechicken/nei/ItemStackMap.java b/dependencies/main/java/codechicken/nei/ItemStackMap.java deleted file mode 100644 index 42c1067b31..0000000000 --- a/dependencies/main/java/codechicken/nei/ItemStackMap.java +++ /dev/null @@ -1,308 +0,0 @@ -package codechicken.nei; - -import com.google.common.base.Objects; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import static codechicken.lib.inventory.InventoryUtils.actualDamage; -import static codechicken.lib.inventory.InventoryUtils.newItemStack; -import static net.minecraftforge.oredict.OreDictionary.WILDCARD_VALUE; - -/** - * A maplike class for ItemStack keys with wildcard damage/NBT. Optimised for lookup - */ -public class ItemStackMap { - public static class StackMetaKey { - public int damage; - public NBTTagCompound tag; - - public StackMetaKey(int damage, NBTTagCompound tag) { - this.damage = damage; - this.tag = tag; - } - - public StackMetaKey(ItemStack key) { - this(actualDamage(key), key.getTagCompound()); - } - - public int hashCode() { - return Objects.hashCode(damage, tag); - } - - public boolean equals(Object o) { - if (!(o instanceof StackMetaKey)) { - return false; - } - StackMetaKey t = (StackMetaKey) o; - return damage == t.damage && Objects.equal(tag, t.tag); - } - } - - public static class Entry { - public ItemStack key; - public T value; - - public Entry(ItemStack key, T value) { - this.key = key; - this.value = value; - } - } - - public class DetailMap { - private boolean hasWildcard; - private T wildcard; - private HashMap damageMap; - private HashMap tagMap; - private HashMap metaMap; - private int size; - - public T get(ItemStack key) { - if (wildcard != null) { - return wildcard; - } - - if (damageMap != null) { - T ret = damageMap.get(actualDamage(key)); - if (ret != null) { - return ret; - } - } - if (tagMap != null) { - T ret = tagMap.get(key.getTagCompound()); - if (ret != null) { - return ret; - } - } - if (metaMap != null) { - return metaMap.get(new StackMetaKey(key)); - } - - return null; - } - - public T put(ItemStack key, T value) { - try { - switch (getKeyType(actualDamage(key), key.getTagCompound())) { - case 0: - if (metaMap == null) { - metaMap = new HashMap(); - } - return metaMap.put(new StackMetaKey(key), value); - case 1: - if (tagMap == null) { - tagMap = new HashMap(); - } - return tagMap.put(key.getTagCompound(), value); - case 2: - if (damageMap == null) { - damageMap = new HashMap(); - } - return damageMap.put(actualDamage(key), value); - case 3: - T ret = wildcard; - wildcard = value; - hasWildcard = true; - return ret; - } - } finally { - updateSize(); - } - return null; - } - - public T remove(ItemStack key) { - try { - switch (getKeyType(actualDamage(key), key.getTagCompound())) { - case 0: - return metaMap != null ? metaMap.remove(new StackMetaKey(key)) : null; - case 1: - return tagMap != null ? tagMap.remove(key.getTagCompound()) : null; - case 2: - return damageMap != null ? damageMap.remove(actualDamage(key)) : null; - case 3: - T ret = wildcard; - wildcard = null; - hasWildcard = false; - return ret; - } - } finally { - updateSize(); - } - return null; - } - - private void updateSize() { - int newSize = (hasWildcard ? 1 : 0) + - (metaMap != null ? metaMap.size() : 0) + - (tagMap != null ? tagMap.size() : 0) + - (damageMap != null ? damageMap.size() : 0); - - if (newSize != size) { - ItemStackMap.this.size += newSize - size; - size = newSize; - } - } - - public void addKeys(Item item, List list) { - if (wildcard != null) { - list.add(wildcard(item)); - } - if (damageMap != null) { - for (int damage : damageMap.keySet()) { - list.add(newItemStack(item, 1, damage, WILDCARD_TAG)); - } - } - if (tagMap != null) { - for (NBTTagCompound tag : tagMap.keySet()) { - list.add(newItemStack(item, 1, WILDCARD_VALUE, tag)); - } - } - if (metaMap != null) { - for (StackMetaKey key : metaMap.keySet()) { - list.add(newItemStack(item, 1, key.damage, key.tag)); - } - } - } - - public void addValues(List list) { - if (wildcard != null) { - list.add(wildcard); - } - if (damageMap != null) { - list.addAll(damageMap.values()); - } - if (tagMap != null) { - list.addAll(tagMap.values()); - } - if (metaMap != null) { - list.addAll(metaMap.values()); - } - } - - public void addEntries(Item item, List> list) { - if (wildcard != null) { - list.add(new Entry(newItemStack(item, 1, WILDCARD_VALUE, WILDCARD_TAG), wildcard)); - } - if (damageMap != null) { - for (Map.Entry entry : damageMap.entrySet()) { - list.add(new Entry(newItemStack(item, 1, entry.getKey(), WILDCARD_TAG), entry.getValue())); - } - } - if (tagMap != null) { - for (Map.Entry entry : tagMap.entrySet()) { - list.add(new Entry(newItemStack(item, 1, WILDCARD_VALUE, entry.getKey()), entry.getValue())); - } - } - if (metaMap != null) { - for (Map.Entry entry : metaMap.entrySet()) { - list.add(new Entry(newItemStack(item, 1, entry.getKey().damage, entry.getKey().tag), entry.getValue())); - } - } - } - } - - public static int getKeyType(int damage, NBTTagCompound tag) { - int i = 0; - if (isWildcard(damage)) { - i = 1; - } - if (isWildcard(tag)) { - i |= 2; - } - return i; - } - - public static ItemStack wildcard(Item item) { - return newItemStack(item, 1, WILDCARD_VALUE, WILDCARD_TAG); - } - - public static boolean isWildcard(int damage) { - return damage == WILDCARD_VALUE; - } - - public static boolean isWildcard(NBTTagCompound tag) { - return tag != null && tag.getBoolean("*"); - } - - public static NBTTagCompound WILDCARD_TAG; - - static { - WILDCARD_TAG = new NBTTagCompound(); - WILDCARD_TAG.setBoolean("*", true); - } - - private HashMap itemMap = new HashMap(); - private int size; - - public T get(ItemStack key) { - if (key == null || key.getItem() == null) { - return null; - } - - DetailMap map = itemMap.get(key.getItem()); - return map == null ? null : map.get(key); - } - - public void put(ItemStack key, T value) { - if (key == null || key.getItem() == null) { - return; - } - - DetailMap map = itemMap.get(key.getItem()); - if (map == null) { - itemMap.put(key.getItem(), map = new DetailMap()); - } - map.put(key, value); - } - - public void clear() { - itemMap.clear(); - } - - public T remove(ItemStack key) { - if (key == null || key.getItem() == null) { - return null; - } - - DetailMap map = itemMap.get(key.getItem()); - return map == null ? null : map.remove(key); - } - - public List keys() { - LinkedList list = new LinkedList(); - for (Map.Entry entry : itemMap.entrySet()) { - entry.getValue().addKeys(entry.getKey(), list); - } - return list; - } - - public List values() { - LinkedList list = new LinkedList(); - for (DetailMap map : itemMap.values()) { - map.addValues(list); - } - return list; - } - - public List> entries() { - LinkedList> list = new LinkedList>(); - for (Map.Entry entry : itemMap.entrySet()) { - entry.getValue().addEntries(entry.getKey(), list); - } - return list; - } - - public int size() { - return size; - } - - public boolean isEmpty() { - return size == 0; - } -} diff --git a/dependencies/main/java/codechicken/nei/ItemStackSet.java b/dependencies/main/java/codechicken/nei/ItemStackSet.java deleted file mode 100644 index 4fbcf1b10d..0000000000 --- a/dependencies/main/java/codechicken/nei/ItemStackSet.java +++ /dev/null @@ -1,58 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.api.ItemFilter; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemStackSet extends ItemStackMap implements ItemFilter { - public ItemStackSet with(ItemStack... items) { - for (ItemStack item : items) { - add(item); - } - return this; - } - - public ItemStackSet with(Item... items) { - for (Item item : items) { - add(ItemStackMap.wildcard(item)); - } - return this; - } - - public ItemStackSet with(Block... blocks) { - for (Block block : blocks) { - add(ItemStackMap.wildcard(Item.getItemFromBlock(block))); - } - return this; - } - - public void add(ItemStack item) { - put(item, item); - } - - public boolean contains(ItemStack item) { - return get(item) != null; - } - - public boolean containsAll(Item item) { - return get(ItemStackMap.wildcard(item)) != null; - } - - @Override - public boolean matches(ItemStack item) { - return contains(item); - } - - public static ItemStackSet of(Block... blocks) { - return new ItemStackSet().with(blocks); - } - - public static ItemStackSet of(Item... items) { - return new ItemStackSet().with(items); - } - - public static ItemStackSet of(ItemStack... items) { - return new ItemStackSet().with(items); - } -} diff --git a/dependencies/main/java/codechicken/nei/KeyManager.java b/dependencies/main/java/codechicken/nei/KeyManager.java deleted file mode 100644 index 3913379e55..0000000000 --- a/dependencies/main/java/codechicken/nei/KeyManager.java +++ /dev/null @@ -1,45 +0,0 @@ -package codechicken.nei; - -import org.lwjgl.input.Keyboard; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.Map.Entry; - -/** - * Good old down/held/up keystate tracker - */ -public class KeyManager { - public static interface IKeyStateTracker { - public void tickKeyStates(); - } - - public static class KeyState { - public boolean down; - public boolean held; - public boolean up; - } - - public static HashMap keyStates = new HashMap(); - public static LinkedList trackers = new LinkedList(); - - public static void tickKeyStates() { - for (Entry entry : keyStates.entrySet()) { - int keyCode = NEIClientConfig.getKeyBinding(entry.getKey()); - boolean down = keyCode != 0 && Keyboard.isKeyDown(keyCode); - KeyState state = entry.getValue(); - if (down) { - state.down = !state.held; - state.up = false; - } else { - state.up = state.held; - state.down = false; - } - state.held = down; - } - - for (IKeyStateTracker tracker : trackers) { - tracker.tickKeyStates(); - } - } -} diff --git a/dependencies/main/java/codechicken/nei/Label.java b/dependencies/main/java/codechicken/nei/Label.java deleted file mode 100644 index da55025e63..0000000000 --- a/dependencies/main/java/codechicken/nei/Label.java +++ /dev/null @@ -1,29 +0,0 @@ -package codechicken.nei; - -import static codechicken.lib.gui.GuiDraw.drawString; -import static codechicken.lib.gui.GuiDraw.drawStringC; - -public class Label extends Widget { - boolean centered; - int colour; - String text; - - public Label(String s, boolean center, int color) { - text = s; - centered = center; - colour = color; - } - - public Label(String s, boolean center) { - this(s, center, 0xFFFFFFFF); - } - - @Override - public void draw(int mousex, int mousey) { - if (centered) { - drawStringC(text, x, y, colour); - } else { - drawString(text, x, y, colour); - } - } -} diff --git a/dependencies/main/java/codechicken/nei/LayoutManager.java b/dependencies/main/java/codechicken/nei/LayoutManager.java deleted file mode 100644 index 56bd151471..0000000000 --- a/dependencies/main/java/codechicken/nei/LayoutManager.java +++ /dev/null @@ -1,857 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.gui.GuiDraw; -import codechicken.nei.KeyManager.IKeyStateTracker; -import codechicken.nei.api.*; -import codechicken.nei.guihook.*; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.gui.inventory.GuiContainerCreative; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.InventoryEffectRenderer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import org.lwjgl.opengl.GL11; - -import java.util.HashMap; -import java.util.List; -import java.util.TreeSet; - -import static codechicken.lib.gui.GuiDraw.*; -import static codechicken.nei.NEIClientConfig.*; -import static codechicken.nei.NEIClientUtils.*; - -public class LayoutManager implements IContainerInputHandler, IContainerTooltipHandler, IContainerDrawHandler, IContainerObjectHandler, IKeyStateTracker { - private static LayoutManager instance; - - private static Widget inputFocused; - /** - * Sorted bottom first - */ - private static TreeSet drawWidgets; - /** - * Sorted top first - */ - private static TreeSet controlWidgets; - - public static ItemPanel itemPanel; - public static SubsetWidget dropDown; - public static TextField searchField; - - public static Button options; - - public static Button prev; - public static Button next; - public static Label pageLabel; - public static Button more; - public static Button less; - public static ItemQuantityField quantity; - - public static SaveLoadButton[] stateButtons; - public static Button[] deleteButtons; - - public static Button delete; - public static ButtonCycled gamemode; - public static Button rain; - public static Button magnet; - public static Button[] timeButtons = new Button[4]; - public static Button heal; - - public static IRecipeOverlayRenderer overlayRenderer; - - public static HashMap layoutStyles = new HashMap(); - - public static void load() { - API.addLayoutStyle(0, new LayoutStyleMinecraft()); - API.addLayoutStyle(1, new LayoutStyleTMIOld()); - - instance = new LayoutManager(); - KeyManager.trackers.add(instance); - GuiContainerManager.addInputHandler(instance); - GuiContainerManager.addTooltipHandler(instance); - GuiContainerManager.addDrawHandler(instance); - GuiContainerManager.addObjectHandler(instance); - init(); - } - - @Override - public void onPreDraw(GuiContainer gui) { - if (!isHidden() && isEnabled() && gui instanceof InventoryEffectRenderer)//Reset the gui to the center of the screen, for potion effect offsets etc - { - gui.guiLeft = (gui.width - gui.xSize) / 2; - gui.guiTop = (gui.height - gui.ySize) / 2; - - if (gui instanceof GuiContainerCreative && gui.buttonList.size() >= 2) { - GuiButton button1 = (GuiButton) gui.buttonList.get(0); - GuiButton button2 = (GuiButton) gui.buttonList.get(1); - button1.xPosition = gui.guiLeft; - button2.xPosition = gui.guiLeft + gui.xSize - 20; - } - } - } - - @Override - public void onMouseClicked(GuiContainer gui, int mousex, int mousey, int button) { - if (isHidden()) { - return; - } - - for (Widget widget : controlWidgets) { - widget.onGuiClick(mousex, mousey); - } - } - - @Override - public boolean mouseClicked(GuiContainer gui, int mousex, int mousey, int button) { - if (isHidden()) { - return false; - } - - if (!isEnabled()) { - return options.contains(mousex, mousey) && options.handleClick(mousex, mousey, button); - } - - for (Widget widget : controlWidgets) { - widget.onGuiClick(mousex, mousey); - if (widget.contains(mousex, mousey) ? widget.handleClick(mousex, mousey, button) : widget.handleClickExt(mousex, mousey, button)) { - return true; - } - } - - return false; - } - - @Override - public boolean objectUnderMouse(GuiContainer gui, int mousex, int mousey) { - if (!isHidden() && isEnabled()) { - for (Widget widget : controlWidgets) { - if (widget.contains(mousex, mousey)) { - return true; - } - } - } - - return false; - } - - public boolean keyTyped(GuiContainer gui, char keyChar, int keyID) { - if (isEnabled() && !isHidden()) { - if (inputFocused != null) { - return inputFocused.handleKeyPress(keyID, keyChar); - } - - for (Widget widget : controlWidgets) { - if (widget.handleKeyPress(keyID, keyChar)) { - return true; - } - } - } - - return false; - } - - @Override - public void onKeyTyped(GuiContainer gui, char keyChar, int keyID) { - } - - @Override - public boolean lastKeyTyped(GuiContainer gui, char keyChar, int keyID) { - if (keyID == getKeyBinding("gui.hide")) { - toggleBooleanSetting("inventory.hidden"); - return true; - } - if (isEnabled() && !isHidden()) { - for (Widget widget : controlWidgets) { - if (inputFocused == null) { - widget.lastKeyTyped(keyID, keyChar); - } - } - } - return false; - } - - public void onMouseUp(GuiContainer gui, int mx, int my, int button) { - if (!isHidden() && isEnabled()) { - for (Widget widget : controlWidgets) { - widget.mouseUp(mx, my, button); - } - } - } - - @Override - public void onMouseDragged(GuiContainer gui, int mx, int my, int button, long heldTime) { - if (!isHidden() && isEnabled()) { - for (Widget widget : controlWidgets) { - widget.mouseDragged(mx, my, button, heldTime); - } - } - } - - @Override - public ItemStack getStackUnderMouse(GuiContainer gui, int mousex, int mousey) { - if (!isHidden() && isEnabled()) { - for (Widget widget : controlWidgets) { - ItemStack stack = widget.getStackMouseOver(mousex, mousey); - if (stack != null) { - return stack; - } - } - } - return null; - } - - public void renderObjects(GuiContainer gui, int mousex, int mousey) { - if (!isHidden()) { - layout(gui); - if (isEnabled()) { - getLayoutStyle().drawBackground(GuiContainerManager.getManager(gui)); - for (Widget widget : drawWidgets) { - widget.draw(mousex, mousey); - } - } else { - options.draw(mousex, mousey); - } - - GlStateManager.enableLighting(); - GlStateManager.disableDepth(); - } - } - - @Override - public void postRenderObjects(GuiContainer gui, int mousex, int mousey) { - if (!isHidden() && isEnabled()) { - for (Widget widget : drawWidgets) { - widget.postDraw(mousex, mousey); - } - } - } - - @Override - public List handleTooltip(GuiContainer gui, int mousex, int mousey, List currenttip) { - if (!isHidden() && isEnabled() && GuiContainerManager.shouldShowTooltip(gui)) { - for (Widget widget : controlWidgets) { - currenttip = widget.handleTooltip(mousex, mousey, currenttip); - } - } - return currenttip; - } - - @Override - public List handleItemDisplayName(GuiContainer gui, ItemStack stack, List currenttip) { - String overridename = ItemInfo.getNameOverride(stack); - if (overridename != null) { - currenttip.set(0, overridename); - } - - String mainname = currenttip.get(0); - if (showIDs()) { - mainname += " " + Item.getIdFromItem(stack.getItem()); - if (stack.getItemDamage() != 0) { - mainname += ":" + stack.getItemDamage(); - } - - currenttip.set(0, mainname); - } - - return currenttip; - } - - @Override - public List handleItemTooltip(GuiContainer gui, ItemStack itemstack, int mousex, int mousey, List currenttip) { - return currenttip; - } - - public static void layout(GuiContainer gui) { - VisiblityData visiblity = new VisiblityData(); - if (isHidden()) { - visiblity.showNEI = false; - } - if (gui.height - gui.ySize <= 40) { - visiblity.showSearchSection = false; - } - if (gui.guiLeft - 4 < 76) { - visiblity.showWidgets = false; - } - - for (INEIGuiHandler handler : GuiInfo.guiHandlers) { - handler.modifyVisiblity(gui, visiblity); - } - - visiblity.translateDependancies(); - - getLayoutStyle().layout(gui, visiblity); - - updateWidgetVisiblities(gui, visiblity); - } - - private static void init() { - itemPanel = new ItemPanel(); - dropDown = new SubsetWidget(); - searchField = new SearchField("search"); - - options = new Button("Options") { - @Override - public boolean onButtonPress(boolean rightclick) { - if (!rightclick) { - getOptionList().openGui(getGuiContainer(), false); - return true; - } - return false; - } - - @Override - public String getRenderLabel() { - return translate("inventory.options"); - } - }; - prev = new Button("Prev") { - public boolean onButtonPress(boolean rightclick) { - if (!rightclick) { - LayoutManager.itemPanel.scroll(-1); - return true; - } - return false; - } - - @Override - public String getRenderLabel() { - return translate("inventory.prev"); - } - }; - next = new Button("Next") { - public boolean onButtonPress(boolean rightclick) { - if (!rightclick) { - LayoutManager.itemPanel.scroll(1); - return true; - } - return false; - } - - @Override - public String getRenderLabel() { - return translate("inventory.next"); - } - }; - pageLabel = new Label("(0/0)", true); - more = new Button("+") { - @Override - public boolean onButtonPress(boolean rightclick) { - if (rightclick) { - return false; - } - - int modifier = controlKey() ? 64 : shiftKey() ? 10 : 1; - - int quantity = getItemQuantity() + modifier; - if (quantity < 0) { - quantity = 0; - } - - setItemQuantity(quantity); - return true; - } - }; - less = new Button("-") { - @Override - public boolean onButtonPress(boolean rightclick) { - if (rightclick) { - return false; - } - - int modifier = controlKey() ? -64 : shiftKey() ? -10 : -1; - - int quantity = getItemQuantity() + modifier; - if (quantity < 0) { - quantity = 0; - } - - setItemQuantity(quantity); - return true; - } - }; - quantity = new ItemQuantityField("quantity"); - - stateButtons = new SaveLoadButton[7]; - deleteButtons = new Button[7]; - - for (int i = 0; i < 7; i++) { - final int savestate = i; - stateButtons[i] = new SaveLoadButton("") { - @Override - public boolean onButtonPress(boolean rightclick) { - if (isStateSaved(savestate)) { - loadState(savestate); - } else { - saveState(savestate); - } - return true; - } - - @Override - public void onTextChange() { - NBTTagCompound statelist = global.nbt.getCompoundTag("statename"); - global.nbt.setTag("statename", statelist); - - statelist.setString("" + savestate, label); - global.saveNBT(); - } - }; - deleteButtons[i] = new Button("x") { - @Override - public boolean onButtonPress(boolean rightclick) { - if (!rightclick) { - clearState(savestate); - return true; - } - return false; - } - }; - } - - delete = new Button() { - @Override - public boolean onButtonPress(boolean rightclick) { - if ((state & 0x3) == 2) { - return false; - } - - ItemStack held = getHeldItem(); - if (held != null) { - if (shiftKey()) { - deleteHeldItem(); - deleteItemsOfType(held); - } else if (rightclick) { - decreaseSlotStack(-999); - } else { - deleteHeldItem(); - } - } else if (shiftKey()) { - deleteEverything(); - } else { - NEIController.toggleDeleteMode(); - } - - return true; - } - - public String getButtonTip() { - if ((state & 0x3) != 2) { - if (shiftKey()) { - return translate("inventory.delete.inv"); - } - if (NEIController.canUseDeleteMode()) { - return getStateTip("delete", state); - } - } - return null; - } - - @Override - public void postDraw(int mousex, int mousey) { - if (contains(mousex, mousey) && getHeldItem() != null && (state & 0x3) != 2) { - GuiDraw.drawTip(mousex + 9, mousey, translate("inventory.delete." + (shiftKey() ? "all" : "one"), GuiContainerManager.itemDisplayNameShort(getHeldItem()))); - } - } - }; - gamemode = new ButtonCycled() { - @Override - public boolean onButtonPress(boolean rightclick) { - if (!rightclick) { - cycleGamemode(); - return true; - } - return false; - } - - public String getButtonTip() { - return translate("inventory.gamemode." + getNextGamemode()); - } - }; - gamemode.icons = new Image[3]; - rain = new Button() { - @Override - public boolean onButtonPress(boolean rightclick) { - if (handleDisabledButtonPress("rain", rightclick)) { - return true; - } - - if (!rightclick) { - toggleRaining(); - return true; - } - return false; - } - - public String getButtonTip() { - return getStateTip("rain", state); - } - }; - magnet = new Button() { - @Override - public boolean onButtonPress(boolean rightclick) { - if (!rightclick) { - toggleMagnetMode(); - return true; - } - return false; - } - - public String getButtonTip() { - return getStateTip("magnet", state); - } - }; - for (int i = 0; i < 4; i++) { - final int zone = i; - timeButtons[i] = new Button() { - @Override - public boolean onButtonPress(boolean rightclick) { - if (handleDisabledButtonPress(NEIActions.timeZones[zone], rightclick)) { - return true; - } - - if (!rightclick) { - setHourForward(zone * 6); - return true; - } - return false; - } - - @Override - public String getButtonTip() { - return getTimeTip(NEIActions.timeZones[zone], state); - } - - }; - } - heal = new Button() { - @Override - public boolean onButtonPress(boolean rightclick) { - if (!rightclick) { - healPlayer(); - return true; - } - return false; - } - - @Override - public String getButtonTip() { - return translate("inventory.heal"); - } - }; - - delete.state |= 0x4; - gamemode.state |= 0x4; - rain.state |= 0x4; - magnet.state |= 0x4; - } - - private static String getStateTip(String name, int state) { - String sfx = (state & 0x3) == 2 ? "enable" : (state & 0x3) == 1 ? "0" : "1"; - - return translate("inventory." + name + "." + sfx); - } - - private static String getTimeTip(String name, int state) { - String sfx = (state & 0x3) == 2 ? "enable" : "set"; - return translate("inventory." + name + "." + sfx); - } - - private static boolean handleDisabledButtonPress(String ident, boolean rightclick) { - if (!NEIActions.canDisable.contains(ident)) { - return false; - } - if (rightclick != disabledActions.contains(ident)) { - return setPropertyDisabled(ident, rightclick); - } - return false; - } - - private static boolean setPropertyDisabled(String ident, boolean disable) { - if (disable && NEIActions.base(ident).equals("time")) { - int count = 0; - for (int i = 0; i < 4; i++) { - if (disabledActions.contains(NEIActions.timeZones[i])) { - count++; - } - } - if (count == 3) { - return false; - } - } - if (hasSMPCounterPart()) { - NEICPH.sendSetPropertyDisabled(ident, disable); - } - - return true; - } - - @Override - public void load(GuiContainer gui) { - if (isEnabled()) { - setInputFocused(null); - - ItemList.loadItems.restart(); - overlayRenderer = null; - - getLayoutStyle().init(); - layout(gui); - } - - NEIController.load(gui); - - if (checkCreativeInv(gui) && gui.mc.currentScreen instanceof GuiContainerCreative)//override creative with creative+ - { - gui.mc.displayGuiScreen(null);//close the screen and wait for the server to open it for us - } - } - - @Override - public void refresh(GuiContainer gui) { - } - - public boolean checkCreativeInv(GuiContainer gui) { - if (gui instanceof GuiContainerCreative && invCreativeMode()) { - NEICPH.sendCreativeInv(true); - return true; - } else if (gui instanceof GuiExtendedCreativeInv && !invCreativeMode()) { - NEICPH.sendCreativeInv(false); - return true; - } - return false; - } - - public static void updateWidgetVisiblities(GuiContainer gui, VisiblityData visiblity) { - drawWidgets = new TreeSet(new WidgetZOrder(false)); - controlWidgets = new TreeSet(new WidgetZOrder(true)); - - if (!visiblity.showNEI) { - return; - } - - addWidget(options); - if (visiblity.showItemPanel) { - addWidget(itemPanel); - addWidget(prev); - addWidget(next); - addWidget(pageLabel); - if (canPerformAction("item")) { - addWidget(more); - addWidget(less); - addWidget(quantity); - } - } - - if (visiblity.showSearchSection) { - addWidget(dropDown); - addWidget(searchField); - } - - if (canPerformAction("item") && hasSMPCounterPart() && visiblity.showStateButtons) { - for (int i = 0; i < 7; i++) { - addWidget(stateButtons[i]); - if (isStateSaved(i)) { - addWidget(deleteButtons[i]); - } - } - } - if (visiblity.showUtilityButtons) { - if (canPerformAction("time")) { - for (int i = 0; i < 4; i++) { - addWidget(timeButtons[i]); - } - } - if (canPerformAction("rain")) { - addWidget(rain); - } - if (canPerformAction("heal")) { - addWidget(heal); - } - if (canPerformAction("magnet")) { - addWidget(magnet); - } - if (isValidGamemode("creative") || - isValidGamemode("creative+") || - isValidGamemode("adventure")) { - addWidget(gamemode); - } - if (canPerformAction("delete")) { - addWidget(delete); - } - } - } - - public static LayoutStyle getLayoutStyle(int id) { - LayoutStyle style = layoutStyles.get(id); - if (style == null) { - style = layoutStyles.get(0); - } - return style; - } - - public static LayoutStyle getLayoutStyle() { - return getLayoutStyle(NEIClientConfig.getLayoutStyle()); - } - - private static void addWidget(Widget widget) { - drawWidgets.add(widget); - controlWidgets.add(widget); - } - - @Override - public void guiTick(GuiContainer gui) { - if (checkCreativeInv(gui)) { - return; - } - - if (!isEnabled()) { - return; - } - - for (Widget widget : controlWidgets) { - widget.update(); - } - } - - @Override - public boolean mouseScrolled(GuiContainer gui, int mousex, int mousey, int scrolled) { - if (isHidden() || !isEnabled()) { - return false; - } - - for (Widget widget : controlWidgets) { - if (widget.onMouseWheel(scrolled, mousex, mousey)) { - return true; - } - } - - return false; - } - - @Override - public void onMouseScrolled(GuiContainer gui, int mousex, int mousey, int scrolled) { - } - - @Override - public boolean shouldShowTooltip(GuiContainer gui) { - return itemPanel.draggedStack == null; - } - - public static Widget getInputFocused() { - return inputFocused; - } - - public static void setInputFocused(Widget widget) { - if (inputFocused != null) { - inputFocused.loseFocus(); - } - - inputFocused = widget; - if (inputFocused != null) { - inputFocused.gainFocus(); - } - } - - @Override - public void renderSlotUnderlay(GuiContainer gui, Slot slot) { - if (overlayRenderer != null) { - overlayRenderer.renderOverlay(GuiContainerManager.getManager(gui), slot); - } - } - - @Override - public void renderSlotOverlay(GuiContainer window, Slot slot) { - ItemStack item = slot.getStack(); - if (world.nbt.getBoolean("searchinventories") && (item == null ? !getSearchExpression().equals("") : !ItemList.itemMatches(item))) { - GlStateManager.disableLighting(); - GlStateManager.translate(0, 0, 150); - drawRect(slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, 0x80000000); - GlStateManager.translate(0, 0, -150); - GlStateManager.enableLighting(); - } - } - - public static void drawIcon(int x, int y, Image image) { - changeTexture("nei:textures/nei_sprites.png"); - GlStateManager.color(1, 1, 1, 1); - GlStateManager.enableBlend(); - GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - drawTexturedModalRect(x, y, image.x, image.y, image.width, image.height); - GlStateManager.disableBlend(); - } - - public static void drawButtonBackground(int x, int y, int w, int h, boolean edges, int type) { - int wtiles = 0; - int ew = w;//end width - if (w / 2 > 100) { - wtiles = (w - 200) / 50 + 1; - ew = 200; - } - - int w1 = ew / 2; - int h1 = h / 2; - int w2 = (ew + 1) / 2; - int h2 = (h + 1) / 2; - - int x2 = x + w - w2; - int y2 = y + h - h2; - - int ty = 46 + type * 20; - int te = (edges ? 0 : 1);//tex edges - - int ty1 = ty + te; - int tx1 = te; - int tx3 = 75; - //halfway the 1 is for odd number adjustment - int ty2 = ty + 20 - h2 - te; - int tx2 = 200 - w2 - te; - - changeTexture("textures/gui/widgets.png"); - drawTexturedModalRect(x, y, tx1, ty1, w1, h1);//top left - drawTexturedModalRect(x, y2, tx1, ty2, w1, h2);//bottom left - - for (int tile = 0; tile < wtiles; tile++) { - int tilex = x + w1 + 50 * tile; - drawTexturedModalRect(tilex, y, tx3, ty1, 50, h1);//top - drawTexturedModalRect(tilex, y2, tx3, ty2, 50, h2);//bottom - } - - drawTexturedModalRect(x2, y, tx2, ty1, w2, h1);//top right - drawTexturedModalRect(x2, y2, tx2, ty2, w2, h2);//bottom right - } - - public static LayoutManager instance() { - return instance; - } - - @Override - public void tickKeyStates() { - if (Minecraft.getMinecraft().currentScreen != null) { - return; - } - - if (KeyManager.keyStates.get("world.dawn").down) { - timeButtons[0].onButtonPress(false); - } - if (KeyManager.keyStates.get("world.noon").down) { - timeButtons[1].onButtonPress(false); - } - if (KeyManager.keyStates.get("world.dusk").down) { - timeButtons[2].onButtonPress(false); - } - if (KeyManager.keyStates.get("world.midnight").down) { - timeButtons[3].onButtonPress(false); - } - if (KeyManager.keyStates.get("world.rain").down) { - rain.onButtonPress(false); - } - if (KeyManager.keyStates.get("world.heal").down) { - heal.onButtonPress(false); - } - if (KeyManager.keyStates.get("world.creative").down) { - gamemode.onButtonPress(false); - } - } -} diff --git a/dependencies/main/java/codechicken/nei/LayoutStyleDefault.java b/dependencies/main/java/codechicken/nei/LayoutStyleDefault.java deleted file mode 100644 index 9eef52b848..0000000000 --- a/dependencies/main/java/codechicken/nei/LayoutStyleDefault.java +++ /dev/null @@ -1,163 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.api.LayoutStyle; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.nbt.NBTTagCompound; - -import static codechicken.lib.gui.GuiDraw.getStringWidth; -import static codechicken.nei.LayoutManager.*; -import static codechicken.nei.NEIClientConfig.*; - -public abstract class LayoutStyleDefault extends LayoutStyle { - @Override - public void layout(GuiContainer gui, VisiblityData visiblity) { - int windowWidth = gui.width; - int windowHeight = gui.height; - int containerWidth = gui.xSize; - int containerLeft = gui.guiLeft; - - reset(); - - prev.y = 2; - prev.h = 16; - prev.w = containerLeft / 3; - prev.x = (containerWidth + windowWidth) / 2 + 2; - next.x = windowWidth - prev.w - 2; - - next.y = prev.y; - next.w = prev.w; - next.h = prev.h; - pageLabel.x = containerLeft * 3 / 2 + containerWidth + 1; - pageLabel.y = prev.y + 5; - pageLabel.text = "(" + itemPanel.getPage() + "/" + itemPanel.getNumPages() + ")"; - - itemPanel.y = prev.h + prev.y; - itemPanel.x = (containerWidth + windowWidth) / 2 + 3; - itemPanel.w = windowWidth - 3 - itemPanel.x; - itemPanel.h = windowHeight - 15 - itemPanel.y; - if (!canPerformAction("item")) { - itemPanel.h += 15; - } - itemPanel.resize(); - - more.w = more.h = less.w = less.h = 16; - less.x = prev.x; - more.x = windowWidth - less.w - 2; - more.y = less.y = windowHeight - more.h - 2; - - quantity.x = less.x + less.w + 2; - quantity.y = less.y; - quantity.w = more.x - quantity.x - 2; - quantity.h = less.h; - - options.x = isEnabled() ? 0 : 6; - options.y = isEnabled() ? windowHeight - 22 : windowHeight - 28; - options.w = 80; - options.h = 22; - - delete.state = 0x4; - if (NEIController.getDeleteMode()) { - delete.state |= 1; - } else if (!visiblity.enableDeleteMode) { - delete.state |= 2; - } - - rain.state = 0x4; - if (disabledActions.contains("rain")) { - rain.state |= 2; - } else if (NEIClientUtils.isRaining()) { - rain.state |= 1; - } - - gamemode.state = 0x4; - if (NEIClientUtils.getGamemode() != 0) { - gamemode.state |= 0x1; - gamemode.index = NEIClientUtils.getGamemode() - 1; - } else { - if (NEIClientUtils.isValidGamemode("creative")) { - gamemode.index = 0; - } else if (NEIClientUtils.isValidGamemode("creative+")) { - gamemode.index = 1; - } else if (NEIClientUtils.isValidGamemode("adventure")) { - gamemode.index = 2; - } - } - - magnet.state = 0x4 | (getMagnetMode() ? 1 : 0); - - if (canPerformAction("delete")) { - layoutButton(delete); - } - if (canPerformAction("rain")) { - layoutButton(rain); - } - if (NEIClientUtils.isValidGamemode("creative") || - NEIClientUtils.isValidGamemode("creative+") || - NEIClientUtils.isValidGamemode("adventure")) { - layoutButton(gamemode); - } - if (canPerformAction("magnet")) { - layoutButton(magnet); - } - if (canPerformAction("time")) { - for (int i = 0; i < 4; i++) { - timeButtons[i].state = disabledActions.contains(NEIActions.timeZones[i]) ? 2 : 0; - layoutButton(timeButtons[i]); - } - } - if (canPerformAction("heal")) { - layoutButton(heal); - } - - searchField.y = windowHeight - searchField.h - 2; - - dropDown.h = 20; - dropDown.w = prev.x - dropDown.x - 3; - searchField.h = 20; - searchField.w = 150; - searchField.x = (windowWidth - searchField.w) / 2; - - if (!visiblity.showItemSection) { - //TODO dropDown.setDropDown(0); - searchField.setFocus(false); - } - - int maxWidth = 0; - for (int i = 0; i < 7; i++) { - deleteButtons[i].w = 16; - deleteButtons[i].h = 16; - - NBTTagCompound statelist = global.nbt.getCompoundTag("statename"); - global.nbt.setTag("statename", statelist); - String name = statelist.getString("" + i); - if (statelist.getTag("" + i) == null) { - name = "" + (i + 1); - statelist.setString("" + i, name); - } - stateButtons[i].label = name; - stateButtons[i].saved = isStateSaved(i); - - int width = getStringWidth(stateButtons[i].getRenderLabel()) + 26; - if (width + 22 > containerLeft) { - width = containerLeft - 22; - } - - if (width > maxWidth) { - maxWidth = width; - } - } - - for (int i = 0; i < 7; i++) { - stateButtons[i].x = 0; - stateButtons[i].y = 58 + i * 22; - stateButtons[i].h = 20; - - stateButtons[i].x = 0; - stateButtons[i].w = maxWidth; - deleteButtons[i].x = stateButtons[i].w + 3; - deleteButtons[i].y = stateButtons[i].y + 2; - } - } - - public abstract void layoutButton(Button button); -} diff --git a/dependencies/main/java/codechicken/nei/LayoutStyleMinecraft.java b/dependencies/main/java/codechicken/nei/LayoutStyleMinecraft.java deleted file mode 100644 index 2c0fc736c7..0000000000 --- a/dependencies/main/java/codechicken/nei/LayoutStyleMinecraft.java +++ /dev/null @@ -1,97 +0,0 @@ -package codechicken.nei; - -import net.minecraft.client.renderer.GlStateManager; - -import static codechicken.lib.gui.GuiDraw.drawStringC; -import static codechicken.nei.LayoutManager.*; - -public class LayoutStyleMinecraft extends LayoutStyleDefault { - int stateButtonCount; - int clickButtonCount; - - @Override - public String getName() { - return "minecraft"; - } - - @Override - public void init() { - delete.icon = new Image(144, 12, 12, 12); - gamemode.icons[0] = new Image(132, 12, 12, 12); - gamemode.icons[1] = new Image(156, 12, 12, 12); - gamemode.icons[2] = new Image(168, 12, 12, 12); - rain.icon = new Image(120, 12, 12, 12); - magnet.icon = new Image(180, 24, 12, 12); - timeButtons[0].icon = new Image(132, 24, 12, 12); - timeButtons[1].icon = new Image(120, 24, 12, 12); - timeButtons[2].icon = new Image(144, 24, 12, 12); - timeButtons[3].icon = new Image(156, 24, 12, 12); - heal.icon = new Image(168, 24, 12, 12); - dropDown.x = 90; - } - - @Override - public void reset() { - stateButtonCount = clickButtonCount = 0; - } - - @Override - public void layoutButton(Button button) { - if ((button.state & 0x4) != 0) { - button.x = 6 + stateButtonCount * 20; - button.y = 3; - stateButtonCount++; - } else { - button.x = 6 + (clickButtonCount % 4) * 20; - button.y = 3 + (1 + clickButtonCount / 4) * 18; - clickButtonCount++; - } - - button.h = 17; - button.w = button.contentWidth() + 6; - } - - @Override - public void drawButton(Button b, int mousex, int mousey) { - GlStateManager.disableLighting(); - GlStateManager.color(1, 1, 1, 1); - - int tex; - if ((b.state & 0x3) == 2) { - tex = 0; - } else if ((b.state & 0x4) == 0 && b.contains(mousex, mousey) ||//not a state button and mouseover - (b.state & 0x3) == 1)//state active - { - tex = 2; - } else { - tex = 1; - } - LayoutManager.drawButtonBackground(b.x, b.y, b.w, b.h, true, tex); - - Image icon = b.getRenderIcon(); - if (icon == null) { - int colour = tex == 2 ? 0xffffa0 : tex == 0 ? 0x601010 : 0xe0e0e0; - - drawStringC(b.getRenderLabel(), b.x + b.w / 2, b.y + (b.h - 8) / 2, colour); - } else { - GlStateManager.color(1, 1, 1, 1); - - int iconx = b.x + (b.w - icon.width) / 2; - int icony = b.y + (b.h - icon.height) / 2; - LayoutManager.drawIcon(iconx, icony, icon); - } - } - - @Override - public void drawSubsetTag(String text, int x, int y, int w, int h, int state, boolean mouseover) { - if (state == 1) { - GlStateManager.color(0.65F, 0.65F, 0.65F, 1.0F); - } else { - GlStateManager.color(1, 1, 1, 1); - } - LayoutManager.drawButtonBackground(x, y, w, h, false, state == 0 ? 0 : 1); - if (text != null) { - drawStringC(text, x, y, w, h, state == 2 ? 0xFFE0E0E0 : 0xFFA0A0A0); - } - } -} diff --git a/dependencies/main/java/codechicken/nei/LayoutStyleTMIOld.java b/dependencies/main/java/codechicken/nei/LayoutStyleTMIOld.java deleted file mode 100644 index c2453a8fd8..0000000000 --- a/dependencies/main/java/codechicken/nei/LayoutStyleTMIOld.java +++ /dev/null @@ -1,127 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.guihook.GuiContainerManager; - -import static codechicken.lib.gui.GuiDraw.*; -import static codechicken.nei.LayoutManager.*; - -public class LayoutStyleTMIOld extends LayoutStyleDefault { - public static final Image stateOff = new Image(48, 0, 8, 12); - public static final Image stateOn = new Image(56, 0, 8, 12); - public static final Image stateDisabled = new Image(64, 0, 8, 12); - - int stateButtonCount; - int clickButtonCount; - - @Override - public String getName() { - return "oldtmi"; - } - - @Override - public void init() { - delete.icon = new Image(24, 12, 12, 12); - gamemode.icons[0] = new Image(12, 12, 12, 12); - gamemode.icons[1] = new Image(36, 12, 12, 12); - gamemode.icons[2] = new Image(48, 12, 12, 12); - rain.icon = new Image(0, 12, 12, 12); - magnet.icon = new Image(60, 24, 12, 12); - timeButtons[0].icon = new Image(12, 24, 12, 12); - timeButtons[1].icon = new Image(0, 24, 12, 12); - timeButtons[2].icon = new Image(24, 24, 12, 12); - timeButtons[3].icon = new Image(36, 24, 12, 12); - heal.icon = new Image(48, 24, 12, 12); - dropDown.x = 93; - } - - @Override - public void reset() { - stateButtonCount = clickButtonCount = 0; - } - - @Override - public void layoutButton(Button button) { - int offsetx = 2; - int offsety = 2; - - if ((button.state & 0x4) != 0) { - button.x = offsetx + stateButtonCount * 22; - button.y = offsety; - stateButtonCount++; - } else { - button.x = offsetx + (clickButtonCount % 4) * 22; - button.y = offsety + (1 + clickButtonCount / 4) * 17; - clickButtonCount++; - } - - button.h = 14; - button.w = button.contentWidth() + 2; - if ((button.state & 0x4) != 0) { - button.w += stateOff.width; - } - } - - @Override - public void drawBackground(GuiContainerManager gui) { - if (clickButtonCount == 0 && stateButtonCount == 0) { - return; - } - - int maxx = Math.max(stateButtonCount, clickButtonCount); - if (maxx > 4) { - maxx = 4; - } - int maxy = clickButtonCount == 0 ? 1 : (clickButtonCount / 4 + 2); - - drawRect(0, 0, 2 + 22 * maxx, 1 + maxy * 17, 0xFF000000); - } - - @Override - public void drawButton(Button b, int mousex, int mousey) { - int cwidth = b.contentWidth(); - if ((b.state & 0x4) != 0) { - cwidth += stateOff.width; - } - int textx = b.x + (b.w - cwidth) / 2; - int texty = b.y + (b.h - 8) / 2; - - drawRect(b.x, b.y, b.w, b.h, b.contains(mousex, mousey) ? 0xee401008 : 0xee000000); - - Image icon = b.getRenderIcon(); - if (icon == null) { - drawString(b.getRenderLabel(), textx, texty, -1); - } else { - int icony = b.y + (b.h - icon.height) / 2; - LayoutManager.drawIcon(textx, icony, icon); - if ((b.state & 0x3) == 2) { - drawRect(textx, icony, icon.width, icon.height, 0x80000000); - } - - if ((b.state & 0x4) != 0) { - Image stateimage; - if ((b.state & 0x3) == 1) { - stateimage = stateOn; - } else if ((b.state & 0x3) == 2) { - stateimage = stateDisabled; - } else { - stateimage = stateOff; - } - LayoutManager.drawIcon(textx + icon.width, icony, stateimage); - } - } - } - - @Override - public void drawSubsetTag(String text, int x, int y, int w, int h, int state, boolean mouseover) { - drawRect(x, y, w, h, mouseover ? 0xFF401008 : 0xFF000000); - if (text != null) { - int colour = -1; - if (state == 0) { - colour = 0xFF601010; - } else if (state == 1) { - colour = 0xFF807070; - } - drawStringC(text, x, y, w, h, colour, state == 0); - } - } -} diff --git a/dependencies/main/java/codechicken/nei/NEIActions.java b/dependencies/main/java/codechicken/nei/NEIActions.java deleted file mode 100644 index 296027cc71..0000000000 --- a/dependencies/main/java/codechicken/nei/NEIActions.java +++ /dev/null @@ -1,86 +0,0 @@ -package codechicken.nei; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; - -public class NEIActions { - public static final int protocol = 0; - - public static HashMap nameActionMap = new HashMap(); - public static HashSet canDisable = new HashSet(); - - public static void addAction(String name, String base, boolean smpreq) { - NEIActions action = new NEIActions(name, base, smpreq); - nameActionMap.put(name, action); - } - - private static void addAction(String name, String base) { - addAction(name, base, false); - } - - public static void addAction(String name) { - addAction(name, name); - } - - private static void addAction(String name, boolean smpreq) { - addAction(name, name, smpreq); - } - - public static String base(String name) { - NEIActions action = nameActionMap.get(name); - return action == null ? name : action.base; - } - - public static boolean smpRequired(String name) { - return nameActionMap.get(name).smpreq; - } - - public static void init() { - addAction("time"); - addAction("dawn", "time"); - addAction("noon", "time"); - addAction("dusk", "time"); - addAction("midnight", "time"); - addAction("creative"); - addAction("creative+", true); - addAction("adventure", "creative"); - addAction("rain"); - addAction("item"); - addAction("heal"); - addAction("delete", true); - addAction("magnet", true); - addAction("enchant", true); - addAction("potion", true); - - canDisable.add("dawn"); - canDisable.add("noon"); - canDisable.add("dusk"); - canDisable.add("midnight"); - canDisable.add("rain"); - } - - public static final String[] timeZones = new String[] { "dawn", "noon", "dusk", "midnight" }; - public static final String[] gameModes = new String[] { "survival", "creative", "creative+", "adventure" }; - - public String name; - public String base; - public boolean smpreq; - - public NEIActions(String name, String base, boolean smpreq) { - this.name = name; - this.base = base; - this.smpreq = smpreq; - } - - public static List baseActions() { - List list = new LinkedList(); - for (NEIActions a : nameActionMap.values()) { - if (a.base.equals(a.name)) { - list.add(a.name); - } - } - return list; - } -} diff --git a/dependencies/main/java/codechicken/nei/NEICPH.java b/dependencies/main/java/codechicken/nei/NEICPH.java deleted file mode 100644 index 56c513cbc7..0000000000 --- a/dependencies/main/java/codechicken/nei/NEICPH.java +++ /dev/null @@ -1,256 +0,0 @@ -package codechicken.nei; - -import codechicken.core.ClientUtils; -import codechicken.lib.inventory.InventoryUtils; -import codechicken.lib.packet.PacketCustom; -import codechicken.lib.packet.PacketCustom.IClientPacketHandler; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.network.play.INetHandlerPlayClient; -import net.minecraft.util.ChatComponentTranslation; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; - -public class NEICPH implements IClientPacketHandler { - public static final String channel = "NEI"; - - @Override - public void handlePacket(PacketCustom packet, Minecraft mc, INetHandlerPlayClient netHandler) { - switch (packet.getType()) { - case 1: - handleSMPCheck(packet.readUByte(), packet.readString(), mc.theWorld); - break; - case 10: - handleLoginState(packet); - break; - case 11: - handleActionDisabled(packet); - break; - case 12: - handleActionEnabled(packet); - break; - case 13: - ClientHandler.instance().addSMPMagneticItem(packet.readInt(), mc.theWorld); - break; - case 14: - handleGamemode(mc, packet.readUByte()); - break; - case 21: - ClientUtils.openSMPGui(packet.readUByte(), new GuiEnchantmentModifier(mc.thePlayer.inventory, mc.theWorld)); - break; - case 23: - if (packet.readBoolean()) { - ClientUtils.openSMPGui(packet.readUByte(), new GuiExtendedCreativeInv(new ContainerCreativeInv(mc.thePlayer, new ExtendedCreativeInv(null, Side.CLIENT)))); - } else { - mc.displayGuiScreen(new GuiInventory(mc.thePlayer)); - } - break; - case 24: - ClientUtils.openSMPGui(packet.readUByte(), new GuiPotionCreator(mc.thePlayer.inventory)); - break; - } - } - - private void handleGamemode(Minecraft mc, int mode) { - mc.playerController.setGameType(NEIServerUtils.getGameType(mode)); - } - - private void handleActionEnabled(PacketCustom packet) { - String name = packet.readString(); - if (packet.readBoolean()) { - NEIClientConfig.enabledActions.add(name); - } else { - NEIClientConfig.enabledActions.remove(name); - } - } - - private void handleActionDisabled(PacketCustom packet) { - String name = packet.readString(); - if (packet.readBoolean()) { - NEIClientConfig.disabledActions.add(name); - } else { - NEIClientConfig.disabledActions.remove(name); - } - } - - private void handleLoginState(PacketCustom packet) { - NEIClientConfig.permissableActions.clear(); - int num = packet.readUByte(); - for (int i = 0; i < num; i++) { - NEIClientConfig.permissableActions.add(packet.readString()); - } - - NEIClientConfig.disabledActions.clear(); - num = packet.readUByte(); - for (int i = 0; i < num; i++) { - NEIClientConfig.disabledActions.add(packet.readString()); - } - - NEIClientConfig.enabledActions.clear(); - num = packet.readUByte(); - for (int i = 0; i < num; i++) { - NEIClientConfig.enabledActions.add(packet.readString()); - } - - NEIClientConfig.bannedBlocks.clear(); - num = packet.readInt(); - for (int i = 0; i < num; i++) { - NEIClientConfig.bannedBlocks.add(packet.readItemStack()); - } - - if (NEIClientUtils.getGuiContainer() != null) { - LayoutManager.instance().refresh(NEIClientUtils.getGuiContainer()); - } - } - - private void handleSMPCheck(int serverprotocol, String worldName, World world) { - if (serverprotocol > NEIActions.protocol) { - NEIClientUtils.printChatMessage(new ChatComponentTranslation("nei.chat.mismatch.client")); - } else if (serverprotocol < NEIActions.protocol) { - NEIClientUtils.printChatMessage(new ChatComponentTranslation("nei.chat.mismatch.server")); - } else { - try { - ClientHandler.instance().loadWorld(world); - NEIClientConfig.setHasSMPCounterPart(true); - NEIClientConfig.loadWorld(getSaveName(worldName)); - sendRequestLoginInfo(); - } catch (Exception e) { - NEIClientConfig.logger.error("Error handling SMP Check", e); - } - } - } - - private static String getSaveName(String worldName) { - if (Minecraft.getMinecraft().isSingleplayer()) { - return "local/" + ClientUtils.getWorldSaveName(); - } - - return "remote/" + ClientUtils.getServerIP().replace(':', '~') + "/" + worldName; - } - - public static void sendGiveItem(ItemStack spawnstack, boolean infinite, boolean doSpawn) { - PacketCustom packet = new PacketCustom(channel, 1); - packet.writeItemStack(spawnstack); - packet.writeBoolean(infinite); - packet.writeBoolean(doSpawn); - packet.sendToServer(); - } - - public static void sendDeleteAllItems() { - PacketCustom packet = new PacketCustom(channel, 4); - packet.sendToServer(); - } - - public static void sendStateLoad(ItemStack[] state) { - sendDeleteAllItems(); - for (int slot = 0; slot < state.length; slot++) { - ItemStack item = state[slot]; - if (item == null) { - continue; - } - sendSetSlot(slot, item, false); - } - - PacketCustom packet = new PacketCustom(channel, 11); - packet.sendToServer(); - } - - public static void sendSetSlot(int slot, ItemStack stack, boolean container) { - PacketCustom packet = new PacketCustom(channel, 5); - packet.writeBoolean(container); - packet.writeShort(slot); - packet.writeItemStack(stack); - packet.sendToServer(); - } - - private static void sendRequestLoginInfo() { - PacketCustom packet = new PacketCustom(channel, 10); - packet.sendToServer(); - } - - public static void sendToggleMagnetMode() { - PacketCustom packet = new PacketCustom(channel, 6); - packet.sendToServer(); - } - - public static void sendSetTime(int hour) { - PacketCustom packet = new PacketCustom(channel, 7); - packet.writeByte(hour); - packet.sendToServer(); - } - - public static void sendHeal() { - PacketCustom packet = new PacketCustom(channel, 8); - packet.sendToServer(); - } - - public static void sendToggleRain() { - PacketCustom packet = new PacketCustom(channel, 9); - packet.sendToServer(); - } - - public static void sendOpenEnchantmentWindow() { - PacketCustom packet = new PacketCustom(channel, 21); - packet.sendToServer(); - } - - public static void sendModifyEnchantment(int enchID, int level, boolean add) { - PacketCustom packet = new PacketCustom(channel, 22); - packet.writeByte(enchID); - packet.writeByte(level); - packet.writeBoolean(add); - packet.sendToServer(); - } - - public static void sendSetPropertyDisabled(String name, boolean enable) { - PacketCustom packet = new PacketCustom(channel, 12); - packet.writeString(name); - packet.writeBoolean(enable); - packet.sendToServer(); - } - - public static void sendGamemode(int mode) { - new PacketCustom(channel, 13).writeByte(mode).sendToServer(); - } - - public static void sendCreativeInv(boolean open) { - PacketCustom packet = new PacketCustom(channel, 23); - packet.writeBoolean(open); - packet.sendToServer(); - } - - public static void sendCreativeScroll(int steps) { - PacketCustom packet = new PacketCustom(channel, 14); - packet.writeInt(steps); - packet.sendToServer(); - } - - public static void sendMobSpawnerID(int x, int y, int z, String mobtype) { - PacketCustom packet = new PacketCustom(channel, 15); - packet.writeCoord(x, y, z); - packet.writeString(mobtype); - packet.sendToServer(); - } - - public static PacketCustom createContainerPacket() { - return new PacketCustom(channel, 20); - } - - public static void sendOpenPotionWindow() { - ItemStack[] potionStore = new ItemStack[9]; - InventoryUtils.readItemStacksFromTag(potionStore, NEIClientConfig.global.nbt.getCompoundTag("potionStore").getTagList("items", 10)); - PacketCustom packet = new PacketCustom(channel, 24); - for (ItemStack stack : potionStore) { - packet.writeItemStack(stack); - } - packet.sendToServer(); - } - - public static void sendDummySlotSet(int slotNumber, ItemStack stack) { - PacketCustom packet = new PacketCustom(channel, 25); - packet.writeShort(slotNumber); - packet.writeItemStack(stack); - packet.sendToServer(); - } -} diff --git a/dependencies/main/java/codechicken/nei/NEIChestGuiHandler.java b/dependencies/main/java/codechicken/nei/NEIChestGuiHandler.java deleted file mode 100644 index fb861d60c8..0000000000 --- a/dependencies/main/java/codechicken/nei/NEIChestGuiHandler.java +++ /dev/null @@ -1,28 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.api.INEIGuiAdapter; -import codechicken.nei.api.TaggedInventoryArea; -import net.minecraft.client.gui.inventory.GuiChest; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.inventory.ContainerChest; -import net.minecraft.item.ItemStack; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -public class NEIChestGuiHandler extends INEIGuiAdapter { - public int chestSize(GuiContainer gui) { - return ((ContainerChest) gui.inventorySlots).getLowerChestInventory().getSizeInventory(); - } - - @Override - public Iterable getItemSpawnSlots(GuiContainer gui, ItemStack item) { - return gui instanceof GuiChest ? NEIServerUtils.getRange(0, chestSize(gui)) : Collections.emptyList(); - } - - @Override - public List getInventoryAreas(GuiContainer gui) { - return gui instanceof GuiChest ? Arrays.asList(new TaggedInventoryArea("Chest", 0, chestSize(gui), gui.inventorySlots)) : null; - } -} diff --git a/dependencies/main/java/codechicken/nei/NEIClientConfig.java b/dependencies/main/java/codechicken/nei/NEIClientConfig.java deleted file mode 100644 index 5dde2a9713..0000000000 --- a/dependencies/main/java/codechicken/nei/NEIClientConfig.java +++ /dev/null @@ -1,573 +0,0 @@ -package codechicken.nei; - -import codechicken.core.*; -import codechicken.lib.config.ConfigFile; -import codechicken.lib.config.ConfigTag; -import codechicken.lib.config.ConfigTagParent; -import codechicken.nei.api.*; -import codechicken.nei.config.*; -import codechicken.nei.recipe.RecipeInfo; -import codechicken.obfuscator.ObfuscationRun; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.world.World; -import net.minecraft.world.storage.SaveFormatComparator; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.lwjgl.input.Keyboard; - -import java.io.File; -import java.util.Collections; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map.Entry; - -public class NEIClientConfig { - private static boolean configLoaded; - private static boolean enabledOverride; - - public static Logger logger = LogManager.getLogger("NotEnoughItems"); - public static File configDir = new File(CommonUtils.getMinecraftDir(), "config/NEI/"); - public static ConfigSet global = new ConfigSet(new File("saves/NEI/client.dat"), new ConfigFile(new File(configDir, "client.cfg"))); - public static ConfigSet world; - - public static ItemStack creativeInv[]; - private static boolean statesSaved[] = new boolean[7]; - - public static boolean hasSMPCounterpart; - public static HashSet permissableActions = new HashSet(); - public static HashSet disabledActions = new HashSet(); - public static HashSet enabledActions = new HashSet(); - - public static ItemStackSet bannedBlocks = new ItemStackSet(); - - static { - if (global.config.getTag("checkUpdates").getBooleanValue(true)) { - CCUpdateChecker.updateCheck("NotEnoughItems"); - } - linkOptionList(); - setDefaults(); - } - - private static void setDefaults() { - ConfigTagParent tag = global.config; - tag.setComment("Main configuration of NEI.\nMost of these options can be changed ingame.\nDeleting any element will restore it to it's default value"); - - tag.getTag("command").useBraces().setComment("Change these options if you have a different mod installed on the server that handles the commands differently, Eg. Bukkit Essentials"); - tag.setNewLineMode(1); - - tag.getTag("inventory.widgetsenabled").getBooleanValue(true); - API.addOption(new OptionToggleButton("inventory.widgetsenabled")); - - tag.getTag("inventory.hidden").getBooleanValue(false); - tag.getTag("inventory.cheatmode").getIntValue(2); - tag.getTag("inventory.lockmode").setComment("For those who can't help themselves.\nSet this to a mode and you will be unable to change it ingame").getIntValue(-1); - API.addOption(new OptionCycled("inventory.cheatmode", 3) { - @Override - public boolean optionValid(int index) { - return getLockedMode() == -1 || getLockedMode() == index && NEIInfo.isValidMode(index); - } - }); - checkCheatMode(); - - tag.getTag("inventory.utilities").setDefaultValue("delete, magnet"); - API.addOption(new OptionUtilities("inventory.utilities")); - - tag.getTag("inventory.gamemodes").setDefaultValue("creative, creative+, adventure"); - API.addOption(new OptionGamemodes("inventory.gamemodes")); - - tag.getTag("inventory.layoutstyle").getIntValue(0); - API.addOption(new OptionCycled("inventory.layoutstyle", 0) { - @Override - public String getPrefix() { - return translateN(name); - } - - @Override - public String getButtonText() { - return NEIClientUtils.translate("layoutstyle." + LayoutManager.getLayoutStyle(renderTag().getIntValue()).getName()); - } - - @Override - public boolean cycle() { - LinkedList list = new LinkedList(); - for (Entry entry : LayoutManager.layoutStyles.entrySet()) { - list.add(entry.getKey()); - } - - Collections.sort(list); - - int nextLayout = renderTag().getIntValue(); - if (nextLayout == list.getLast())//loop list - { - nextLayout = -1; - } - for (Integer i : list) { - if (i > nextLayout) { - nextLayout = i; - break; - } - } - - getTag().setIntValue(nextLayout); - return true; - } - }); - - ItemSorter.initConfig(tag); - - tag.getTag("inventory.itemIDs").getIntValue(1); - API.addOption(new OptionCycled("inventory.itemIDs", 3, true)); - - tag.getTag("inventory.searchmode").getIntValue(1); - API.addOption(new OptionCycled("inventory.searchmode", 3, true)); - - tag.getTag("world.highlight_tips").getBooleanValue(false); - tag.getTag("world.highlight_tips.x").getIntValue(5000); - tag.getTag("world.highlight_tips.y").getIntValue(100); - API.addOption(new OptionOpenGui("world.highlight_tips", GuiHighlightTips.class)); - - tag.getTag("inventory.profileRecipes").getBooleanValue(false); - API.addOption(new OptionToggleButton("inventory.profileRecipes", true)); - - tag.getTag("command.creative").setDefaultValue("/gamemode {0} {1}"); - API.addOption(new OptionTextField("command.creative")); - tag.getTag("command.item").setDefaultValue("/give {0} {1} {2} {3} {4}"); - API.addOption(new OptionTextField("command.item")); - tag.getTag("command.time").setDefaultValue("/time set {0}"); - API.addOption(new OptionTextField("command.time")); - tag.getTag("command.rain").setDefaultValue("/toggledownfall"); - API.addOption(new OptionTextField("command.rain")); - tag.getTag("command.heal").setDefaultValue(""); - API.addOption(new OptionTextField("command.heal")); - - setDefaultKeyBindings(); - } - - private static void linkOptionList() { - OptionList.setOptionList(new OptionList("nei.options") { - @Override - public ConfigSet globalConfigSet() { - return global; - } - - @Override - public ConfigSet worldConfigSet() { - return world; - } - - @Override - public OptionList configBase() { - return this; - } - - @Override - public GuiOptionList getGui(GuiScreen parent, OptionList list, boolean world) { - return new GuiNEIOptionList(parent, list, world); - } - }); - } - - private static void setDefaultKeyBindings() { - API.addKeyBind("gui.recipe", Keyboard.KEY_R); - API.addKeyBind("gui.usage", Keyboard.KEY_U); - API.addKeyBind("gui.back", Keyboard.KEY_BACK); - API.addKeyBind("gui.enchant", Keyboard.KEY_X); - API.addKeyBind("gui.potion", Keyboard.KEY_P); - API.addKeyBind("gui.prev", Keyboard.KEY_PRIOR); - API.addKeyBind("gui.next", Keyboard.KEY_NEXT); - API.addKeyBind("gui.hide", Keyboard.KEY_O); - API.addKeyBind("gui.search", Keyboard.KEY_F); - API.addKeyBind("world.chunkoverlay", Keyboard.KEY_F9); - API.addKeyBind("world.moboverlay", Keyboard.KEY_F7); - API.addKeyBind("world.highlight_tips", Keyboard.KEY_NUMPAD0); - API.addKeyBind("world.dawn", 0); - API.addKeyBind("world.noon", 0); - API.addKeyBind("world.dusk", 0); - API.addKeyBind("world.midnight", 0); - API.addKeyBind("world.rain", 0); - API.addKeyBind("world.heal", 0); - API.addKeyBind("world.creative", 0); - } - - public static OptionList getOptionList() { - return OptionList.getOptionList("nei.options"); - } - - public static void loadWorld(String saveName) { - setInternalEnabled(true); - logger.debug("Loading " + (Minecraft.getMinecraft().isSingleplayer() ? "Local" : "Remote") + " World"); - bootNEI(ClientUtils.getWorld()); - - File saveDir = new File(CommonUtils.getMinecraftDir(), "saves/NEI/" + saveName); - boolean newWorld = !saveDir.exists(); - if (newWorld) { - saveDir.mkdirs(); - } - - world = new ConfigSet(new File(saveDir, "NEI.dat"), new ConfigFile(new File(saveDir, "NEI.cfg"))); - onWorldLoad(newWorld); - } - - private static void onWorldLoad(boolean newWorld) { - world.config.setComment("World based configuration of NEI.\nMost of these options can be changed ingame.\nDeleting any element will restore it to it's default value"); - - setWorldDefaults(); - creativeInv = new ItemStack[54]; - LayoutManager.searchField.setText(getSearchExpression()); - LayoutManager.quantity.setText(Integer.toString(getItemQuantity())); - SubsetWidget.loadHidden(); - - if (newWorld && Minecraft.getMinecraft().isSingleplayer()) { - world.config.getTag("inventory.cheatmode").setIntValue(Minecraft.getMinecraft().playerController.isInCreativeMode() ? 2 : 0); - } - - NEIInfo.load(ClientUtils.getWorld()); - } - - private static void setWorldDefaults() { - NBTTagCompound nbt = world.nbt; - if (!nbt.hasKey("search")) { - nbt.setString("search", ""); - } - if (!nbt.hasKey("quantity")) { - nbt.setInteger("quantity", 0); - } - if (!nbt.hasKey("validateenchantments")) { - nbt.setBoolean("validateenchantments", false); - } - - world.saveNBT(); - } - - public static int getKeyBinding(String string) { - return getSetting("keys." + string).getIntValue(); - } - - public static void setDefaultKeyBinding(String string, int key) { - getSetting("keys." + string).getIntValue(key); - } - - public static void bootNEI(World world) { - if (configLoaded) { - return; - } - - loadStates(); - //ItemVisibilityHash.loadStates(); - //vishash = new ItemVisibilityHash(); - ItemInfo.load(world); - GuiInfo.load(); - RecipeInfo.load(); - LayoutManager.load(); - NEIController.load(); - - configLoaded = true; - - ClassDiscoverer classDiscoverer = new ClassDiscoverer(new IStringMatcher() { - public boolean matches(String test) { - return test.startsWith("NEI") && test.endsWith("Config.class"); - } - }, IConfigureNEI.class); - - classDiscoverer.findClasses(); - - for (Class clazz : classDiscoverer.classes) { - try { - IConfigureNEI config = (IConfigureNEI) clazz.newInstance(); - config.loadConfig(); - NEIModContainer.plugins.add(config); - logger.debug("Loaded " + clazz.getName()); - } catch (Exception e) { - logger.error("Failed to Load " + clazz.getName(), e); - } - } - - ItemSorter.loadConfig(); - } - - public static void loadStates() { - for (int state = 0; state < 7; state++) { - statesSaved[state] = !global.nbt.getCompoundTag("save" + state).hasNoTags(); - } - } - - public static boolean isWorldSpecific(String setting) { - if (world == null) { - return false; - } - ConfigTag tag = world.config.getTag(setting, false); - return tag != null && tag.value != null; - } - - public static boolean isStateSaved(int i) { - return statesSaved[i]; - } - - public static ConfigTag getSetting(String s) { - return isWorldSpecific(s) ? world.config.getTag(s) : global.config.getTag(s); - } - - public static boolean getBooleanSetting(String s) { - return getSetting(s).getBooleanValue(); - } - - public static boolean isHidden() { - return !enabledOverride || getBooleanSetting("inventory.hidden"); - } - - public static boolean isEnabled() { - return enabledOverride && getBooleanSetting("inventory.widgetsenabled"); - } - - public static void setEnabled(boolean flag) { - getSetting("inventory.widgetsenabled").setBooleanValue(flag); - } - - public static int getItemQuantity() { - return world.nbt.getInteger("quantity"); - } - - public static int getCheatMode() { - return getIntSetting("inventory.cheatmode"); - } - - private static void checkCheatMode() { - if (getLockedMode() != -1) { - setIntSetting("inventory.cheatmode", getLockedMode()); - } - } - - public static int getLockedMode() { - return getIntSetting("inventory.lockmode"); - } - - public static int getLayoutStyle() { - return getIntSetting("inventory.layoutstyle"); - } - - public static String getStringSetting(String s) { - return getSetting(s).getValue(); - } - - public static boolean showIDs() { - int i = getIntSetting("inventory.itemIDs"); - return i == 2 || (i == 1 && isEnabled() && !isHidden()); - } - - public static void toggleBooleanSetting(String setting) { - ConfigTag tag = getSetting(setting); - tag.setBooleanValue(!tag.getBooleanValue()); - } - - public static void cycleSetting(String setting, int max) { - ConfigTag tag = getSetting(setting); - tag.setIntValue((tag.getIntValue() + 1) % max); - } - - public static int getIntSetting(String setting) { - return getSetting(setting).getIntValue(); - } - - public static void setIntSetting(String setting, int val) { - getSetting(setting).setIntValue(val); - } - - public static String getSearchExpression() { - return world.nbt.getString("search"); - } - - public static void setSearchExpression(String expression) { - world.nbt.setString("search", expression); - world.saveNBT(); - } - - public static boolean getMagnetMode() { - return enabledActions.contains("magnet"); - } - - public static boolean invCreativeMode() { - return enabledActions.contains("creative+") && canPerformAction("creative+"); - } - - public static boolean areDamageVariantsShown() { - return hasSMPCounterPart() || getSetting("command.item").getValue().contains("{3}"); - } - - public static void clearState(int state) { - statesSaved[state] = false; - global.nbt.setTag("save" + state, new NBTTagCompound()); - global.saveNBT(); - } - - public static void loadState(int state) { - if (!statesSaved[state]) { - return; - } - - NBTTagCompound statesave = global.nbt.getCompoundTag("save" + state); - GuiContainer currentContainer = NEIClientUtils.getGuiContainer(); - LinkedList saveAreas = new LinkedList(); - saveAreas.add(new TaggedInventoryArea(Minecraft.getMinecraft().thePlayer.inventory)); - - for (INEIGuiHandler handler : GuiInfo.guiHandlers) { - List areaList = handler.getInventoryAreas(currentContainer); - if (areaList != null) { - saveAreas.addAll(areaList); - } - } - - for (TaggedInventoryArea area : saveAreas) { - if (!statesave.hasKey(area.tagName)) { - continue; - } - - for (int slot : area.slots) { - NEIClientUtils.setSlotContents(slot, null, area.isContainer()); - } - - NBTTagList areaTag = statesave.getTagList(area.tagName, 10); - for (int i = 0; i < areaTag.tagCount(); i++) { - NBTTagCompound stacksave = areaTag.getCompoundTagAt(i); - int slot = stacksave.getByte("Slot") & 0xFF; - if (!area.slots.contains(slot)) { - continue; - } - - NEIClientUtils.setSlotContents(slot, ItemStack.loadItemStackFromNBT(stacksave), area.isContainer()); - } - } - } - - public static void saveState(int state) { - NBTTagCompound statesave = global.nbt.getCompoundTag("save" + state); - GuiContainer currentContainer = NEIClientUtils.getGuiContainer(); - LinkedList saveAreas = new LinkedList(); - saveAreas.add(new TaggedInventoryArea(Minecraft.getMinecraft().thePlayer.inventory)); - - for (INEIGuiHandler handler : GuiInfo.guiHandlers) { - List areaList = handler.getInventoryAreas(currentContainer); - if (areaList != null) { - saveAreas.addAll(areaList); - } - } - - for (TaggedInventoryArea area : saveAreas) { - NBTTagList areaTag = new NBTTagList(); - - for (int i : area.slots) { - ItemStack stack = area.getStackInSlot(i); - if (stack == null) { - continue; - } - NBTTagCompound stacksave = new NBTTagCompound(); - stacksave.setByte("Slot", (byte) i); - stack.writeToNBT(stacksave); - areaTag.appendTag(stacksave); - } - statesave.setTag(area.tagName, areaTag); - } - - global.nbt.setTag("save" + state, statesave); - global.saveNBT(); - statesSaved[state] = true; - } - - public static boolean hasSMPCounterPart() { - return hasSMPCounterpart; - } - - public static void setHasSMPCounterPart(boolean flag) { - hasSMPCounterpart = flag; - permissableActions.clear(); - bannedBlocks.clear(); - disabledActions.clear(); - enabledActions.clear(); - } - - public static boolean canCheatItem(ItemStack stack) { - return canPerformAction("item") && !bannedBlocks.contains(stack); - } - - public static boolean canPerformAction(String name) { - if (!isEnabled()) { - return false; - } - - if (!modePermitsAction(name)) { - return false; - } - - String base = NEIActions.base(name); - if (hasSMPCounterpart) { - return permissableActions.contains(base); - } - - if (NEIActions.smpRequired(name)) { - return false; - } - - String cmd = getStringSetting("command." + base); - if (cmd == null || !cmd.startsWith("/")) { - return false; - } - - return true; - } - - private static boolean modePermitsAction(String name) { - if (getCheatMode() == 0) { - return false; - } - if (getCheatMode() == 2) { - return true; - } - - String[] actions = getStringArrSetting("inventory.utilities"); - for (String action : actions) { - if (action.equalsIgnoreCase(name)) { - return true; - } - } - - return false; - } - - public static String[] getStringArrSetting(String s) { - return getStringSetting(s).replace(" ", "").split(","); - } - - public static void setInternalEnabled(boolean b) { - enabledOverride = b; - } - - public static void reloadSaves() { - File saveDir = new File(CommonUtils.getMinecraftDir(), "saves/NEI/local"); - if (!saveDir.exists()) { - return; - } - - List saves; - try { - saves = Minecraft.getMinecraft().getSaveLoader().getSaveList(); - } catch (Exception e) { - logger.error("Error loading saves", e); - return; - } - HashSet saveFileNames = new HashSet(); - for (SaveFormatComparator save : saves) { - saveFileNames.add(save.getFileName()); - } - - for (File file : saveDir.listFiles()) { - if (file.isDirectory() && !saveFileNames.contains(file.getName())) { - ObfuscationRun.deleteDir(file, true); - } - } - } -} diff --git a/dependencies/main/java/codechicken/nei/NEIClientUtils.java b/dependencies/main/java/codechicken/nei/NEIClientUtils.java deleted file mode 100644 index adb758726e..0000000000 --- a/dependencies/main/java/codechicken/nei/NEIClientUtils.java +++ /dev/null @@ -1,375 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.inventory.InventoryRange; -import codechicken.lib.inventory.InventoryUtils; -import codechicken.lib.util.LangProxy; -import codechicken.nei.api.GuiInfo; -import codechicken.nei.api.IInfiniteItemHandler; -import codechicken.nei.api.INEIGuiHandler; -import codechicken.nei.api.ItemInfo; -import com.google.common.collect.Iterables; -import net.minecraft.client.Minecraft; -import net.minecraft.client.audio.PositionedSoundRecord; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IChatComponent; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.input.Keyboard; - -import java.text.MessageFormat; -import java.text.NumberFormat; -import java.util.*; - -import static codechicken.nei.NEIClientConfig.*; - -public class NEIClientUtils extends NEIServerUtils { - public static LangProxy lang = new LangProxy("nei"); - - private static Minecraft mc() { - return Minecraft.getMinecraft(); - } - - public static String translate(String key, Object... params) { - return lang.format(key, params); - } - - public static void printChatMessage(IChatComponent msg) { - if (mc().ingameGUI != null) { - mc().ingameGUI.getChatGUI().printChatMessage(msg); - } - } - - public static void deleteHeldItem() { - deleteSlotStack(-999); - } - - public static void dropHeldItem() { - mc().playerController.windowClick(((GuiContainer) mc().currentScreen).inventorySlots.windowId, -999, 0, 0, mc().thePlayer); - } - - public static void deleteSlotStack(int slotNumber) { - setSlotContents(slotNumber, null, true); - } - - public static void decreaseSlotStack(int slotNumber) { - ItemStack stack = slotNumber == -999 ? getHeldItem() : mc().thePlayer.openContainer.getSlot(slotNumber).getStack(); - if (stack == null) { - return; - } - - if (stack.stackSize == 1) { - deleteSlotStack(slotNumber); - } else { - stack = stack.copy(); - stack.stackSize--; - setSlotContents(slotNumber, stack, true); - } - } - - public static void deleteEverything() { - NEICPH.sendDeleteAllItems(); - } - - public static void deleteItemsOfType(ItemStack type) { - Container c = getGuiContainer().inventorySlots; - for (int i = 0; i < c.inventorySlots.size(); i++) { - Slot slot = c.getSlot(i); - if (slot == null) { - continue; - } - - ItemStack stack = slot.getStack(); - if (stack != null && stack.getItem() == type.getItem() && stack.getItemDamage() == type.getItemDamage()) { - setSlotContents(i, null, true); - slot.putStack(null); - } - } - } - - public static ItemStack getHeldItem() { - return mc().thePlayer.inventory.getItemStack(); - } - - public static void setSlotContents(int slot, ItemStack item, boolean containerInv) { - NEICPH.sendSetSlot(slot, item, containerInv); - - if (slot == -999) { - mc().thePlayer.inventory.setItemStack(item); - } - } - - /** - * @param mode -1 = normal cheats, 0 = no infinites, 1 = replenish stack - */ - public static void cheatItem(ItemStack stack, int button, int mode) { - if (!canCheatItem(stack)) { - return; - } - - if (mode == -1 && button == 0 && shiftKey() && NEIClientConfig.hasSMPCounterPart()) { - for (IInfiniteItemHandler handler : ItemInfo.infiniteHandlers) { - if (!handler.canHandleItem(stack)) { - continue; - } - - ItemStack inf = handler.getInfiniteItem(stack); - if (inf != null) { - giveStack(inf, inf.stackSize, true); - return; - } - } - cheatItem(stack, button, 0); - } else if (button == 1) { - giveStack(stack, 1); - } else { - if (mode == 1 && stack.stackSize < stack.getMaxStackSize()) { - giveStack(stack, stack.getMaxStackSize() - stack.stackSize); - } else { - int amount = getItemQuantity(); - if (amount == 0) { - amount = stack.getMaxStackSize(); - } - giveStack(stack, amount); - } - } - } - - public static void giveStack(ItemStack itemstack) { - giveStack(itemstack, itemstack.stackSize); - } - - public static void giveStack(ItemStack itemstack, int i) { - giveStack(itemstack, i, false); - } - - public static void giveStack(ItemStack base, int i, boolean infinite) { - ItemStack stack = copyStack(base, i); - if (hasSMPCounterPart()) { - ItemStack typestack = copyStack(stack, 1); - if (!infinite && !canItemFitInInventory(mc().thePlayer, stack) && (mc().currentScreen instanceof GuiContainer)) { - GuiContainer gui = getGuiContainer(); - List> handlerSlots = new LinkedList>(); - for (INEIGuiHandler handler : GuiInfo.guiHandlers) { - handlerSlots.add(handler.getItemSpawnSlots(gui, typestack)); - } - - int increment = typestack.getMaxStackSize(); - int given = 0; - for (int slotNo : Iterables.concat(handlerSlots)) { - Slot slot = gui.inventorySlots.getSlot(slotNo); - if (!slot.isItemValid(typestack) || !InventoryUtils.canStack(slot.getStack(), typestack)) { - continue; - } - - int qty = Math.min(stack.stackSize - given, increment); - int current = slot.getHasStack() ? slot.getStack().stackSize : 0; - qty = Math.min(qty, slot.getSlotStackLimit() - current); - - ItemStack newStack = copyStack(typestack, qty + current); - slot.putStack(newStack); - setSlotContents(slotNo, newStack, true); - given += qty; - if (given >= stack.stackSize) { - break; - } - } - if (given > 0) { - NEICPH.sendGiveItem(copyStack(typestack, given), false, false); - } - } else { - NEICPH.sendGiveItem(stack, infinite, true); - } - } else { - for (int given = 0; given < stack.stackSize; ) { - int qty = Math.min(stack.stackSize - given, stack.getMaxStackSize()); - sendCommand(getStringSetting("command.item"), mc().thePlayer.getName(), Item.itemRegistry.getNameForObject(stack.getItem()), qty, stack.getItemDamage(), stack.hasTagCompound() ? stack.getTagCompound().toString() : "", Item.getIdFromItem(stack.getItem())); - given += qty; - } - } - } - - public static boolean canItemFitInInventory(EntityPlayer player, ItemStack itemstack) { - return InventoryUtils.getInsertibleQuantity(new InventoryRange(player.inventory, 0, 36), itemstack) > 0; - } - - public static boolean shiftKey() { - return Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT); - } - - public static boolean controlKey() { - return Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) || Keyboard.isKeyDown(Keyboard.KEY_RCONTROL); - } - - public static int getGamemode() { - if (invCreativeMode()) { - return 2; - } else if (mc().playerController.isInCreativeMode()) { - return 1; - } else if (mc().playerController.currentGameType.isAdventure()) { - return 3; - } else { - return 0; - } - } - - public static boolean isValidGamemode(String s) { - return s.equals("survival") || canPerformAction(s) && Arrays.asList(getStringArrSetting("inventory.gamemodes")).contains(s); - } - - public static int getNextGamemode() { - int mode = getGamemode(); - int nmode = mode; - while (true) { - nmode = (nmode + 1) % NEIActions.gameModes.length; - if (nmode == mode || isValidGamemode(NEIActions.gameModes[nmode])) { - break; - } - } - return nmode; - } - - public static void cycleGamemode() { - int mode = getGamemode(); - int nmode = getNextGamemode(); - if (mode == nmode) { - return; - } - - if (hasSMPCounterPart()) { - NEICPH.sendGamemode(nmode); - } else { - sendCommand(getStringSetting("command.creative"), getGameType(nmode), mc().thePlayer.getName()); - } - } - - public static long getTime() { - return mc().theWorld.getWorldInfo().getWorldTime(); - } - - public static void setTime(long l) { - mc().theWorld.getWorldInfo().setWorldTime(l); - } - - public static void setHourForward(int hour) { - long day = (getTime() / 24000L) * 24000L; - long newTime = day + 24000L + hour * 1000; - - if (hasSMPCounterPart()) { - NEICPH.sendSetTime(hour); - } else { - sendCommand(getStringSetting("command.time"), newTime); - } - } - - public static void sendCommand(String command, Object... args) { - if (command.length() == 0) { - return; - } - - NumberFormat numberformat = NumberFormat.getIntegerInstance(); - numberformat.setGroupingUsed(false); - MessageFormat messageformat = new MessageFormat(command); - for (int i = 0; i < args.length; i++) { - if (args[i] instanceof Integer || args[i] instanceof Long) { - messageformat.setFormatByArgumentIndex(i, numberformat); - } - } - - mc().thePlayer.sendChatMessage(messageformat.format(args)); - } - - public static boolean isRaining() { - return mc().theWorld.getWorldInfo().isRaining(); - } - - public static void toggleRaining() { - if (hasSMPCounterPart()) { - NEICPH.sendToggleRain(); - } else { - sendCommand(getStringSetting("command.rain"), isRaining() ? 0 : 1); - } - } - - public static void healPlayer() { - if (hasSMPCounterPart()) { - NEICPH.sendHeal(); - } else { - sendCommand(getStringSetting("command.heal"), mc().thePlayer.getName()); - } - } - - public static void toggleMagnetMode() { - if (hasSMPCounterPart()) { - NEICPH.sendToggleMagnetMode(); - } - } - - public static ArrayList concatIntegersToRanges(List damages) { - ArrayList ranges = new ArrayList(); - if (damages.size() == 0) { - return ranges; - } - - Collections.sort(damages); - int start = -1; - int next = 0; - for (Integer i : damages) { - if (start == -1) { - start = next = i; - continue; - } - if (next + 1 != i) { - ranges.add(new int[] { start, next }); - start = next = i; - continue; - } - next = i; - } - ranges.add(new int[] { start, next }); - return ranges; - } - - public static ArrayList addIntegersToRanges(List ranges, List damages) { - for (int[] range : ranges) { - for (int integer = range[0]; integer <= range[1]; integer++) { - damages.add(integer); - } - } - - return concatIntegersToRanges(damages); - } - - public static boolean safeKeyDown(int keyCode) { - try { - return Keyboard.isKeyDown(keyCode); - } catch (IndexOutOfBoundsException e) { - return false; - } - } - - public static void setItemQuantity(int i) { - world.nbt.setInteger("quantity", i); - world.saveNBT(); - LayoutManager.quantity.setText(Integer.toString(i)); - } - - public static GuiContainer getGuiContainer() { - if (mc().currentScreen instanceof GuiContainer) { - return (GuiContainer) mc().currentScreen; - } - - return null; - } - - public static boolean altKey() { - return Keyboard.isKeyDown(Keyboard.KEY_LMENU) || Keyboard.isKeyDown(Keyboard.KEY_RMENU); - } - - public static void playClickSound() { - mc().getSoundHandler().playSound(PositionedSoundRecord.create(new ResourceLocation("gui.button.press"), 1.0F)); - } -} diff --git a/dependencies/main/java/codechicken/nei/NEICompatibility.java b/dependencies/main/java/codechicken/nei/NEICompatibility.java deleted file mode 100644 index 9b1c59b87e..0000000000 --- a/dependencies/main/java/codechicken/nei/NEICompatibility.java +++ /dev/null @@ -1,4 +0,0 @@ -package codechicken.nei; - -public class NEICompatibility { -} diff --git a/dependencies/main/java/codechicken/nei/NEIController.java b/dependencies/main/java/codechicken/nei/NEIController.java deleted file mode 100644 index 50c71b5f84..0000000000 --- a/dependencies/main/java/codechicken/nei/NEIController.java +++ /dev/null @@ -1,301 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.api.*; -import codechicken.nei.guihook.GuiContainerManager; -import codechicken.nei.guihook.IContainerInputHandler; -import codechicken.nei.guihook.IContainerSlotClickHandler; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.gui.inventory.GuiContainerCreative; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.inventory.SlotCrafting; -import net.minecraft.item.ItemStack; - -import java.awt.*; -import java.util.LinkedList; - -import static codechicken.lib.gui.GuiDraw.getMousePosition; - -public class NEIController implements IContainerSlotClickHandler, IContainerInputHandler { - private static NEIController instance = new NEIController(); - - public static GuiContainerManager manager; - public static FastTransferManager fastTransferManager; - - private static boolean deleteMode; - private static int pickedUpFromSlot; - private static IInfiniteItemHandler heldStackInfinite; - - private static int selectedItem; - private ItemStack firstheld; - - public static void load() { - GuiContainerManager.addSlotClickHandler(instance); - GuiContainerManager.addInputHandler(instance); - } - - public static void load(GuiContainer gui) { - manager = GuiContainerManager.getManager(gui); - deleteMode = false; - GuiInfo.clearGuiHandlers(); - fastTransferManager = null; - if (!NEIClientConfig.isEnabled()) { - return; - } - - fastTransferManager = new FastTransferManager(); - if (gui instanceof INEIGuiHandler) { - API.registerNEIGuiHandler((INEIGuiHandler) gui); - } - } - - public static boolean isSpreading(GuiContainer gui) { - return gui.dragSplitting && gui.dragSplittingSlots.size() > 1; - } - - public static void updateUnlimitedItems(InventoryPlayer inventory) { - if (!NEIClientConfig.canPerformAction("item") || !NEIClientConfig.hasSMPCounterPart()) { - return; - } - - LinkedList beforeStacks = new LinkedList(); - for (int i = 0; i < inventory.getSizeInventory(); i++) { - beforeStacks.add(NEIServerUtils.copyStack(inventory.getStackInSlot(i))); - } - - for (int i = 0; i < inventory.getSizeInventory(); i++) { - ItemStack stack = inventory.getStackInSlot(i); - if (stack == null) { - continue; - } - - for (IInfiniteItemHandler handler : ItemInfo.infiniteHandlers) { - if (handler.canHandleItem(stack) && handler.isItemInfinite(stack)) { - handler.replenishInfiniteStack(inventory, i); - } - } - } - - for (int i = 0; i < inventory.getSizeInventory(); i++) { - ItemStack newstack = inventory.getStackInSlot(i); - - if (!NEIServerUtils.areStacksIdentical(beforeStacks.get(i), newstack)) { - inventory.setInventorySlotContents(i, beforeStacks.get(i));//restore in case of SMP fail - NEIClientUtils.setSlotContents(i, newstack, false);//sends via SMP handler ;) - } - } - } - - public static void processCreativeCycling(InventoryPlayer inventory) { - if (NEIClientConfig.invCreativeMode() && NEIClientUtils.controlKey()) { - if (selectedItem != inventory.currentItem) { - if (inventory.currentItem == selectedItem + 1 || (inventory.currentItem == 0 && selectedItem == 8))//foward - { - NEICPH.sendCreativeScroll(1); - inventory.currentItem = selectedItem; - } else if (inventory.currentItem == selectedItem - 1 || (inventory.currentItem == 8 && selectedItem == 0)) { - NEICPH.sendCreativeScroll(-1); - inventory.currentItem = selectedItem; - } - } - } - - selectedItem = inventory.currentItem; - } - - @Override - public void beforeSlotClick(GuiContainer gui, int slotIndex, int button, Slot slot, int modifier) { - if (!NEIClientConfig.isEnabled()) { - return; - } - - firstheld = NEIClientUtils.getHeldItem(); - } - - @Override - public boolean handleSlotClick(GuiContainer gui, int slotIndex, int button, Slot slot, int modifier, boolean eventconsumed) { - if (eventconsumed || - !NEIClientConfig.isEnabled() || - isSpreading(gui)) { - return eventconsumed; - } - - if (deleteMode && slotIndex >= 0 && slot != null) { - if (NEIClientUtils.shiftKey() && button == 0) { - ItemStack itemstack1 = slot.getStack(); - if (itemstack1 != null) { - NEIClientUtils.deleteItemsOfType(itemstack1); - } - - } else if (button == 1) { - NEIClientUtils.decreaseSlotStack(slot.slotNumber); - } else { - NEIClientUtils.deleteSlotStack(slot.slotNumber); - } - return true; - } - - if (button == 1 && slot instanceof SlotCrafting)//right click - { - for (int i1 = 0; i1 < 64; i1++)//click this slot 64 times - { - manager.handleSlotClick(slot.slotNumber, button, 0); - } - return true; - } - - if (NEIClientUtils.controlKey() && slot != null && slot.getStack() != null && slot.isItemValid(slot.getStack())) { - NEIClientUtils.cheatItem(slot.getStack(), button, 1); - return true; - } - - if (GuiInfo.hasCustomSlots(gui)) { - return false; - } - - if (slotIndex >= 0 && NEIClientUtils.shiftKey() && NEIClientUtils.getHeldItem() != null && !slot.getHasStack()) { - ItemStack held = NEIClientUtils.getHeldItem(); - manager.handleSlotClick(slot.slotNumber, button, 0); - if (slot.isItemValid(held) && !ItemInfo.fastTransferExemptions.contains(slot.getClass())) { - fastTransferManager.performMassTransfer(gui, pickedUpFromSlot, slotIndex, held); - } - - return true; - } - - if (slotIndex == -999 && NEIClientUtils.shiftKey() && button == 0) { - fastTransferManager.throwAll(gui, pickedUpFromSlot); - return true; - } - - return false; - } - - @Override - public void afterSlotClick(GuiContainer gui, int slotIndex, int button, Slot slot, int modifier) { - if (!NEIClientConfig.isEnabled()) { - return; - } - - ItemStack nowHeld = NEIClientUtils.getHeldItem(); - - if (firstheld != nowHeld) { - pickedUpFromSlot = slotIndex; - } - - if (NEIClientConfig.canPerformAction("item") && NEIClientConfig.hasSMPCounterPart()) { - if (heldStackInfinite != null && slot != null && slot.inventory == Minecraft.getMinecraft().thePlayer.inventory) { - ItemStack stack = slot.getStack(); - if (stack != null) { - heldStackInfinite.onPlaceInfinite(stack); - } - NEIClientUtils.setSlotContents(slotIndex, stack, true); - } - - if (firstheld != nowHeld) { - heldStackInfinite = null; - } - - if (firstheld != nowHeld && nowHeld != null) { - for (IInfiniteItemHandler handler : ItemInfo.infiniteHandlers) { - if (handler.canHandleItem(nowHeld) && handler.isItemInfinite(nowHeld)) { - handler.onPickup(nowHeld); - NEIClientUtils.setSlotContents(-999, nowHeld, true); - heldStackInfinite = handler; - break; - } - } - } - } - } - - @Override - public boolean lastKeyTyped(GuiContainer gui, char keyChar, int keyCode) { - if (!NEIClientConfig.isEnabled() || - GuiInfo.hasCustomSlots(gui) || - isSpreading(gui)) { - return false; - } - - Slot slot = GuiContainerManager.getSlotMouseOver(gui); - if (slot == null) { - return false; - } - - int slotIndex = slot.slotNumber; - - if (keyCode == Minecraft.getMinecraft().gameSettings.keyBindDrop.getKeyCode() && NEIClientUtils.shiftKey()) { - FastTransferManager.clickSlot(gui, slotIndex); - fastTransferManager.throwAll(gui, slotIndex); - FastTransferManager.clickSlot(gui, slotIndex); - - return true; - } - - return false; - } - - @Override - public boolean mouseScrolled(GuiContainer gui, int mousex, int mousey, int scrolled) { - if (!NEIClientConfig.isEnabled() || GuiInfo.hasCustomSlots(gui)) { - return false; - } - - Point mousePos = getMousePosition(); - Slot mouseover = manager.window.getSlotAtPosition(mousePos.x, mousePos.y); - if (mouseover != null && mouseover.getHasStack()) { - if (scrolled > 0) { - fastTransferManager.transferItem(manager.window, mouseover.slotNumber); - } else { - fastTransferManager.retrieveItem(manager.window, mouseover.slotNumber); - } - return true; - } - return false; - } - - @Override - public boolean keyTyped(GuiContainer gui, char keyChar, int keyCode) { - return false; - } - - @Override - public boolean mouseClicked(GuiContainer gui, int mousex, int mousey, int button) { - return false; - } - - @Override - public void onKeyTyped(GuiContainer gui, char keyChar, int keyID) { - } - - @Override - public void onMouseClicked(GuiContainer gui, int mousex, int mousey, int button) { - } - - @Override - public void onMouseDragged(GuiContainer gui, int mousex, int mousey, int button, long heldTime) { - } - - @Override - public void onMouseScrolled(GuiContainer gui, int mousex, int mousey, int scrolled) { - } - - @Override - public void onMouseUp(GuiContainer gui, int mousex, int mousey, int button) { - } - - public static boolean canUseDeleteMode() { - return !(NEIClientUtils.getGuiContainer() instanceof GuiContainerCreative); - } - - public static void toggleDeleteMode() { - if (canUseDeleteMode()) { - deleteMode = !deleteMode; - } - } - - public static boolean getDeleteMode() { - return deleteMode; - } -} diff --git a/dependencies/main/java/codechicken/nei/NEICreativeGuiHandler.java b/dependencies/main/java/codechicken/nei/NEICreativeGuiHandler.java deleted file mode 100644 index 2ca53297a1..0000000000 --- a/dependencies/main/java/codechicken/nei/NEICreativeGuiHandler.java +++ /dev/null @@ -1,22 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.api.INEIGuiAdapter; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.gui.inventory.GuiContainerCreative; -import net.minecraft.creativetab.CreativeTabs; - -public class NEICreativeGuiHandler extends INEIGuiAdapter { - @Override - public VisiblityData modifyVisiblity(GuiContainer gui, VisiblityData currentVisibility) { - if (!(gui instanceof GuiContainerCreative)) { - return currentVisibility; - } - - if (((GuiContainerCreative) gui).getSelectedTabIndex() != CreativeTabs.tabInventory.getTabIndex()) { - currentVisibility.showItemSection = currentVisibility.enableDeleteMode = false; - } - - return currentVisibility; - } - -} diff --git a/dependencies/main/java/codechicken/nei/NEIDummySlotHandler.java b/dependencies/main/java/codechicken/nei/NEIDummySlotHandler.java deleted file mode 100644 index ddefba0547..0000000000 --- a/dependencies/main/java/codechicken/nei/NEIDummySlotHandler.java +++ /dev/null @@ -1,21 +0,0 @@ -package codechicken.nei; - -import codechicken.core.inventory.ContainerExtended; -import codechicken.core.inventory.SlotDummy; -import codechicken.nei.api.INEIGuiAdapter; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class NEIDummySlotHandler extends INEIGuiAdapter { - @Override - public boolean handleDragNDrop(GuiContainer gui, int mousex, int mousey, ItemStack draggedStack, int button) { - Slot slot = gui.getSlotAtPosition(mousex, mousey); - if (slot instanceof SlotDummy && slot.isItemValid(draggedStack) && gui.inventorySlots instanceof ContainerExtended) { - ((SlotDummy) slot).slotClick(draggedStack, button, NEIClientUtils.shiftKey()); - NEICPH.sendDummySlotSet(slot.slotNumber, slot.getStack()); - return true; - } - return false; - } -} diff --git a/dependencies/main/java/codechicken/nei/NEIModContainer.java b/dependencies/main/java/codechicken/nei/NEIModContainer.java deleted file mode 100644 index 43d934e7c7..0000000000 --- a/dependencies/main/java/codechicken/nei/NEIModContainer.java +++ /dev/null @@ -1,110 +0,0 @@ -package codechicken.nei; - -import codechicken.core.CommonUtils; -import codechicken.core.launch.CodeChickenCorePlugin; -import codechicken.nei.api.IConfigureNEI; -import codechicken.nei.asm.NEICorePlugin; -import com.google.common.eventbus.EventBus; -import com.google.common.eventbus.Subscribe; -import net.minecraft.util.EnumChatFormatting; -import net.minecraftforge.fml.client.FMLFileResourcePack; -import net.minecraftforge.fml.client.FMLFolderResourcePack; -import net.minecraftforge.fml.common.*; -import net.minecraftforge.fml.common.event.FMLInitializationEvent; -import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import net.minecraftforge.fml.common.versioning.ArtifactVersion; -import net.minecraftforge.fml.common.versioning.VersionParser; -import net.minecraftforge.fml.common.versioning.VersionRange; - -import java.io.File; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; - -@Mod(modid = "nei")// Fixes no resource domain being registered. -public class NEIModContainer extends DummyModContainer { - public static LinkedList plugins = new LinkedList(); - - public NEIModContainer() { - super(MetadataCollection.from(MetadataCollection.class.getResourceAsStream("/neimod.info"), "NotEnoughItems").getMetadataForId("NotEnoughItems", null)); - loadMetadata(); - } - - @Override - public Set getRequirements() { - Set deps = new HashSet(); - deps.add(VersionParser.parseVersionReference("CodeChickenCore@[" + CodeChickenCorePlugin.version + ",)")); - return deps; - } - - @Override - public List getDependencies() { - return new LinkedList(getRequirements()); - } - - private String description; - - private void loadMetadata() { - description = super.getMetadata().description.replace("Supporters:", EnumChatFormatting.AQUA + "Supporters:"); - } - - @Override - public ModMetadata getMetadata() { - String s_plugins = ""; - if (plugins.size() == 0) { - s_plugins += EnumChatFormatting.RED + "No installed plugins."; - } else { - s_plugins += EnumChatFormatting.GREEN + "Installed plugins: "; - for (int i = 0; i < plugins.size(); i++) { - if (i > 0) { - s_plugins += ", "; - } - IConfigureNEI plugin = plugins.get(i); - s_plugins += plugin.getName() + " " + plugin.getVersion(); - } - s_plugins += "."; - } - - ModMetadata meta = super.getMetadata(); - meta.description = description.replace("", s_plugins); - return meta; - } - - @Override - public boolean registerBus(EventBus bus, LoadController controller) { - bus.register(this); - return true; - } - - @Subscribe - public void preInit(FMLPreInitializationEvent event) { - if (CommonUtils.isClient()) { - ClientHandler.preInit(); - } - } - - @Subscribe - public void init(FMLInitializationEvent event) { - if (CommonUtils.isClient()) { - ClientHandler.init(); - } - - ServerHandler.init(); - } - - @Override - public VersionRange acceptableMinecraftVersionRange() { - return VersionParser.parseRange(CodeChickenCorePlugin.mcVersion); - } - - @Override - public File getSource() { - return NEICorePlugin.location; - } - - @Override - public Class getCustomResourcePackClass() { - return getSource().isFile() ? FMLFileResourcePack.class : FMLFolderResourcePack.class; - } -} diff --git a/dependencies/main/java/codechicken/nei/NEISPH.java b/dependencies/main/java/codechicken/nei/NEISPH.java deleted file mode 100644 index 1edcba2e65..0000000000 --- a/dependencies/main/java/codechicken/nei/NEISPH.java +++ /dev/null @@ -1,265 +0,0 @@ -package codechicken.nei; - -import codechicken.core.IGuiPacketSender; -import codechicken.core.ServerUtils; -import codechicken.core.inventory.ContainerExtended; -import codechicken.core.inventory.SlotDummy; -import codechicken.lib.packet.PacketCustom; -import codechicken.lib.packet.PacketCustom.IServerPacketHandler; -import codechicken.lib.vec.BlockCoord; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.inventory.InventoryBasic; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraft.network.play.INetHandlerPlayServer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityMobSpawner; -import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; - -import java.util.LinkedList; -import java.util.Set; - -public class NEISPH implements IServerPacketHandler { - @Override - public void handlePacket(PacketCustom packet, EntityPlayerMP sender, INetHandlerPlayServer netHandler) { - if (!NEIServerConfig.authenticatePacket(sender, packet)) { - return; - } - - switch (packet.getType()) { - case 1: - handleGiveItem(sender, packet); - break; - case 4: - NEIServerUtils.deleteAllItems(sender); - break; - case 5: - setInventorySlot(sender, packet); - break; - case 6: - NEIServerUtils.toggleMagnetMode(sender); - break; - case 7: - NEIServerUtils.setHourForward(sender.worldObj, packet.readUByte(), true); - break; - case 8: - NEIServerUtils.healPlayer(sender); - break; - case 9: - NEIServerUtils.toggleRaining(sender.worldObj, true); - break; - case 10: - sendLoginState(sender); - break; - case 11: - sender.updateCraftingInventory(sender.openContainer, sender.openContainer.getInventory()); - break; - case 12: - handlePropertyChange(sender, packet); - break; - case 13: - NEIServerUtils.setGamemode(sender, packet.readUByte()); - break; - case 14: - NEIServerUtils.cycleCreativeInv(sender, packet.readInt()); - break; - case 15: - handleMobSpawnerID(sender.worldObj, packet.readCoord(), packet.readString()); - break; - case 20: - handleContainerPacket(sender, packet); - break; - case 21: - openEnchantmentGui(sender); - break; - case 22: - modifyEnchantment(sender, packet.readUByte(), packet.readUByte(), packet.readBoolean()); - break; - case 23: - processCreativeInv(sender, packet.readBoolean()); - break; - case 24: - openPotionGui(sender, packet); - break; - case 25: - handleDummySlotSet(sender, packet); - break; - } - } - - private void handleDummySlotSet(EntityPlayerMP sender, PacketCustom packet) { - Slot slot = sender.openContainer.getSlot(packet.readShort()); - if (slot instanceof SlotDummy) { - slot.putStack(packet.readItemStack()); - } - } - - private void handleContainerPacket(EntityPlayerMP sender, PacketCustom packet) { - if (sender.openContainer instanceof ContainerExtended) { - ((ContainerExtended) sender.openContainer).handleInputPacket(packet); - } - } - - private void handleMobSpawnerID(World world, BlockCoord coord, String mobtype) { - TileEntity tile = world.getTileEntity(coord.pos()); - if (tile instanceof TileEntityMobSpawner) { - ((TileEntityMobSpawner) tile).getSpawnerBaseLogic().setEntityName(mobtype); - tile.markDirty(); - world.markBlockForUpdate(coord.pos()); - } - } - - private void handlePropertyChange(EntityPlayerMP sender, PacketCustom packet) { - String name = packet.readString(); - if (NEIServerConfig.canPlayerPerformAction(sender.getName(), name)) { - NEIServerConfig.disableAction(sender.dimension, name, packet.readBoolean()); - } - } - - public static void processCreativeInv(EntityPlayerMP sender, boolean open) { - if (open) { - ServerUtils.openSMPContainer(sender, new ContainerCreativeInv(sender, new ExtendedCreativeInv(NEIServerConfig.forPlayer(sender.getName()), Side.SERVER)), new IGuiPacketSender() { - @Override - public void sendPacket(EntityPlayerMP player, int windowId) { - PacketCustom packet = new PacketCustom(channel, 23); - packet.writeBoolean(true); - packet.writeByte(windowId); - packet.sendToPlayer(player); - } - }); - } else { - sender.closeContainer(); - PacketCustom packet = new PacketCustom(channel, 23); - packet.writeBoolean(false); - packet.sendToPlayer(sender); - } - } - - private void handleGiveItem(EntityPlayerMP player, PacketCustom packet) { - NEIServerUtils.givePlayerItem(player, packet.readItemStack(), packet.readBoolean(), packet.readBoolean()); - } - - private void setInventorySlot(EntityPlayerMP player, PacketCustom packet) { - boolean container = packet.readBoolean(); - int slot = packet.readShort(); - ItemStack item = packet.readItemStack(); - - ItemStack old = NEIServerUtils.getSlotContents(player, slot, container); - boolean deleting = item == null || old != null && NEIServerUtils.areStacksSameType(item, old) && item.stackSize < old.stackSize; - if (NEIServerConfig.canPlayerPerformAction(player.getName(), deleting ? "delete" : "item")) { - NEIServerUtils.setSlotContents(player, slot, item, container); - } - } - - private void modifyEnchantment(EntityPlayerMP player, int e, int lvl, boolean add) { - ContainerEnchantmentModifier containerem = (ContainerEnchantmentModifier) player.openContainer; - if (add) { - containerem.addEnchantment(e, lvl); - } else { - containerem.removeEnchantment(e); - } - } - - private void openEnchantmentGui(EntityPlayerMP player) { - ServerUtils.openSMPContainer(player, new ContainerEnchantmentModifier(player.inventory, player.worldObj), new IGuiPacketSender() { - @Override - public void sendPacket(EntityPlayerMP player, int windowId) { - PacketCustom packet = new PacketCustom(channel, 21); - packet.writeByte(windowId); - packet.sendToPlayer(player); - } - }); - } - - private void openPotionGui(EntityPlayerMP player, PacketCustom packet) { - InventoryBasic b = new InventoryBasic("potionStore", true, 9); - for (int i = 0; i < b.getSizeInventory(); i++) { - b.setInventorySlotContents(i, packet.readItemStack()); - } - ServerUtils.openSMPContainer(player, new ContainerPotionCreator(player.inventory, b), new IGuiPacketSender() { - @Override - public void sendPacket(EntityPlayerMP player, int windowId) { - PacketCustom packet = new PacketCustom(channel, 24); - packet.writeByte(windowId); - packet.sendToPlayer(player); - } - }); - } - - public static void sendActionDisabled(int dim, String name, boolean disable) { - new PacketCustom(channel, 11).writeString(name).writeBoolean(disable).sendToDimension(dim); - } - - public static void sendActionEnabled(EntityPlayerMP player, String name, boolean enable) { - new PacketCustom(channel, 12).writeString(name).writeBoolean(enable).sendToPlayer(player); - } - - private void sendLoginState(EntityPlayerMP player) { - LinkedList actions = new LinkedList(); - LinkedList disabled = new LinkedList(); - LinkedList enabled = new LinkedList(); - LinkedList bannedItems = new LinkedList(); - PlayerSave playerSave = NEIServerConfig.forPlayer(player.getName()); - - for (String name : NEIActions.nameActionMap.keySet()) { - if (NEIServerConfig.canPlayerPerformAction(player.getName(), name)) { - actions.add(name); - } - if (NEIServerConfig.isActionDisabled(player.dimension, name)) { - disabled.add(name); - } - if (playerSave.isActionEnabled(name)) { - enabled.add(name); - } - } - for (ItemStackMap.Entry> entry : NEIServerConfig.bannedItems.entries()) { - if (!NEIServerConfig.isPlayerInList(player.getName(), entry.value, true)) { - bannedItems.add(entry.key); - } - } - - PacketCustom packet = new PacketCustom(channel, 10); - - packet.writeByte(actions.size()); - for (String s : actions) { - packet.writeString(s); - } - - packet.writeByte(disabled.size()); - for (String s : disabled) { - packet.writeString(s); - } - - packet.writeByte(enabled.size()); - for (String s : enabled) { - packet.writeString(s); - } - - packet.writeInt(bannedItems.size()); - for (ItemStack stack : bannedItems) { - packet.writeItemStack(stack); - } - - packet.sendToPlayer(player); - } - - public static void sendHasServerSideTo(EntityPlayerMP player) { - NEIServerConfig.logger.debug("Sending serverside check to: " + player.getName()); - PacketCustom packet = new PacketCustom(channel, 1); - packet.writeByte(NEIActions.protocol); - packet.writeString(player.worldObj.getWorldInfo().getWorldName()); - - packet.sendToPlayer(player); - } - - public static void sendAddMagneticItemTo(EntityPlayerMP player, EntityItem item) { - PacketCustom packet = new PacketCustom(channel, 13); - packet.writeInt(item.getEntityId()); - - packet.sendToPlayer(player); - } - - public static final String channel = "NEI"; -} diff --git a/dependencies/main/java/codechicken/nei/NEIServerConfig.java b/dependencies/main/java/codechicken/nei/NEIServerConfig.java deleted file mode 100644 index c6e1f490e8..0000000000 --- a/dependencies/main/java/codechicken/nei/NEIServerConfig.java +++ /dev/null @@ -1,300 +0,0 @@ -package codechicken.nei; - -import codechicken.core.CommonUtils; -import codechicken.core.ServerUtils; -import codechicken.lib.config.ConfigFile; -import codechicken.lib.inventory.InventoryUtils; -import codechicken.lib.packet.PacketCustom; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.JsonToNBT; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.server.MinecraftServer; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; -import org.apache.commons.io.IOUtils; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import java.io.File; -import java.io.FileReader; -import java.io.PrintWriter; -import java.util.*; - -public class NEIServerConfig { - private static MinecraftServer server; - - public static Logger logger = LogManager.getLogger("NotEnoughItems"); - public static File saveDir; - public static ConfigFile serverConfig; - public static Map dimTags = new HashMap(); - public static HashMap playerSaves = new HashMap(); - public static ItemStackMap> bannedItems = new ItemStackMap>(); - - public static void load(World world) { - if (MinecraftServer.getServer() != server) { - logger.debug("Loading NEI Server"); - server = MinecraftServer.getServer(); - saveDir = new File(DimensionManager.getCurrentSaveRootDirectory(), "NEI"); - - dimTags.clear(); - loadConfig(); - loadBannedItems(); - } - loadWorld(world); - } - - public static File getSaveDir(World world) { - return new File(CommonUtils.getSaveLocation(world), "NEI"); - } - - private static void loadWorld(World world) { - try { - File file = new File(getSaveDir(world), "world.dat"); - NBTTagCompound tag = NEIServerUtils.readNBT(file); - if (tag == null) { - tag = new NBTTagCompound(); - } - dimTags.put(world.provider.getDimensionId(), tag); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - private static void loadConfig() { - File file = new File(saveDir, "server.cfg"); - serverConfig = new ConfigFile(file); - - serverConfig.setNewLineMode(1); - serverConfig.getTag("permissions").useBraces(); - serverConfig.getTag("permissions").setComment("List of players who can use these features.\nEg. time=CodeChicken, Friend1"); - - setDefaultFeature("time"); - setDefaultFeature("rain"); - setDefaultFeature("heal"); - setDefaultFeature("magnet"); - setDefaultFeature("creative"); - setDefaultFeature("creative+"); - setDefaultFeature("adventure"); - setDefaultFeature("enchant"); - setDefaultFeature("potion"); - setDefaultFeature("save-state"); - setDefaultFeature("item"); - setDefaultFeature("delete"); - setDefaultFeature("notify-item", "CONSOLE, OP"); - } - - private static void setDefaultFeature(String featurename, String... names) { - if (names.length == 0) { - names = new String[] { "OP" }; - } - - String list = ""; - for (int i = 0; i < names.length; i++) { - if (i >= 1) { - list += ", "; - } - list += names[i]; - } - serverConfig.getTag("permissions." + featurename).setDefaultValue(list); - } - - private static void saveWorld(int dim) { - try { - File file = new File(getSaveDir(DimensionManager.getWorld(dim)), "world.dat"); - NEIServerUtils.writeNBT(dimTags.get(dim), file); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static boolean canPlayerPerformAction(String playername, String name) { - return isPlayerInList(playername, getPlayerList("permissions." + NEIActions.base(name)), true); - } - - public static boolean isPlayerInList(String playername, Set list, boolean allowCards) { - if (playername.equals("CONSOLE")) { - return list.contains(playername); - } - - playername = playername.toLowerCase(); - - if (allowCards) { - if (list.contains("ALL")) { - return true; - } - if ((ServerUtils.isPlayerOP(playername) || ServerUtils.isPlayerOwner(playername)) && list.contains("OP")) { - return true; - } - } - - return list.contains(playername); - } - - public static boolean isActionDisabled(int dim, String name) { - return dimTags.get(dim).getBoolean("disabled" + name); - } - - public static void disableAction(int dim, String name, boolean disable) { - dimTags.get(dim).setBoolean("disabled" + name, disable); - NEISPH.sendActionDisabled(dim, name, disable); - saveWorld(dim); - } - - public static HashSet getPlayerList(String tag) { - String[] list = serverConfig.getTag(tag).getValue("").replace(" ", "").split(","); - return new HashSet(Arrays.asList(list)); - } - - public static void addPlayerToList(String playername, String tag) { - HashSet list = getPlayerList(tag); - - if (!playername.equals("CONSOLE") && !playername.equals("ALL") && !playername.equals("OP")) { - playername = playername.toLowerCase(); - } - - list.add(playername); - savePlayerList(tag, list); - } - - public static void remPlayerFromList(String playername, String tag) { - HashSet list = getPlayerList(tag); - - if (!playername.equals("CONSOLE") && !playername.equals("ALL") && !playername.equals("OP")) { - playername = playername.toLowerCase(); - } - - list.remove(playername); - savePlayerList(tag, list); - } - - private static void savePlayerList(String tag, Collection list) { - StringBuilder sb = new StringBuilder(); - int i = 0; - for (Iterator iterator = list.iterator(); iterator.hasNext(); i++) { - if (i != 0) { - sb.append(", "); - } - - sb.append(iterator.next()); - } - - serverConfig.getTag(tag).setValue(sb.toString()); - } - - private static void loadBannedItems() { - bannedItems.clear(); - File file = new File(saveDir, "banneditems.cfg"); - if (!file.exists()) { - bannedItems.put(new ItemStack(Blocks.command_block), new HashSet(Arrays.asList("NONE"))); - saveBannedItems(); - return; - } - try { - FileReader r = new FileReader(file); - int line = 0; - for (String s : IOUtils.readLines(r)) { - if (s.charAt(0) == '#' || s.trim().length() == 0) { - continue; - } - int delim = s.lastIndexOf('='); - if (delim < 0) { - logger.error("line " + line + ": Missing ="); - continue; - } - try { - NBTTagCompound key = JsonToNBT.getTagFromJson(s.substring(0, delim)); - Set values = new HashSet(); - for (String s2 : s.substring(delim + 1).split(",")) { - values.add(s2.trim()); - } - bannedItems.put(InventoryUtils.loadPersistant(key), values); - } catch (Exception e) { - logger.error("line " + line + ": " + e.getMessage()); - } - } - r.close(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static void saveBannedItems() { - File file = new File(saveDir, "banneditems.cfg"); - try { - if (!file.exists()) { - file.createNewFile(); - } - - PrintWriter p = new PrintWriter(file); - p.println("#Saved in this format for external editing. The format isn't that hard to figure out. If you think you're up to it, modify it here!"); - - for (ItemStackMap.Entry> entry : bannedItems.entries()) { - NBTTagCompound key = InventoryUtils.savePersistant(entry.key, new NBTTagCompound()); - key.removeTag("Count"); - if (key.getByte("Damage") == 0) { - key.removeTag("Damage"); - } - - p.print(key.toString()); - p.print("=["); - int i = 0; - for (String s : entry.value) { - if (i++ != 0) { - p.print(", "); - } - p.print(s); - } - p.println("]"); - } - p.close(); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static PlayerSave forPlayer(String username) { - return playerSaves.get(username); - } - - public static void loadPlayer(EntityPlayer player) { - logger.debug("Loading Player: " + player.getGameProfile().getName()); - playerSaves.put(player.getName(), new PlayerSave((EntityPlayerMP) player, new File(saveDir, "players"))); - } - - public static void unloadPlayer(EntityPlayer player) { - logger.debug("Unloading Player: " + player.getName()); - PlayerSave playerSave = playerSaves.remove(player.getName()); - if (playerSave != null) { - playerSave.save(); - } - } - - public static boolean authenticatePacket(EntityPlayerMP sender, PacketCustom packet) { - switch (packet.getType()) { - case 1: - return canPlayerPerformAction(sender.getName(), "item"); - case 4: - return canPlayerPerformAction(sender.getName(), "delete"); - case 6: - return canPlayerPerformAction(sender.getName(), "magnet"); - case 7: - return canPlayerPerformAction(sender.getName(), "time"); - case 8: - return canPlayerPerformAction(sender.getName(), "heal"); - case 9: - return canPlayerPerformAction(sender.getName(), "rain"); - case 14: - case 23: - return canPlayerPerformAction(sender.getName(), "creative+"); - case 21: - case 22: - return canPlayerPerformAction(sender.getName(), "enchant"); - case 24: - return canPlayerPerformAction(sender.getName(), "potion"); - } - return true; - } -} diff --git a/dependencies/main/java/codechicken/nei/NEIServerUtils.java b/dependencies/main/java/codechicken/nei/NEIServerUtils.java deleted file mode 100644 index 83b9821162..0000000000 --- a/dependencies/main/java/codechicken/nei/NEIServerUtils.java +++ /dev/null @@ -1,450 +0,0 @@ -package codechicken.nei; - -import codechicken.core.CommonUtils; -import codechicken.core.ServerUtils; -import codechicken.lib.inventory.InventoryRange; -import codechicken.lib.inventory.InventoryUtils; -import codechicken.lib.packet.PacketCustom; -import net.minecraft.command.ICommandSender; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompressedStreamTools; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.ChatComponentTranslation; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IChatComponent; -import net.minecraft.world.World; -import net.minecraft.world.WorldServer; -import net.minecraft.world.WorldSettings.GameType; -import net.minecraftforge.oredict.OreDictionary; - -import java.io.*; -import java.util.AbstractList; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.zip.ZipException; - -public class NEIServerUtils { - public static boolean isRaining(World world) { - return world.getWorldInfo().isRaining(); - } - - public static void toggleRaining(World world, boolean notify) { - boolean raining = !world.isRaining(); - if (!raining)//turn off - { - ((WorldServer) world).provider.resetRainAndThunder(); - } else { - world.getWorldInfo().setRaining(!isRaining(world)); - } - - if (notify) { - ServerUtils.sendChatToAll(new ChatComponentTranslation("nei.chat.rain." + (raining ? "on" : "off"))); - } - } - - public static void healPlayer(EntityPlayer player) { - player.heal(20); - player.getFoodStats().addStats(20, 1); - player.extinguish(); - } - - public static long getTime(World world) { - return world.getWorldInfo().getWorldTime(); - } - - public static void setTime(long l, World world) { - world.getWorldInfo().setWorldTime(l); - } - - public static void setSlotContents(EntityPlayer player, int slot, ItemStack item, boolean containerInv) { - if (slot == -999) { - player.inventory.setItemStack(item); - } else if (containerInv) { - player.openContainer.putStackInSlot(slot, item); - } else { - player.inventory.setInventorySlotContents(slot, item); - } - } - - public static ItemStack getSlotContents(EntityPlayer player, int slot, boolean containerInv) { - if (slot == -999) { - return player.inventory.getItemStack(); - } else if (containerInv) { - return player.openContainer.getSlot(slot).getStack(); - } else { - return player.inventory.getStackInSlot(slot); - } - } - - @SuppressWarnings("unchecked") - public static void deleteAllItems(EntityPlayerMP player) { - for (Slot slot : (List) player.openContainer.inventorySlots) { - slot.putStack(null); - } - - player.updateCraftingInventory(player.openContainer, player.openContainer.getInventory()); - } - - public static void setHourForward(World world, int hour, boolean notify) { - long day = (getTime(world) / 24000L) * 24000L; - long newTime = day + 24000L + hour * 1000; - setTime(newTime, world); - if (notify) { - ServerUtils.sendChatToAll(new ChatComponentTranslation("nei.chat.time", getTime(world) / 24000L, hour)); - } - } - - public static void advanceDisabledTimes(World world) { - int dim = world.provider.getDimensionId(); - int hour = (int) (getTime(world) % 24000) / 1000; - int newhour = hour; - while (NEIServerConfig.isActionDisabled(dim, NEIActions.timeZones[newhour / 6])) { - newhour = ((newhour / 6 + 1) % 4) * 6; - } - - if (newhour != hour) { - setHourForward(world, newhour, false); - } - } - - public static boolean canItemFitInInventory(EntityPlayer player, ItemStack itemstack) { - return InventoryUtils.insertItem(new InventoryRange(player.inventory, 0, 36), itemstack, true) == 0; - } - - public static void sendNotice(ICommandSender sender, IChatComponent msg, String permission) { - ChatComponentTranslation notice = new ChatComponentTranslation("chat.type.admin", sender.getName(), msg.createCopy()); - notice.getChatStyle().setColor(EnumChatFormatting.GRAY).setItalic(true); - - if (NEIServerConfig.canPlayerPerformAction("CONSOLE", permission)) { - MinecraftServer.getServer().addChatMessage(notice); - } - - for (EntityPlayer p : ServerUtils.getPlayers()) { - if (p == sender) { - p.addChatComponentMessage(msg); - } else if (NEIServerConfig.canPlayerPerformAction(p.getName(), permission)) { - p.addChatComponentMessage(notice); - } - } - } - - /** - * @param stack1 The {@link ItemStack} being compared. - * @param stack2 The {@link ItemStack} to compare to. - * @return whether the two items are the same in terms of damage and itemID. - */ - public static boolean areStacksSameType(ItemStack stack1, ItemStack stack2) { - return stack1 != null && stack2 != null && - (stack1.getItem() == stack2.getItem() && - (!stack2.getHasSubtypes() || stack2.getItemDamage() == stack1.getItemDamage()) && - ItemStack.areItemStackTagsEqual(stack2, stack1)); - } - - /** - * {@link ItemStack}s with damage -1 are wildcards allowing all damages. Eg all colours of wool are allowed to create Beds. - * - * @param stack1 The {@link ItemStack} being compared. - * @param stack2 The {@link ItemStack} to compare to. - * @return whether the two items are the same from the perspective of a crafting inventory. - */ - public static boolean areStacksSameTypeCrafting(ItemStack stack1, ItemStack stack2) { - return stack1 != null && stack2 != null && - stack1.getItem() == stack2.getItem() && - (stack1.getItemDamage() == stack2.getItemDamage() || stack1.getItemDamage() == OreDictionary.WILDCARD_VALUE || stack2.getItemDamage() == OreDictionary.WILDCARD_VALUE || stack1.getItem().isDamageable()); - } - - /** - * A simple function for comparing ItemStacks in a compatible with comparators. - * - * @param stack1 The {@link ItemStack} being compared. - * @param stack2 The {@link ItemStack} to compare to. - * @return The ordering of stack1 relative to stack2. - */ - public static int compareStacks(ItemStack stack1, ItemStack stack2) { - if (stack1 == stack2) { - return 0;//catches both null - } - if (stack1 == null || stack2 == null) { - return stack1 == null ? -1 : 1;//null stack goes first - } - if (stack1.getItem() != stack2.getItem()) { - return Item.getIdFromItem(stack1.getItem()) - Item.getIdFromItem(stack2.getItem()); - } - if (stack1.stackSize != stack2.stackSize) { - return stack1.stackSize - stack2.stackSize; - } - return stack1.getItemDamage() - stack2.getItemDamage(); - } - - public static boolean areStacksIdentical(ItemStack stack1, ItemStack stack2) { - return compareStacks(stack1, stack2) == 0; - } - - public static IChatComponent setColour(IChatComponent msg, EnumChatFormatting colour) { - msg.getChatStyle().setColor(colour); - return msg; - } - - public static void givePlayerItem(EntityPlayerMP player, ItemStack stack, boolean infinite, boolean doGive) { - if (stack.getItem() == null) { - player.addChatComponentMessage(setColour(new ChatComponentTranslation("nei.chat.give.noitem"), EnumChatFormatting.WHITE)); - return; - } - - int given = stack.stackSize; - if (doGive) { - if (infinite) { - player.inventory.addItemStackToInventory(stack); - } else { - given -= InventoryUtils.insertItem(player.inventory, stack, false); - } - } - - sendNotice(player, new ChatComponentTranslation("commands.give.success", stack.getChatComponent(), infinite ? "\u221E" : Integer.toString(given), player.getName()), "notify-item"); - player.openContainer.detectAndSendChanges(); - } - - public static ItemStack copyStack(ItemStack itemstack, int i) { - if (itemstack == null) { - return null; - } - - itemstack.stackSize += i; - return itemstack.splitStack(i); - } - - public static ItemStack copyStack(ItemStack itemstack) { - if (itemstack == null) { - return null; - } - - return copyStack(itemstack, itemstack.stackSize); - } - - public static void toggleMagnetMode(EntityPlayerMP player) { - PlayerSave playerSave = NEIServerConfig.forPlayer(player.getName()); - playerSave.enableAction("magnet", !playerSave.isActionEnabled("magnet")); - } - - public static int getCreativeMode(EntityPlayerMP player) { - if (NEIServerConfig.forPlayer(player.getName()).isActionEnabled("creative+")) { - return 2; - } else if (player.theItemInWorldManager.isCreative()) { - return 1; - } else if (player.theItemInWorldManager.getGameType().isAdventure()) { - return 3; - } else { - return 0; - } - } - - public static GameType getGameType(int mode) { - switch (mode) { - case 0: - return GameType.SURVIVAL; - case 1: - case 2: - return GameType.CREATIVE; - case 3: - return GameType.ADVENTURE; - } - return null; - } - - public static void setGamemode(EntityPlayerMP player, int mode) { - if (mode < 0 || mode >= NEIActions.gameModes.length || - NEIActions.nameActionMap.containsKey(NEIActions.gameModes[mode]) && !NEIServerConfig.canPlayerPerformAction(player.getName(), NEIActions.gameModes[mode])) { - return; - } - - //creative+ - NEIServerConfig.forPlayer(player.getName()).enableAction("creative+", mode == 2); - if (mode == 2 && !(player.openContainer instanceof ContainerCreativeInv))//open the container immediately for the client - { - NEISPH.processCreativeInv(player, true); - } - - //change it on the server - player.theItemInWorldManager.setGameType(getGameType(mode)); - - //tell the client to change it - new PacketCustom(NEISPH.channel, 14).writeByte(mode).sendToPlayer(player); - player.addChatMessage(new ChatComponentTranslation("nei.chat.gamemode." + mode)); - } - - public static void cycleCreativeInv(EntityPlayerMP player, int steps) { - InventoryPlayer inventory = player.inventory; - - //top down [row][col] - ItemStack[][] slots = new ItemStack[10][9]; - PlayerSave playerSave = NEIServerConfig.forPlayer(player.getName()); - - //get - System.arraycopy(inventory.mainInventory, 0, slots[9], 0, 9); - - for (int row = 0; row < 3; row++) { - System.arraycopy(inventory.mainInventory, (row + 1) * 9, slots[row + 6], 0, 9); - } - - for (int row = 0; row < 6; row++) { - System.arraycopy(playerSave.creativeInv, row * 9, slots[row], 0, 9); - } - - ItemStack[][] newslots = new ItemStack[10][]; - - //put back - for (int row = 0; row < 10; row++) { - newslots[(row + steps + 10) % 10] = slots[row]; - } - - System.arraycopy(newslots[9], 0, inventory.mainInventory, 0, 9); - - for (int row = 0; row < 3; row++) { - System.arraycopy(newslots[row + 6], 0, inventory.mainInventory, (row + 1) * 9, 9); - } - - for (int row = 0; row < 6; row++) { - System.arraycopy(newslots[row], 0, playerSave.creativeInv, row * 9, 9); - } - - playerSave.setDirty(); - } - - public static List getEnchantments(ItemStack itemstack) { - ArrayList arraylist = new ArrayList(); - if (itemstack != null) { - NBTTagList nbttaglist = itemstack.getEnchantmentTagList(); - if (nbttaglist != null) { - for (int i = 0; i < nbttaglist.tagCount(); i++) { - NBTTagCompound tag = nbttaglist.getCompoundTagAt(i); - arraylist.add(new int[] { tag.getShort("id"), tag.getShort("lvl") }); - } - } - } - return arraylist; - } - - public static boolean stackHasEnchantment(ItemStack itemstack, int e) { - List allenchantments = getEnchantments(itemstack); - for (int[] ai : allenchantments) { - if (ai[0] == e) { - return true; - } - } - - return false; - } - - public static int getEnchantmentLevel(ItemStack itemstack, int e) { - List allenchantments = getEnchantments(itemstack); - for (int[] ai : allenchantments) { - if (ai[0] == e) { - return ai[1]; - } - } - - return -1; - } - - public static boolean doesEnchantmentConflict(List enchantments, Enchantment e) { - for (int[] ai : enchantments) { - if (!e.canApplyTogether(Enchantment.enchantmentsList[ai[0]])) { - return true; - } - } - - return false; - } - - public static RuntimeException throwCME(String msg) { - if (CommonUtils.isClient()) { - return ClientHandler.throwCME(msg); - } - - throw new RuntimeException(msg); - } - - @SuppressWarnings("unchecked") - public static ItemStack[] extractRecipeItems(Object obj) { - if (obj instanceof ItemStack) { - return new ItemStack[] { (ItemStack) obj }; - } - if (obj instanceof ItemStack[]) { - return (ItemStack[]) obj; - } - if (obj instanceof List) { - return ((List) obj).toArray(new ItemStack[0]); - } - - throw new ClassCastException("not an ItemStack, ItemStack[] or List getRange(final int start, final int end) { - return new AbstractList() { - @Override - public Integer get(int index) { - return start + index; - } - - @Override - public int size() { - return end - start; - } - }; - } - - public static StringBuilder fixTrailingCommaList(StringBuilder sb) { - if (sb.charAt(sb.length() - 1) == ',') { - sb.deleteCharAt(sb.length() - 1); - } - return sb; - } - - public static void logOnce(Throwable t, Set stackTraces, String message) { - logOnce(t, stackTraces, message, ""); - } - - public static void logOnce(Throwable t, Set stackTraces, String message, String identifier) { - StringWriter sw = new StringWriter(); - t.printStackTrace(new PrintWriter(sw)); - String stackTrace = identifier + sw.toString(); - if (!stackTraces.contains(stackTrace)) { - NEIServerConfig.logger.error(message, t); - stackTraces.add(stackTrace); - } - } - - public static NBTTagCompound readNBT(File file) throws IOException { - if (!file.exists()) { - return null; - } - FileInputStream in = new FileInputStream(file); - NBTTagCompound tag; - try { - tag = CompressedStreamTools.readCompressed(in); - } catch (ZipException e) { - if (e.getMessage().equals("Not in GZIP format")) { - tag = CompressedStreamTools.read(file); - } else { - throw e; - } - } - in.close(); - return tag; - } - - public static void writeNBT(NBTTagCompound tag, File file) throws IOException { - FileOutputStream out = new FileOutputStream(file); - CompressedStreamTools.writeCompressed(tag, out); - out.close(); - } -} diff --git a/dependencies/main/java/codechicken/nei/OffsetPositioner.java b/dependencies/main/java/codechicken/nei/OffsetPositioner.java deleted file mode 100644 index a363029f36..0000000000 --- a/dependencies/main/java/codechicken/nei/OffsetPositioner.java +++ /dev/null @@ -1,24 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.api.IStackPositioner; - -import java.util.ArrayList; - -public class OffsetPositioner implements IStackPositioner { - public OffsetPositioner(int x, int y) { - offsetx = x; - offsety = y; - } - - @Override - public ArrayList positionStacks(ArrayList ai) { - for (PositionedStack stack : ai) { - stack.relx += offsetx; - stack.rely += offsety; - } - return ai; - } - - public int offsetx; - public int offsety; -} diff --git a/dependencies/main/java/codechicken/nei/PlayerSave.java b/dependencies/main/java/codechicken/nei/PlayerSave.java deleted file mode 100644 index ba7fe65b67..0000000000 --- a/dependencies/main/java/codechicken/nei/PlayerSave.java +++ /dev/null @@ -1,126 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.inventory.InventoryUtils; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.server.MinecraftServer; - -import java.io.File; -import java.util.HashSet; - -public class PlayerSave { - public EntityPlayerMP player; - - private File saveFile; - private NBTTagCompound nbt; - - public ItemStack[] creativeInv; - private boolean creativeInvDirty; - - private boolean isDirty; - private boolean wasOp; - - //runtime things - public HashSet magneticItems = new HashSet(); - - public PlayerSave(EntityPlayerMP player, File saveLocation) { - this.player = player; - wasOp = MinecraftServer.getServer().getConfigurationManager().canSendCommands(player.getGameProfile()); - - saveFile = new File(saveLocation, player.getName() + ".dat"); - if (!saveFile.getParentFile().exists()) { - saveFile.getParentFile().mkdirs(); - } - load(); - } - - private void load() { - nbt = new NBTTagCompound(); - try { - if (!saveFile.exists()) { - saveFile.createNewFile(); - } - if (saveFile.length() > 0) { - nbt = NEIServerUtils.readNBT(saveFile); - } - } catch (Exception e) { - NEIClientConfig.logger.error("Error loading player save: " + player, e); - } - - loadCreativeInv(); - } - - private void loadCreativeInv() { - creativeInv = new ItemStack[54]; - NBTTagList itemList = nbt.getTagList("creativeitems", 10); - if (itemList != null) { - InventoryUtils.readItemStacksFromTag(creativeInv, itemList); - } - } - - public void save() { - if (!isDirty) { - return; - } - - if (creativeInvDirty) { - saveCreativeInv(); - } - - try { - NEIServerUtils.writeNBT(nbt, saveFile); - isDirty = false; - } catch (Exception e) { - NEIClientConfig.logger.error("Error saving player: " + player, e); - } - } - - private void saveCreativeInv() { - NBTTagList invsave = InventoryUtils.writeItemStacksToTag(creativeInv); - nbt.setTag("creativeitems", invsave); - - creativeInvDirty = false; - } - - public void setCreativeDirty() { - creativeInvDirty = isDirty = true; - } - - public void setDirty() { - isDirty = true; - } - - public void updateOpChange() { - boolean isOp = MinecraftServer.getServer().getConfigurationManager().canSendCommands(player.getGameProfile()); - if (isOp != wasOp) { - NEISPH.sendHasServerSideTo(player); - wasOp = isOp; - } - } - - public boolean isActionEnabled(String name) { - return getEnabledActions().getBoolean(name); - } - - private NBTTagCompound getEnabledActions() { - NBTTagCompound tag = nbt.getCompoundTag("enabledActions"); - if (!nbt.hasKey("enabledActions")) { - nbt.setTag("enabledActions", tag); - } - return tag; - } - - public void enableAction(String name, boolean enabled) { - getEnabledActions().setBoolean(name, enabled); - NEISPH.sendActionEnabled(player, name, enabled); - setDirty(); - } - - public void onWorldReload() { - NEISPH.sendHasServerSideTo(player); - magneticItems.clear(); - } -} diff --git a/dependencies/main/java/codechicken/nei/PopupInputHandler.java b/dependencies/main/java/codechicken/nei/PopupInputHandler.java deleted file mode 100644 index 24e00dd844..0000000000 --- a/dependencies/main/java/codechicken/nei/PopupInputHandler.java +++ /dev/null @@ -1,57 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.guihook.IContainerInputHandler; -import net.minecraft.client.gui.inventory.GuiContainer; - -import static codechicken.nei.NEIClientConfig.canPerformAction; -import static codechicken.nei.NEIClientConfig.getKeyBinding; - -public class PopupInputHandler implements IContainerInputHandler { - @Override - public boolean keyTyped(GuiContainer gui, char keyChar, int keyCode) { - return false; - } - - @Override - public boolean mouseClicked(GuiContainer gui, int mousex, int mousey, int button) { - return false; - } - - @Override - public void onKeyTyped(GuiContainer gui, char keyChar, int keyID) { - } - - @Override - public boolean lastKeyTyped(GuiContainer gui, char keyChar, int keyID) { - if (keyID == getKeyBinding("gui.enchant") && canPerformAction("enchant")) { - NEICPH.sendOpenEnchantmentWindow(); - return true; - } - if (keyID == getKeyBinding("gui.potion") && canPerformAction("potion")) { - NEICPH.sendOpenPotionWindow(); - return true; - } - return false; - } - - @Override - public void onMouseClicked(GuiContainer gui, int mousex, int mousey, int button) { - } - - @Override - public void onMouseUp(GuiContainer gui, int mousex, int mousey, int button) { - } - - @Override - public boolean mouseScrolled(GuiContainer gui, int mousex, int mousey, int scrolled) { - return false; - } - - @Override - public void onMouseScrolled(GuiContainer gui, int mousex, int mousey, int scrolled) { - } - - @Override - public void onMouseDragged(GuiContainer gui, int mousex, int mousey, int button, long heldTime) { - } -} diff --git a/dependencies/main/java/codechicken/nei/PositionedStack.java b/dependencies/main/java/codechicken/nei/PositionedStack.java deleted file mode 100644 index 6463fbd96a..0000000000 --- a/dependencies/main/java/codechicken/nei/PositionedStack.java +++ /dev/null @@ -1,117 +0,0 @@ -package codechicken.nei; - -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -import java.util.ArrayList; -import java.util.List; - -/** - * Simply an {@link ItemStack} with position. - * Mainly used in the recipe handlers. - */ -public class PositionedStack { - public int relx; - public int rely; - public ItemStack items[]; - //compatibility dummy - public ItemStack item; - - private boolean permutated = false; - - public PositionedStack(Object object, int x, int y, boolean genPerms) { - items = NEIServerUtils.extractRecipeItems(object); - relx = x; - rely = y; - - if (genPerms) { - generatePermutations(); - } else { - setPermutationToRender(0); - } - } - - public PositionedStack(Object object, int x, int y) { - this(object, x, y, true); - } - - public void generatePermutations() { - if (permutated) { - return; - } - - ArrayList stacks = new ArrayList(); - for (ItemStack item : items) { - if (item == null || item.getItem() == null) { - continue; - } - - if (item.getItemDamage() == Short.MAX_VALUE) { - List permutations = ItemList.itemMap.get(item.getItem()); - if (!permutations.isEmpty()) { - for (ItemStack stack : permutations) { - stacks.add(stack.copy()); - } - } else { - ItemStack base = new ItemStack(item.getItem(), item.stackSize); - base.setTagCompound(item.getTagCompound()); - stacks.add(base); - } - continue; - } - - stacks.add(item.copy()); - } - items = stacks.toArray(new ItemStack[0]); - - if (items.length == 0) { - items = new ItemStack[] { new ItemStack(Blocks.fire) }; - } - - permutated = true; - setPermutationToRender(0); - } - - public void setMaxSize(int i) { - for (ItemStack item : items) { - if (item.stackSize > i) { - item.stackSize = i; - } - } - } - - public PositionedStack copy() { - return new PositionedStack(items, relx, rely); - } - - public void setPermutationToRender(int index) { - item = items[index].copy(); - if (item.getItem() == null) { - item = new ItemStack(Blocks.fire); - } else if (item.getItemDamage() == OreDictionary.WILDCARD_VALUE) { - item.setItemDamage(0); - } - } - - public boolean contains(ItemStack ingredient) { - for (ItemStack item : items) { - if (NEIServerUtils.areStacksSameTypeCrafting(item, ingredient)) { - return true; - } - } - - return false; - } - - public boolean contains(Item ingred) { - for (ItemStack item : items) { - if (item.getItem() == ingred) { - return true; - } - } - - return false; - } -} diff --git a/dependencies/main/java/codechicken/nei/RestartableTask.java b/dependencies/main/java/codechicken/nei/RestartableTask.java deleted file mode 100644 index d175a690aa..0000000000 --- a/dependencies/main/java/codechicken/nei/RestartableTask.java +++ /dev/null @@ -1,81 +0,0 @@ -package codechicken.nei; - -public abstract class RestartableTask { - public final String name; - private Thread thread; - private volatile boolean restart; - private volatile boolean stopped; - - private ThreadOperationTimer timer; - - public RestartableTask(String name) { - this.name = name; - } - - private void start() { - thread = new Thread(name) { - @Override - public void run() { - do { - while (stopped) { - try { - Thread.sleep(1); - } catch (InterruptedException ignored) { - } - } - if (!restart) { - execute(); - } - } while (!finish()); - } - }; - thread.start(); - } - - private synchronized boolean finish() { - if (restart) { - restart = false; - return false; - } else { - clearTasks(); - return true; - } - } - - public void clearTasks() { - thread = null; - timer = null; - } - - public synchronized void restart() { - if (thread != null) { - stopped = false; - restart = true; - } else { - start(); - } - } - - /** - * Stops execution until restart is called. If a thread is running, the restart flag will be set, and the thread will be paused once the execute method exits. - */ - public synchronized void stop() { - if (thread != null) { - stopped = true; - restart = true; - } - } - - public boolean interrupted() { - return restart; - } - - public synchronized ThreadOperationTimer getTimer(int timeout) { - if (timer == null) { - timer = ThreadOperationTimer.start(thread, timeout); - } - return timer; - } - - public abstract void execute(); -} diff --git a/dependencies/main/java/codechicken/nei/SaveLoadButton.java b/dependencies/main/java/codechicken/nei/SaveLoadButton.java deleted file mode 100644 index 947b131baa..0000000000 --- a/dependencies/main/java/codechicken/nei/SaveLoadButton.java +++ /dev/null @@ -1,103 +0,0 @@ -package codechicken.nei; - -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.util.ChatAllowedCharacters; -import org.lwjgl.input.Keyboard; - -import static codechicken.lib.gui.GuiDraw.drawString; -import static codechicken.lib.gui.GuiDraw.getStringWidth; -import static codechicken.nei.NEIClientUtils.translate; - -public abstract class SaveLoadButton extends Button { - public SaveLoadButton(String s) { - super(s); - } - - @Override - public boolean handleClick(int mousex, int mousey, int button) { - if (button == 1) { - label = ""; - onTextChange(); - focused = true; - NEIClientUtils.playClickSound(); - return true; - } - return super.handleClick(mousex, mousey, button); - } - - public abstract void onTextChange(); - - @Override - public void onGuiClick(int i, int j) { - if (!contains(i, j)) { - focused = false; - } - } - - @Override - public boolean handleKeyPress(int keyID, char keyChar) { - if (!focused) { - return false; - } - - if (keyID == Keyboard.KEY_BACK) { - if (label.length() > 0) { - label = label.substring(0, label.length() - 1); - onTextChange(); - backdowntime = System.currentTimeMillis(); - } - } else if (keyID == Keyboard.KEY_RETURN) { - focused = false; - } else if (keyChar == 22)//paste - { - String pastestring = GuiScreen.getClipboardString(); - if (pastestring == null) { - pastestring = ""; - } - - label = label + pastestring; - onTextChange(); - } else if (ChatAllowedCharacters.isAllowedCharacter(keyChar)) { - label = label + keyChar; - onTextChange(); - } - return true; - } - - @Override - public void update() { - cursorCounter++; - if (backdowntime > 0) { - if (Keyboard.isKeyDown(Keyboard.KEY_BACK) && label.length() > 5) { - if (System.currentTimeMillis() - backdowntime > 200 / (1 + backs * 0.3F)) { - label = label.substring(0, label.length() - 1); - onTextChange(); - backdowntime = System.currentTimeMillis(); - backs++; - } - } else { - backdowntime = 0; - backs = 0; - } - } - } - - @Override - public void draw(int mousex, int mousey) { - super.draw(mousex, mousey); - if (focused && (cursorCounter / 6) % 2 == 0) { - drawString("_", x + (w + getStringWidth(getRenderLabel())) / 2, y + (h - 8) / 2, 0xFFFFFFFF); - } - } - - @Override - public String getRenderLabel() { - return translate(saved ? "load" : "save") + " " + label; - } - - public boolean saved; - public long backdowntime; - public int backs; - public int cursorCounter; - public boolean focused; -} diff --git a/dependencies/main/java/codechicken/nei/SearchField.java b/dependencies/main/java/codechicken/nei/SearchField.java deleted file mode 100644 index 640d7acedc..0000000000 --- a/dependencies/main/java/codechicken/nei/SearchField.java +++ /dev/null @@ -1,142 +0,0 @@ -package codechicken.nei; - -import codechicken.nei.ItemList.AnyMultiItemFilter; -import codechicken.nei.ItemList.EverythingItemFilter; -import codechicken.nei.ItemList.PatternItemFilter; -import codechicken.nei.api.API; -import codechicken.nei.api.ItemFilter; -import codechicken.nei.api.ItemFilter.ItemFilterProvider; -import net.minecraft.util.EnumChatFormatting; - -import java.util.LinkedList; -import java.util.List; -import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; - -import static codechicken.lib.gui.GuiDraw.drawGradientRect; -import static codechicken.lib.gui.GuiDraw.drawRect; -import static codechicken.nei.NEIClientConfig.world; - -public class SearchField extends TextField implements ItemFilterProvider { - /** - * Interface for returning a custom filter based on search field text - */ - public static interface ISearchProvider { - /** - * @return false if this filter should only be used if no other non-default filters match the search string - */ - public boolean isPrimary(); - - /** - * @return An item filter for items matching SearchTex null to ignore this provider - */ - public ItemFilter getFilter(String searchText); - } - - private static class DefaultSearchProvider implements ISearchProvider { - @Override - public boolean isPrimary() { - return false; - } - - @Override - public ItemFilter getFilter(String searchText) { - Pattern pattern = getPattern(searchText); - return pattern == null ? null : new PatternItemFilter(pattern); - } - } - - public static List searchProviders = new LinkedList(); - - long lastclicktime; - - public SearchField(String ident) { - super(ident); - API.addItemFilter(this); - API.addSearchProvider(new DefaultSearchProvider()); - } - - public static boolean searchInventories() { - return world.nbt.getBoolean("searchinventories"); - } - - @Override - public void drawBox() { - if (searchInventories()) { - drawGradientRect(x, y, w, h, 0xFFFFFF00, 0xFFC0B000); - } else { - drawRect(x, y, w, h, 0xffA0A0A0); - } - drawRect(x + 1, y + 1, w - 2, h - 2, 0xFF000000); - } - - @Override - public boolean handleClick(int mousex, int mousey, int button) { - if (button == 0) { - if (focused() && (System.currentTimeMillis() - lastclicktime < 500)) {//double click - NEIClientConfig.world.nbt.setBoolean("searchinventories", !searchInventories()); - NEIClientConfig.world.saveNBT(); - } - lastclicktime = System.currentTimeMillis(); - } - return super.handleClick(mousex, mousey, button); - } - - @Override - public void onTextChange(String oldText) { - NEIClientConfig.setSearchExpression(text()); - ItemList.updateFilter.restart(); - } - - @Override - public void lastKeyTyped(int keyID, char keyChar) { - if (keyID == NEIClientConfig.getKeyBinding("gui.search")) { - setFocus(true); - } - } - - @Override - public String filterText(String s) { - return EnumChatFormatting.getTextWithoutFormattingCodes(s); - } - - public static Pattern getPattern(String search) { - switch (NEIClientConfig.getIntSetting("inventory.searchmode")) { - case 0://plain - search = "\\Q" + search + "\\E"; - break; - case 1: - search = search.replace(".", "").replace("?", ".").replace("*", ".+?"); - break; - } - - Pattern pattern = null; - try { - pattern = Pattern.compile(search); - } catch (PatternSyntaxException ignored) { - } - return pattern == null || pattern.toString().length() == 0 ? null : pattern; - } - - @Override - public ItemFilter getFilter() { - String s_filter = text().toLowerCase(); - - List primary = new LinkedList(); - List secondary = new LinkedList(); - for (ISearchProvider p : searchProviders) { - ItemFilter filter = p.getFilter(s_filter); - if (filter != null) { - (p.isPrimary() ? primary : secondary).add(filter); - } - } - - if (!primary.isEmpty()) { - return new AnyMultiItemFilter(primary); - } - if (!secondary.isEmpty()) { - return new AnyMultiItemFilter(secondary); - } - return new EverythingItemFilter(); - } -} diff --git a/dependencies/main/java/codechicken/nei/ServerHandler.java b/dependencies/main/java/codechicken/nei/ServerHandler.java deleted file mode 100644 index 8b44ee31f4..0000000000 --- a/dependencies/main/java/codechicken/nei/ServerHandler.java +++ /dev/null @@ -1,162 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.packet.PacketCustom; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.world.WorldEvent; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerChangedDimensionEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedOutEvent; -import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerRespawnEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent; -import net.minecraftforge.fml.common.gameevent.TickEvent.Phase; - -import java.util.List; - -public class ServerHandler { - private static ServerHandler instance; - - public static void init() { - instance = new ServerHandler(); - - PacketCustom.assignHandler(NEICPH.channel, new NEISPH()); - FMLCommonHandler.instance().bus().register(instance); - MinecraftForge.EVENT_BUS.register(instance); - - Item.getItemFromBlock(Blocks.mob_spawner).setHasSubtypes(true); - NEIActions.init(); - } - - @SubscribeEvent - public void tickEvent(TickEvent.WorldTickEvent event) { - if (event.phase == Phase.START && !event.world.isRemote && - NEIServerConfig.dimTags.containsKey(event.world.provider.getDimensionId()))//fake worlds that don't call Load - { - processDisabledProperties(event.world); - } - } - - @SubscribeEvent - public void loadEvent(WorldEvent.Load event) { - if (!event.world.isRemote) { - NEIServerConfig.load(event.world); - } - } - - @SubscribeEvent - public void tickEvent(TickEvent.PlayerTickEvent event) { - if (event.phase == Phase.START && event.player instanceof EntityPlayerMP) { - EntityPlayerMP player = (EntityPlayerMP) event.player; - PlayerSave save = NEIServerConfig.forPlayer(player.getName()); - if (save == null) { - return; - } - updateMagneticPlayer(player, save); - save.updateOpChange(); - save.save(); - } - } - - private void processDisabledProperties(World world) { - NEIServerUtils.advanceDisabledTimes(world); - if (NEIServerUtils.isRaining(world) && NEIServerConfig.isActionDisabled(world.provider.getDimensionId(), "rain")) { - NEIServerUtils.toggleRaining(world, false); - } - } - - private void updateMagneticPlayer(EntityPlayerMP player, PlayerSave save) { - if (!save.isActionEnabled("magnet") || player.isDead) { - return; - } - - float distancexz = 16; - float distancey = 8; - double maxspeedxz = 0.5; - double maxspeedy = 0.5; - double speedxz = 0.05; - double speedy = 0.07; - List items = player.worldObj.getEntitiesWithinAABB(EntityItem.class, player.getEntityBoundingBox().expand(distancexz, distancey, distancexz)); - for (EntityItem item : items) { - if (item.cannotPickup()) { - continue; - } - if (!NEIServerUtils.canItemFitInInventory(player, item.getEntityItem())) { - continue; - } - if (save.magneticItems.add(item)) { - NEISPH.sendAddMagneticItemTo(player, item); - } - - double dx = player.posX - item.posX; - double dy = player.posY + player.getEyeHeight() - item.posY; - double dz = player.posZ - item.posZ; - double absxz = Math.sqrt(dx * dx + dz * dz); - double absy = Math.abs(dy); - if (absxz > distancexz) { - continue; - } - - if (absxz < 1) { - item.onCollideWithPlayer(player); - } - - if (absxz > 1) { - dx /= absxz; - dz /= absxz; - } - - if (absy > 1) { - dy /= absy; - } - - double vx = item.motionX + speedxz * dx; - double vy = item.motionY + speedy * dy; - double vz = item.motionZ + speedxz * dz; - - double absvxz = Math.sqrt(vx * vx + vz * vz); - double absvy = Math.abs(vy); - - double rationspeedxz = absvxz / maxspeedxz; - if (rationspeedxz > 1) { - vx /= rationspeedxz; - vz /= rationspeedxz; - } - - double rationspeedy = absvy / maxspeedy; - if (absvy > 1) { - vy /= rationspeedy; - } - - item.motionX = vx; - item.motionY = vy; - item.motionZ = vz; - } - } - - @SubscribeEvent - public void loginEvent(PlayerLoggedInEvent event) { - NEIServerConfig.loadPlayer(event.player); - NEISPH.sendHasServerSideTo((EntityPlayerMP) event.player); - } - - @SubscribeEvent - public void logoutEvent(PlayerLoggedOutEvent event) { - NEIServerConfig.unloadPlayer(event.player); - } - - @SubscribeEvent - public void dimChangeEvent(PlayerChangedDimensionEvent event) { - NEIServerConfig.forPlayer(event.player.getName()).onWorldReload(); - } - - @SubscribeEvent - public void loginEvent(PlayerRespawnEvent event) { - NEIServerConfig.forPlayer(event.player.getName()).onWorldReload(); - } -} diff --git a/dependencies/main/java/codechicken/nei/SlotOP.java b/dependencies/main/java/codechicken/nei/SlotOP.java deleted file mode 100644 index bc1828303f..0000000000 --- a/dependencies/main/java/codechicken/nei/SlotOP.java +++ /dev/null @@ -1,9 +0,0 @@ -package codechicken.nei; - -public abstract class SlotOP { - public abstract String getDescription(); - - public abstract int[] getKeyBind(); - - public abstract void operate(); -} diff --git a/dependencies/main/java/codechicken/nei/SpawnerRenderer.java b/dependencies/main/java/codechicken/nei/SpawnerRenderer.java deleted file mode 100644 index b7aa334920..0000000000 --- a/dependencies/main/java/codechicken/nei/SpawnerRenderer.java +++ /dev/null @@ -1,113 +0,0 @@ -package codechicken.nei; - -import codechicken.core.ClientUtils; -import codechicken.lib.render.BlockRenderer; -import codechicken.lib.render.IItemRenderer; -import codechicken.lib.render.ModelRegistryHelper; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.block.model.ItemCameraTransforms; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.resources.model.IBakedModel; -import net.minecraft.client.resources.model.ModelResourceLocation; -import net.minecraft.entity.Entity; -import net.minecraft.entity.boss.BossStatus; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import java.util.List; - -public class SpawnerRenderer implements IItemRenderer { - public static void load(ItemMobSpawner item) { - ModelRegistryHelper.registerItemRenderer(item, new SpawnerRenderer(), new ResourceLocation("mob_spawner")); - } - - public void renderItem(ItemStack stack) { - int meta = stack.getItemDamage(); - - if (meta == 0) { - meta = ItemMobSpawner.idPig; - } - - String bossName = BossStatus.bossName; - int bossTimeout = BossStatus.statusBarTime; - Minecraft mc = Minecraft.getMinecraft(); - World world = mc.theWorld; - - IBakedModel baseModel = mc.getRenderItem().getItemModelMesher().getModelManager().getModel(new ModelResourceLocation("mob_spawner")); - GlStateManager.pushMatrix(); - GlStateManager.translate(.5, .5, .5); - GlStateManager.scale(2, 2, 2); - mc.getRenderItem().renderItem(stack, baseModel); - GlStateManager.popMatrix(); - - try { - Entity entity = ItemMobSpawner.getEntity(meta); - entity.setWorld(world); - float scale = 0.6F / Math.max(entity.height, entity.width); - - GlStateManager.pushMatrix(); - GlStateManager.translate(0.5, 0.4, 0.5); - GlStateManager.rotate((float) (ClientUtils.getRenderTime() * 10), 0, 1, 0); - GlStateManager.rotate(-20, 1, 0, 0); - GlStateManager.translate(0, -0.4, 0); - GlStateManager.scale(scale, scale, scale); - entity.setLocationAndAngles(0, 0, 0, 0, 0); - mc.getRenderManager().renderEntityWithPosYaw(entity, 0, 0, 0, 0, 0); - GlStateManager.disableLighting(); - GlStateManager.popMatrix(); - - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit); - GL11.glDisable(GL11.GL_TEXTURE_2D); - OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit); - } catch (Exception e) { - if (Tessellator.getInstance().getWorldRenderer().isDrawing) { - Tessellator.getInstance().draw(); - } - } - BossStatus.bossName = bossName; - BossStatus.statusBarTime = bossTimeout; - } - - @Override - public List getFaceQuads(EnumFacing p_177551_1_) { - return null; - } - - @Override - public List getGeneralQuads() { - return null; - } - - @Override - public boolean isAmbientOcclusion() { - return false; - } - - @Override - public boolean isGui3d() { - return true; - } - - @Override - public boolean isBuiltInRenderer() { - return true; - } - - @Override - public TextureAtlasSprite getParticleTexture() { - return Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite("minecraft:blocks/mob_spawner"); - } - - @Override - public ItemCameraTransforms getItemCameraTransforms() { - return BlockRenderer.blockCameraTransform; - } -} diff --git a/dependencies/main/java/codechicken/nei/SubsetWidget.java b/dependencies/main/java/codechicken/nei/SubsetWidget.java deleted file mode 100644 index 6cf9b39442..0000000000 --- a/dependencies/main/java/codechicken/nei/SubsetWidget.java +++ /dev/null @@ -1,791 +0,0 @@ -package codechicken.nei; - -import codechicken.core.gui.GuiScrollSlot; -import codechicken.lib.gui.GuiDraw; -import codechicken.lib.vec.Rectangle4i; -import codechicken.nei.ItemList.AnyMultiItemFilter; -import codechicken.nei.ItemList.ItemsLoadedCallback; -import codechicken.nei.ItemList.NothingItemFilter; -import codechicken.nei.SearchField.ISearchProvider; -import codechicken.nei.api.API; -import codechicken.nei.api.ItemFilter; -import codechicken.nei.api.ItemFilter.ItemFilterProvider; -import codechicken.nei.api.ItemInfo; -import codechicken.nei.guihook.GuiContainerManager; -import net.minecraft.client.Minecraft; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.util.EnumChatFormatting; - -import java.awt.*; -import java.util.*; -import java.util.List; -import java.util.concurrent.atomic.AtomicReference; -import java.util.regex.Pattern; - -public class SubsetWidget extends Button implements ItemFilterProvider, ItemsLoadedCallback, ISearchProvider { - public static class SubsetState { - int state = 2; - ArrayList items = new ArrayList(); - } - - public static class SubsetTag { - protected class SubsetSlot extends GuiScrollSlot { - public SubsetSlot() { - super(0, 0, 0, 0); - setSmoothScroll(false); - } - - @Override - public int getSlotHeight(int slot) { - return 18; - } - - @Override - protected int getNumSlots() { - return children.size() + state.items.size(); - } - - @Override - protected void slotClicked(int slot, int button, int mx, int my, int count) { - if (slot < sorted.size()) { - SubsetTag tag = sorted.get(slot); - if (NEIClientUtils.shiftKey()) { - LayoutManager.searchField.setText("@" + tag.fullname); - } else if (button == 0 && count >= 2) { - SubsetWidget.showOnly(tag); - } else { - SubsetWidget.setHidden(tag, button == 1); - } - } else { - ItemStack item = state.items.get(slot - sorted.size()); - if (NEIClientUtils.controlKey()) { - NEIClientUtils.cheatItem(item, button, -1); - } else { - SubsetWidget.setHidden(state.items.get(slot - sorted.size()), button == 1); - } - } - } - - @Override - protected void drawSlot(int slot, int x, int y, int mx, int my, float frame) { - int w = windowBounds().width; - Rectangle4i r = new Rectangle4i(x, y, w, getSlotHeight(slot)); - if (slot < sorted.size()) { - SubsetTag tag = sorted.get(slot); - LayoutManager.getLayoutStyle().drawSubsetTag(tag.displayName(), x, y, r.w, r.h, tag.state.state, r.contains(mx, my)); - } else { - ItemStack stack = state.items.get(slot - sorted.size()); - boolean hidden = SubsetWidget.isHidden(stack); - - int itemx = w / 2 - 8; - int itemy = 1; - - LayoutManager.getLayoutStyle().drawSubsetTag(null, x, y, r.w, r.h, hidden ? 0 : 2, false); - - GuiContainerManager.drawItem(x + itemx, y + itemy, stack); - if (new Rectangle4i(itemx, itemy, 16, 16).contains(mx, my)) { - SubsetWidget.hoverStack = stack; - } - } - } - - @Override - public void drawOverlay(float frame) { - } - - @Override - public void drawBackground(float frame) { - drawRect(x, y, x + width, y + height, 0xFF202020); - } - - @Override - public int scrollbarAlignment() { - return -1; - } - - @Override - public void drawScrollbar(float frame) { - if (hasScrollbar()) { - super.drawScrollbar(frame); - } - } - - @Override - public int scrollbarGuideAlignment() { - return 0; - } - } - - public final String fullname; - public final ItemFilter filter; - public TreeMap children = new TreeMap(); - public List sorted = Collections.emptyList(); - private int childwidth; - - protected String displayName; - protected SubsetState state = new SubsetState(); - protected final SubsetSlot slot = new SubsetSlot(); - private SubsetTag selectedChild; - private int visible; - - public SubsetTag(String fullname) { - this(fullname, new NothingItemFilter()); - } - - public SubsetTag(String fullname, ItemFilter filter) { - assert filter != null : "Filter cannot be null"; - this.fullname = EnumChatFormatting.getTextWithoutFormattingCodes(fullname); - this.filter = filter; - - if (fullname != null) { - int idx = fullname.lastIndexOf('.'); - displayName = idx < 0 ? fullname : fullname.substring(idx + 1); - } - } - - public String displayName() { - return displayName; - } - - public String name() { - int idx = fullname.indexOf('.'); - return idx < 0 ? fullname : fullname.substring(idx + 1); - } - - public String parent() { - int idx = fullname.lastIndexOf('.'); - return idx < 0 ? null : fullname.substring(0, idx); - } - - private SubsetTag getTag(String name) { - int idx = name.indexOf('.'); - String childname = idx > 0 ? name.substring(0, idx) : name; - SubsetTag child = children.get(childname.toLowerCase()); - if (child == null) { - return null; - } - - return idx > 0 ? child.getTag(name.substring(idx + 1)) : child; - } - - private void recacheChildren() { - sorted = new ArrayList(children.values()); - childwidth = 0; - for (SubsetTag tag : sorted) { - childwidth = Math.max(childwidth, tag.nameWidth() + 2); - } - } - - private void addTag(SubsetTag tag) { - String name = fullname == null ? tag.fullname : tag.fullname.substring(fullname.length() + 1); - int idx = name.indexOf('.'); - - if (idx < 0) {//add or replace tag - SubsetTag prev = children.put(name.toLowerCase(), tag); - if (prev != null) {//replaced, load children - tag.children = prev.children; - tag.sorted = prev.sorted; - } - recacheChildren(); - } else { - String childname = name.substring(0, idx); - SubsetTag child = children.get(childname.toLowerCase()); - if (child == null) { - children.put(childname.toLowerCase(), child = new SubsetTag(fullname == null ? childname : fullname + '.' + childname)); - } - recacheChildren(); - child.addTag(tag); - } - } - - protected void cacheState() { - state = SubsetWidget.getState(this); - for (SubsetTag tag : sorted) { - tag.cacheState(); - } - } - - public void addFilters(List filters) { - if (filter != null) { - filters.add(filter); - } - - for (SubsetTag child : sorted) { - child.addFilters(filters); - } - } - - public void search(List tags, Pattern p) { - if (fullname != null && p.matcher(fullname.toLowerCase()).find()) { - tags.add(this); - } else { - for (SubsetTag child : sorted) { - child.search(tags, p); - } - } - } - - public void updateVisiblity(int mx, int my) { - if (selectedChild != null) { - selectedChild.updateVisiblity(mx, my); - if (!selectedChild.isVisible()) { - selectedChild = null; - } - } - - if (slot.contains(mx, my) && (selectedChild == null || !selectedChild.contains(mx, my))) { - int mslot = slot.getClickedSlot(my); - if (mslot >= 0 && mslot < sorted.size()) { - SubsetTag mtag = sorted.get(mslot); - if (mtag != null) { - if (mtag != selectedChild && selectedChild != null) { - selectedChild.setHidden(); - } - selectedChild = mtag; - selectedChild.setVisible(); - } - } - - setVisible(); - } - - if (selectedChild == null) { - countdownVisible(); - } - } - - public void setHidden() { - visible = 0; - slot.mouseReleased(0, 0, 0);//cancel any scrolling - if (selectedChild != null) { - selectedChild.setHidden(); - selectedChild = null; - } - } - - public void setVisible() { - visible = 10; - cacheState(); - } - - private void countdownVisible() { - if (visible > 0 && --visible == 0) { - setHidden(); - } - } - - public void resize(int x, int pwidth, int y) { - int mheight = area.h; - int dheight = area.y2() - y; - int cheight = slot.contentHeight(); - int height = cheight; - if (cheight > mheight) { - y = area.y; - height = mheight; - } else if (cheight > dheight) { - y = area.y2() - cheight; - } - - height = height / slot.getSlotHeight(0) * slot.getSlotHeight(0);//floor to a multiple of slot height - - int width = childwidth; - if (!state.items.isEmpty()) { - width = Math.max(childwidth, 18); - } - if (slot.contentHeight() > height) { - width += slot.scrollbarDim().width; - } - - boolean fitLeft = x - width >= area.x1(); - boolean fitRight = x + width + pwidth <= area.x2(); - if (pwidth >= 0 ? !fitRight && fitLeft : !fitLeft) { - pwidth *= -1;//swap - } - x += pwidth >= 0 ? pwidth : -width; - - slot.setSize(x, y, width, height); - slot.setMargins(slot.hasScrollbar() ? slot.scrollbarDim().width : 0, 0, 0, 0); - - if (selectedChild != null) { - y = slot.getSlotY(sorted.indexOf(selectedChild)) - slot.scrolledPixels() + slot.y; - selectedChild.resize(x, pwidth >= 0 ? width : -width, y); - } - } - - protected int nameWidth() { - return Minecraft.getMinecraft().fontRendererObj.getStringWidth(displayName()); - } - - public boolean isVisible() { - return visible > 0; - } - - public void draw(int mx, int my) { - slot.draw(mx, my, 0); - if (selectedChild != null) { - selectedChild.draw(mx, my); - } - } - - public boolean contains(int px, int py) { - return slot.contains(px, py) || selectedChild != null && selectedChild.contains(px, py); - } - - public void mouseClicked(int mx, int my, int button) { - if (selectedChild != null && selectedChild.contains(mx, my)) { - selectedChild.mouseClicked(mx, my, button); - } else if (slot.contains(mx, my)) { - slot.mouseClicked(mx, my, button); - } - } - - public void mouseDragged(int mx, int my, int button, long heldTime) { - slot.mouseDragged(mx, my, button, heldTime); - if (selectedChild != null) { - selectedChild.mouseDragged(mx, my, button, heldTime); - } - } - - public void mouseUp(int mx, int my, int button) { - slot.mouseReleased(mx, my, button); - if (selectedChild != null) { - selectedChild.mouseUp(mx, my, button); - } - } - - public boolean mouseScrolled(int mx, int my, int scroll) { - if (slot.hasScrollbar() && slot.contains(mx, my)) { - slot.scroll(scroll); - return true; - } - - if (selectedChild != null && selectedChild.mouseScrolled(mx, my, scroll)) { - return true; - } - - if (slot.hasScrollbar() && !contains(mx, my)) { - slot.scroll(scroll); - return true; - } - - return false; - } - - public boolean isScrolling() { - return slot.isScrolling() || selectedChild != null && selectedChild.isScrolling(); - } - } - - protected static final SubsetTag root = new SubsetTag(null); - public static Rectangle4i area = new Rectangle4i(); - public static ItemStack hoverStack; - - private static HashMap subsetState = new HashMap(); - /** - * All operations on this variable should be synchronised. - */ - private static final ItemStackSet hiddenItems = new ItemStackSet(); - private static final AtomicReference dirtyHiddenItems = new AtomicReference(); - - public static SubsetState getState(SubsetTag tag) { - SubsetState state = subsetState.get(tag.fullname); - return state == null ? new SubsetState() : state; - } - - public static void addTag(SubsetTag tag) { - updateState.stop(); - synchronized (root) { - root.addTag(tag); - updateState.reallocate(); - } - } - - public static SubsetTag getTag(String name) { - return name == null ? root : root.getTag(name); - } - - public static boolean isHidden(ItemStack item) { - synchronized (hiddenItems) { - return hiddenItems.contains(item); - } - } - - private static void _setHidden(SubsetTag tag, boolean hidden) { - for (ItemStack item : getState(tag).items) { - _setHidden(item, hidden); - } - for (SubsetTag child : tag.sorted) { - _setHidden(child, hidden); - } - } - - private static void _setHidden(ItemStack item, boolean hidden) { - if (hidden) { - hiddenItems.add(item); - } else { - hiddenItems.remove(item); - } - } - - public static void showOnly(SubsetTag tag) { - synchronized (hiddenItems) { - for (ItemStack item : ItemList.items) { - _setHidden(item, true); - } - setHidden(tag, false); - } - } - - public static void setHidden(SubsetTag tag, boolean hidden) { - synchronized (hiddenItems) { - _setHidden(tag, hidden); - updateHiddenItems(); - } - } - - public static void setHidden(ItemStack item, boolean hidden) { - synchronized (hiddenItems) { - _setHidden(item, hidden); - updateHiddenItems(); - } - } - - public static void unhideAll() { - synchronized (hiddenItems) { - hiddenItems.clear(); - updateHiddenItems(); - } - } - - private static void updateHiddenItems() { - prepareDirtyHiddenItems.restart(); - updateState.restart(); - } - - public static void loadHidden() { - synchronized (hiddenItems) { - hiddenItems.clear(); - } - - List itemList = new LinkedList(); - try { - NBTTagList list = NEIClientConfig.world.nbt.getTagList("hiddenItems", 10); - for (int i = 0; i < list.tagCount(); i++) { - itemList.add(ItemStack.loadItemStackFromNBT(list.getCompoundTagAt(i))); - } - } catch (Exception e) { - NEIClientConfig.logger.error("Error loading hiddenItems", e); - return; - } - - synchronized (hiddenItems) { - for (ItemStack item : itemList) { - hiddenItems.add(item); - } - } - updateState.restart(); - } - - private static void saveHidden() { - NBTTagList list = dirtyHiddenItems.getAndSet(null); - if (list != null) { - NEIClientConfig.world.nbt.setTag("hiddenItems", list); - NEIClientConfig.world.saveNBT(); - } - } - - private static final RestartableTask prepareDirtyHiddenItems = new RestartableTask("NEI Subset Save Thread") { - private List getList() { - synchronized (hiddenItems) { - return hiddenItems.values(); - } - } - - @Override - public void execute() { - NBTTagList list = new NBTTagList(); - for (ItemStack item : getList()) { - if (interrupted()) { - return; - } - NBTTagCompound tag = new NBTTagCompound(); - item.writeToNBT(tag); - list.appendTag(tag); - } - dirtyHiddenItems.set(list); - } - }; - - private static final UpdateStateTask updateState = new UpdateStateTask(); - - private static class UpdateStateTask extends RestartableTask { - private volatile boolean reallocate; - - public UpdateStateTask() { - super("NEI Subset Item Allocation"); - } - - @Override - public void clearTasks() { - super.clearTasks(); - reallocate = false; - } - - public synchronized void reallocate() { - reallocate = true; - restart(); - } - - @Override - public void execute() { - HashMap state = new HashMap(); - List tags = new LinkedList(); - synchronized (root) { - cloneStates(root, tags, state); - if (interrupted()) { - return; - } - } - - if (reallocate) { - for (ItemStack item : ItemList.items) { - if (interrupted()) { - return; - } - if (ItemInfo.isHidden(item)) { - continue; - } - for (SubsetTag tag : tags) { - if (tag.filter.matches(item)) { - state.get(tag.fullname).items.add(item); - } - } - } - } - - synchronized (root) { - calculateVisibility(root, state); - if (interrupted()) { - return; - } - } - - subsetState = state; - ItemList.updateFilter.restart(); - } - - private void cloneStates(SubsetTag tag, List tags, HashMap state) { - for (SubsetTag child : tag.sorted) { - if (interrupted()) { - return; - } - cloneStates(child, tags, state); - } - - tags.add(tag); - SubsetState sstate = new SubsetState(); - if (!reallocate) { - sstate.items = SubsetWidget.getState(tag).items; - } - state.put(tag.fullname, sstate); - } - - private void calculateVisibility(SubsetTag tag, Map state) { - SubsetState sstate = state.get(tag.fullname); - int hidden = 0; - for (SubsetTag child : tag.sorted) { - if (interrupted()) { - return; - } - calculateVisibility(child, state); - int cstate = state.get(child.fullname).state; - if (cstate == 1) { - sstate.state = 1; - } else if (cstate == 0) { - hidden++; - } - } - - if (sstate.state == 1) { - return; - } - - List items = sstate.items; - for (ItemStack item : items) { - if (interrupted()) { - return; - } - if (isHidden(item)) { - hidden++; - } - } - - if (hidden == tag.sorted.size() + items.size()) { - sstate.state = 0; - } else if (hidden > 0) { - sstate.state = 1; - } - } - } - - private long lastclicktime; - - public SubsetWidget() { - super("NEI Subsets"); - API.addItemFilter(this); - API.addSearchProvider(this); - ItemList.loadCallbacks.add(this); - } - - @Override - public void draw(int mx, int my) { - super.draw(mx, my); - - area.set(x, y + h, w, LayoutManager.searchField.y - h - y); //23 for the search box - - hoverStack = null; - if (root.isVisible()) { - root.resize(area.x, 0, area.y); - root.cacheState(); - root.draw(mx, my); - } - } - - @Override - public void update() { - Point mouse = GuiDraw.getMousePosition(); - updateVisiblity(mouse.x, mouse.y); - saveHidden(); - } - - private void updateVisiblity(int mx, int my) { - if (!root.isVisible() || root.isScrolling()) { - return; - } - - root.updateVisiblity(mx, my); - - if (!root.isVisible() && bounds().contains(mx, my)) { - root.setVisible(); - } - } - - @Override - public boolean contains(int px, int py) { - return super.contains(px, py) || root.isVisible() && root.contains(px, py); - } - - @Override - public boolean handleClick(int mx, int my, int button) { - if (root.isVisible() && root.contains(mx, my)) { - root.mouseClicked(mx, my, button); - return true; - } - - if (button == 0) { - if (System.currentTimeMillis() - lastclicktime < 500) { - unhideAll(); - } else { - root.setVisible(); - } - - NEIClientUtils.playClickSound(); - lastclicktime = System.currentTimeMillis(); - } - - return true; - } - - /** - * Not called - */ - @Override - public boolean onButtonPress(boolean rightclick) { - return false; - } - - @Override - public void mouseDragged(int mx, int my, int button, long heldTime) { - if (root.isVisible()) { - root.mouseDragged(mx, my, button, heldTime); - } - } - - @Override - public void mouseUp(int mx, int my, int button) { - if (root.isVisible()) { - root.mouseUp(mx, my, button); - } - } - - @Override - public boolean onMouseWheel(int i, int mx, int my) { - return root.isVisible() && root.mouseScrolled(mx, my, -i); - } - - @Override - public void onGuiClick(int mx, int my) { - if (!contains(mx, my)) { - root.setHidden(); - } - } - - @Override - public ItemStack getStackMouseOver(int mx, int my) { - return hoverStack; - } - - @Override - public ItemFilter getFilter() { - return new ItemFilter()//synchronise access on hiddenItems - { - @Override - public boolean matches(ItemStack item) { - synchronized (hiddenItems) { - return !hiddenItems.matches(item); - } - } - }; - } - - @Override - public boolean isPrimary() { - return true; - } - - @Override - public ItemFilter getFilter(String searchText) { - if (!searchText.startsWith("@")) { - return null; - } - - searchText = searchText.substring(1); - AnyMultiItemFilter filter = new AnyMultiItemFilter(); - SubsetTag tag = getTag(searchText); - if (tag != null) { - tag.addFilters(filter.filters); - } else { - Pattern p = SearchField.getPattern(searchText); - if (p == null) { - return null; - } - - List matching = new LinkedList(); - root.search(matching, p); - if (matching.isEmpty()) { - return null; - } - for (SubsetTag tag2 : matching) { - tag2.addFilters(filter.filters); - } - } - return filter; - } - - @Override - public void itemsLoaded() { - updateState.reallocate(); - } -} diff --git a/dependencies/main/java/codechicken/nei/TextField.java b/dependencies/main/java/codechicken/nei/TextField.java deleted file mode 100644 index 0a124e524e..0000000000 --- a/dependencies/main/java/codechicken/nei/TextField.java +++ /dev/null @@ -1,150 +0,0 @@ -package codechicken.nei; - -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.util.ChatAllowedCharacters; -import org.lwjgl.input.Keyboard; - -import static codechicken.lib.gui.GuiDraw.*; - -public abstract class TextField extends Widget { - public TextField(String ident) { - identifier = ident; - } - - public int getTextColour() { - return focused() ? 0xFFE0E0E0 : 0xFF909090; - } - - public void drawBox() { - drawRect(x, y, w, h, 0xffA0A0A0); - drawRect(x + 1, y + 1, w - 2, h - 2, 0xFF000000); - } - - @Override - public void draw(int mousex, int mousey) { - drawBox(); - - String drawtext = text; - - int textWidth; - while ((textWidth = getStringWidth(drawtext)) > w - 14) { - drawtext = drawtext.substring(1); - } - - if (focused() && (cursorCounter / 6) % 2 == 0) { - drawtext = drawtext + '_'; - } - - int textx = centered ? x + (w - textWidth) / 2 : x + 4; - int texty = y + (h + 1) / 2 - 3; - - drawString(drawtext, textx, texty, getTextColour()); - } - - @Override - public void onGuiClick(int mousex, int mousey) { - if (!contains(mousex, mousey)) { - setFocus(false); - } - } - - @Override - public boolean handleClick(int mousex, int mousey, int button) { - if (button == 1) { - setText(""); - } - setFocus(true); - return true; - } - - @Override - public boolean handleKeyPress(int keyID, char keyChar) { - if (!focused()) { - return false; - } - - if (keyID == Keyboard.KEY_BACK) { - if (text.length() > 0) { - setText(text.substring(0, text.length() - 1)); - backdowntime = System.currentTimeMillis(); - } - } else if (keyID == Keyboard.KEY_RETURN || keyID == Keyboard.KEY_ESCAPE) { - setFocus(false); - onExit(); - } else if (keyChar == 22)//paste - { - String pastestring = GuiScreen.getClipboardString(); - if (pastestring == null) { - pastestring = ""; - } - - if (isValid(text + pastestring)) { - setText(text + pastestring); - } - } else if (isValid(text + keyChar)) { - setText(text + keyChar); - } - - return true; - } - - public void onExit() { - } - - public abstract void onTextChange(String oldText); - - public boolean isValid(String string) { - // Solve the problem that Minecraft can't post Chinese characters - return ChatAllowedCharacters.isAllowedCharacter(string.charAt(string.length() - 1)); - } - - @Override - public void update() { - cursorCounter++; - if (backdowntime > 0) { - if (Keyboard.isKeyDown(Keyboard.KEY_BACK) && text.length() > 0) { - if (System.currentTimeMillis() - backdowntime > 200 / (1 + backs * 0.3F)) { - setText(text.substring(0, text.length() - 1)); - backdowntime = System.currentTimeMillis(); - backs++; - } - } else { - backdowntime = 0; - backs = 0; - } - } - } - - public void setText(String s) { - String oldText = text; - text = filterText(s); - onTextChange(oldText); - } - - public String filterText(String s) { - return s; - } - - public void setFocus(boolean focus) { - if (focus) { - LayoutManager.setInputFocused(this); - } else if (focused()) { - LayoutManager.setInputFocused(null); - } - } - - public boolean focused() { - return LayoutManager.getInputFocused() == this; - } - - public String text() { - return text; - } - - private String text = ""; - public boolean centered; - public long backdowntime; - public int backs; - public String identifier; - public int cursorCounter; -} diff --git a/dependencies/main/java/codechicken/nei/ThreadOperationTimer.java b/dependencies/main/java/codechicken/nei/ThreadOperationTimer.java deleted file mode 100644 index fab818895a..0000000000 --- a/dependencies/main/java/codechicken/nei/ThreadOperationTimer.java +++ /dev/null @@ -1,73 +0,0 @@ -package codechicken.nei; - -import com.google.common.base.Objects; -import net.minecraftforge.fml.common.FMLCommonHandler; - -public class ThreadOperationTimer extends Thread { - @SuppressWarnings("serial") - public static class TimeoutException extends RuntimeException { - public final Object operation; - - public TimeoutException(String msg, Object op) { - super(msg); - operation = op; - } - } - - private Thread thread; - private Object operation; - private long opTime; - private long limit; - - private ThreadOperationTimer(Thread thread, int limit) { - super(thread.getName() + " Operation Timer"); - this.thread = thread; - this.limit = limit; - } - - public synchronized void setLimit(int limit) { - this.limit = limit; - } - - public void reset() { - reset(null); - } - - public synchronized void reset(Object op) { - operation = op; - opTime = System.currentTimeMillis(); - } - - public synchronized void update(Object op) { - if (!Objects.equal(operation, op)) { - operation = op; - opTime = System.currentTimeMillis(); - } - } - - @SuppressWarnings("deprecation") - @Override - public void run() { - if (FMLCommonHandler.instance().findContainerFor("NotEnoughItems").getVersion().contains("$")) { - return;//don't run this thread in a source environment - } - - while (thread.isAlive()) { - synchronized (this) { - if (operation != null && System.currentTimeMillis() - opTime > limit) { - thread.stop(new TimeoutException("Operation took too long", operation)); - } - } - try { - Thread.sleep(50); - } catch (InterruptedException ie) { - } - } - } - - public static ThreadOperationTimer start(Thread thread, int limit) { - ThreadOperationTimer t = new ThreadOperationTimer(thread, limit); - t.start(); - return t; - } -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/nei/VisiblityData.java b/dependencies/main/java/codechicken/nei/VisiblityData.java deleted file mode 100644 index e77eb007c7..0000000000 --- a/dependencies/main/java/codechicken/nei/VisiblityData.java +++ /dev/null @@ -1,39 +0,0 @@ -package codechicken.nei; - -public class VisiblityData { - public boolean showUtilityButtons = true; - public boolean showStateButtons = true; - /** - * Item panel and associated buttons - */ - public boolean showItemPanel = true; - /** - * Item and search section - */ - public boolean showItemSection = true; - /** - * Dropdown and Item search field - */ - public boolean showSearchSection = true; - /** - * All widgets except options button - */ - public boolean showWidgets = true; - /** - * The entire NEI interface, aka hidden - */ - public boolean showNEI = true; - public boolean enableDeleteMode = true; - - public void translateDependancies() { - if (!showNEI) { - showWidgets = false; - } - if (!showWidgets) { - showItemSection = showUtilityButtons = showStateButtons = false; - } - if (!showItemSection) { - showSearchSection = showItemPanel = false; - } - } -} diff --git a/dependencies/main/java/codechicken/nei/Widget.java b/dependencies/main/java/codechicken/nei/Widget.java deleted file mode 100644 index 539889e32f..0000000000 --- a/dependencies/main/java/codechicken/nei/Widget.java +++ /dev/null @@ -1,76 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.vec.Rectangle4i; -import net.minecraft.item.ItemStack; - -import java.util.List; - -public abstract class Widget { - public Widget() { - } - - public abstract void draw(int mx, int my); - - public void postDraw(int mx, int my) { - } - - public boolean handleClick(int mx, int my, int button) { - return true; - } - - public void onGuiClick(int mx, int my) { - } - - public void mouseUp(int mx, int my, int button) { - - } - - public boolean handleKeyPress(int keyID, char keyChar) { - return false; - } - - public void lastKeyTyped(int keyID, char keyChar) { - } - - public boolean handleClickExt(int mx, int my, int button) { - return false; - } - - public boolean onMouseWheel(int i, int mx, int my) { - return false; - } - - public void update() { - } - - public Rectangle4i bounds() { - return new Rectangle4i(x, y, w, h); - } - - public boolean contains(int px, int py) { - return bounds().contains(px, py); - } - - public ItemStack getStackMouseOver(int mx, int my) { - return null; - } - - public void mouseDragged(int mx, int my, int button, long heldTime) { - } - - public List handleTooltip(int mx, int my, List tooltip) { - return tooltip; - } - - public void loseFocus() { - } - - public void gainFocus() { - } - - public int x; - public int y; - public int z; - public int w; - public int h; -} diff --git a/dependencies/main/java/codechicken/nei/WidgetZOrder.java b/dependencies/main/java/codechicken/nei/WidgetZOrder.java deleted file mode 100644 index 2e0159337f..0000000000 --- a/dependencies/main/java/codechicken/nei/WidgetZOrder.java +++ /dev/null @@ -1,15 +0,0 @@ -package codechicken.nei; - -import java.util.Comparator; - -public class WidgetZOrder implements Comparator { - boolean topfirst; - - public WidgetZOrder(boolean topfirst) { - this.topfirst = topfirst; - } - - public int compare(Widget w1, Widget w2) { - return w1.z != w2.z ? ((topfirst ? w1.z > w2.z : w1.z < w2.z) ? 1 : -1) : 1; - } -} diff --git a/dependencies/main/java/codechicken/nei/WorldOverlayRenderer.java b/dependencies/main/java/codechicken/nei/WorldOverlayRenderer.java deleted file mode 100644 index 7f277ce5ef..0000000000 --- a/dependencies/main/java/codechicken/nei/WorldOverlayRenderer.java +++ /dev/null @@ -1,231 +0,0 @@ -package codechicken.nei; - -import codechicken.lib.math.MathHelper; -import codechicken.lib.render.RenderUtils; -import codechicken.lib.vec.Cuboid6; -import codechicken.nei.KeyManager.IKeyStateTracker; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving.SpawnPlacementType; -import net.minecraft.entity.EnumCreatureType; -import net.minecraft.entity.passive.EntityPig; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.BlockPos; -import net.minecraft.world.EnumSkyBlock; -import net.minecraft.world.SpawnerAnimals; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraft.world.chunk.Chunk; - -import static org.lwjgl.opengl.GL11.*; - -public class WorldOverlayRenderer implements IKeyStateTracker { - public static int mobOverlay = 0; - public static int chunkOverlay = 0; - - public static void reset() { - mobOverlay = 0; - chunkOverlay = 0; - } - - @Override - public void tickKeyStates() { - if (Minecraft.getMinecraft().currentScreen != null) { - return; - } - - if (KeyManager.keyStates.get("world.moboverlay").down) { - mobOverlay = (mobOverlay + 1) % 2; - } - if (KeyManager.keyStates.get("world.chunkoverlay").down) { - chunkOverlay = (chunkOverlay + 1) % 3; - } - } - - public static void render(float frame) { - GlStateManager.pushMatrix(); - Entity entity = Minecraft.getMinecraft().getRenderViewEntity(); - RenderUtils.translateToWorldCoords(entity, frame); - - renderChunkBounds(entity); - renderMobSpawnOverlay(entity); - GlStateManager.popMatrix(); - } - - private static void renderMobSpawnOverlay(Entity entity) { - if (mobOverlay == 0) { - return; - } - - GlStateManager.disableTexture2D(); - GlStateManager.disableLighting(); - glLineWidth(1.5F); - glBegin(GL_LINES); - - GlStateManager.color(1, 0, 0); - - World world = entity.worldObj; - int x1 = (int) entity.posX; - int z1 = (int) entity.posZ; - int y1 = (int) MathHelper.clip(entity.posY, 16, world.getHeight() - 16); - - for (int x = x1 - 16; x <= x1 + 16; x++) { - for (int z = z1 - 16; z <= z1 + 16; z++) { - BlockPos pos = new BlockPos(x, y1, z); - Chunk chunk = world.getChunkFromBlockCoords(pos); - BiomeGenBase biome = world.getBiomeGenForCoords(pos); - if (biome.getSpawnableList(EnumCreatureType.MONSTER).isEmpty() || biome.getSpawningChance() <= 0) { - continue; - } - - for (int y = y1 - 16; y < y1 + 16; y++) { - int spawnMode = getSpawnMode(chunk, x, y, z); - if (spawnMode == 0) { - continue; - } - - if (spawnMode == 1) { - GlStateManager.color(1, 1, 0); - } else { - GlStateManager.color(1, 0, 0); - } - - glVertex3d(x, y + 0.004, z); - glVertex3d(x + 1, y + 0.004, z + 1); - glVertex3d(x + 1, y + 0.004, z); - glVertex3d(x, y + 0.004, z + 1); - } - } - } - - glEnd(); - GlStateManager.enableLighting(); - GlStateManager.enableTexture2D(); - } - - private static Entity dummyEntity = new EntityPig(null); - private static Cuboid6 c = new Cuboid6(); - - private static int getSpawnMode(Chunk chunk, int x, int y, int z) { - World world = chunk.getWorld(); - BlockPos pos = new BlockPos(x, y, z); - if (!SpawnerAnimals.canCreatureTypeSpawnAtLocation(SpawnPlacementType.ON_GROUND, world, pos) || chunk.getLightFor(EnumSkyBlock.BLOCK, pos) >= 8) { - return 0; - } - - c.set(x + 0.2, y + 0.01, z + 0.2, x + 0.8, y + 1.8, z + 0.8); - AxisAlignedBB aabb = c.aabb(); - if (!world.checkNoEntityCollision(aabb) || - !world.getCollidingBoundingBoxes(dummyEntity, aabb).isEmpty() || - world.isAnyLiquid(aabb)) { - return 0; - } - - if (chunk.getLightFor(EnumSkyBlock.SKY, pos) >= 8) { - return 1; - } - return 2; - } - - private static void renderChunkBounds(Entity entity) { - if (chunkOverlay == 0) { - return; - } - - GlStateManager.disableTexture2D(); - GlStateManager.enableBlend(); - GlStateManager.blendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - GlStateManager.disableLighting(); - glLineWidth(1.5F); - glBegin(GL_LINES); - - for (int cx = -4; cx <= 4; cx++) { - for (int cz = -4; cz <= 4; cz++) { - double x1 = (entity.chunkCoordX + cx) << 4; - double z1 = (entity.chunkCoordZ + cz) << 4; - double x2 = x1 + 16; - double z2 = z1 + 16; - - double dy = 128; - double y1 = Math.floor(entity.posY - dy / 2); - double y2 = y1 + dy; - if (y1 < 0) { - y1 = 0; - y2 = dy; - } - - if (y1 > entity.worldObj.getHeight()) { - y2 = entity.worldObj.getHeight(); - y1 = y2 - dy; - } - - double dist = Math.pow(1.5, -(cx * cx + cz * cz)); - - GlStateManager.color(0.9F, 0, 0, (float) dist); - if (cx >= 0 && cz >= 0) { - glVertex3d(x2, y1, z2); - glVertex3d(x2, y2, z2); - } - if (cx >= 0 && cz <= 0) { - glVertex3d(x2, y1, z1); - glVertex3d(x2, y2, z1); - } - if (cx <= 0 && cz >= 0) { - glVertex3d(x1, y1, z2); - glVertex3d(x1, y2, z2); - } - if (cx <= 0 && cz <= 0) { - glVertex3d(x1, y1, z1); - glVertex3d(x1, y2, z1); - } - - if (chunkOverlay == 2 && cx == 0 && cz == 0) { - dy = 32; - y1 = Math.floor(entity.posY - dy / 2); - y2 = y1 + dy; - if (y1 < 0) { - y1 = 0; - y2 = dy; - } - - if (y1 > entity.worldObj.getHeight()) { - y2 = entity.worldObj.getHeight(); - y1 = y2 - dy; - } - - GlStateManager.color(0, 0.9F, 0, 0.4F); - for (double y = (int) y1; y <= y2; y++) { - glVertex3d(x2, y, z1); - glVertex3d(x2, y, z2); - glVertex3d(x1, y, z1); - glVertex3d(x1, y, z2); - glVertex3d(x1, y, z2); - glVertex3d(x2, y, z2); - glVertex3d(x1, y, z1); - glVertex3d(x2, y, z1); - } - for (double h = 1; h <= 15; h++) { - glVertex3d(x1 + h, y1, z1); - glVertex3d(x1 + h, y2, z1); - glVertex3d(x1 + h, y1, z2); - glVertex3d(x1 + h, y2, z2); - glVertex3d(x1, y1, z1 + h); - glVertex3d(x1, y2, z1 + h); - glVertex3d(x2, y1, z1 + h); - glVertex3d(x2, y2, z1 + h); - } - } - } - } - - glEnd(); - GlStateManager.enableLighting(); - GlStateManager.disableBlend(); - GlStateManager.enableTexture2D(); - } - - public static void load() { - KeyManager.trackers.add(new WorldOverlayRenderer()); - } -} diff --git a/dependencies/main/java/codechicken/nei/api/API.java b/dependencies/main/java/codechicken/nei/api/API.java deleted file mode 100644 index 910ceaea8e..0000000000 --- a/dependencies/main/java/codechicken/nei/api/API.java +++ /dev/null @@ -1,279 +0,0 @@ -package codechicken.nei.api; - -import codechicken.nei.*; -import codechicken.nei.KeyManager.KeyState; -import codechicken.nei.SearchField.ISearchProvider; -import codechicken.nei.SubsetWidget.SubsetTag; -import codechicken.nei.api.ItemFilter.ItemFilterProvider; -import codechicken.nei.config.Option; -import codechicken.nei.config.OptionKeyBind; -import codechicken.nei.recipe.*; -import net.minecraft.block.Block; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import org.lwjgl.input.Keyboard; - -import java.util.Collections; -import java.util.Comparator; - -/** - * This is the main class that handles item property configuration. - * WARNING: DO NOT access this class until the world has been loaded - * These methods should be called from INEIConfig implementors - */ -public class API { - /** - * Register a new Crafting Recipe handler; - * - * @param handler The handler to register - */ - public static void registerRecipeHandler(ICraftingHandler handler) { - GuiCraftingRecipe.registerRecipeHandler(handler); - } - - /** - * Register a new Usage Recipe handler; - * - * @param handler The handler to register - */ - public static void registerUsageHandler(IUsageHandler handler) { - GuiUsageRecipe.registerUsageHandler(handler); - } - - /** - * Add a gui to the default overlay renderer with the default position - * - * @param classz The class of your gui - * @param ident The identification string, currently - * {crafting, crafting2x2, smelting, fuel, brewing} - */ - public static void registerGuiOverlay(Class classz, String ident) { - registerGuiOverlay(classz, ident, 5, 11); - } - - /** - * Add a gui to the default overlay renderer with an offset - * - * @param classz The class of your gui - * @param ident The identification string, currently - * {crafting, crafting2x2, smelting, fuel, brewing} - * @param x x-offset - * @param y y-offset - */ - public static void registerGuiOverlay(Class classz, String ident, int x, int y) { - registerGuiOverlay(classz, ident, new OffsetPositioner(x, y)); - } - - /** - * Add a gui to the default overlay renderer - * - * @param classz The class of your gui - * @param ident The identification string, currently - * {crafting, crafting2x2, smelting, fuel, brewing} - * @param positioner A Stack Repositioner for moving the items to the right place - */ - public static void registerGuiOverlay(Class classz, String ident, IStackPositioner positioner) { - RecipeInfo.registerGuiOverlay(classz, ident, positioner); - } - - /** - * @param classz The class of your gui - * @param handler The handler to register - * @param ident The recipe identification string - */ - public static void registerGuiOverlayHandler(Class classz, IOverlayHandler handler, String ident) { - RecipeInfo.registerOverlayHandler(classz, handler, ident); - } - - /** - * Set the offset to be added to items to translate them into recipe coords on the actual gui, default is 5, 11. Primarily RecipeTransferRects - * - * @param classz The class of your gui - * @param x - * @param y - */ - public static void setGuiOffset(Class classz, int x, int y) { - RecipeInfo.setGuiOffset(classz, x, y); - } - - public static void registerNEIGuiHandler(INEIGuiHandler handler) { - GuiInfo.guiHandlers.add(handler); - } - - /** - * Hide an item from the item panel - * Damage values of OreDictionary.WILDCARD_VALUE and ItemStackMap.WILDCARD_TAG tags function as wildcards for their respective variables - */ - public static void hideItem(ItemStack item) { - ItemInfo.hiddenItems.add(item); - } - - /** - * Add or replace the name normally shown on the item tooltip - */ - public static void setOverrideName(ItemStack item, String name) { - ItemInfo.nameOverrides.put(item, name); - } - - /** - * Adds an item to the item panel. Any items added using this function will override the default search pattern. - * - * @param item an item with data - */ - public static void addItemListEntry(ItemStack item) { - ItemInfo.itemOverrides.put(item.getItem(), item); - } - - /** - * Sets the item variants to appear in the item panel, overriding the default search pattern for a given item - */ - public static void setItemListEntries(Item item, Iterable items) { - if (items == null) { - items = Collections.emptyList(); - } - ItemInfo.itemOverrides.replaceValues(item, items); - } - - /** - * Add a custom KeyBinding to be configured in the Controls menu. - * - * @param ident An identifier for your key, eg "shoot" - * @param defaultKey The default value, commonly obtained from {@link Keyboard} - */ - public static void addKeyBind(String ident, int defaultKey) { - NEIClientConfig.setDefaultKeyBinding(ident, defaultKey); - KeyManager.keyStates.put(ident, new KeyState()); - addOption(new OptionKeyBind(ident)); - } - - public static void addOption(Option option) { - NEIClientConfig.getOptionList().addOption(option); - } - - /** - * Add a new Layout Style for the NEI interface - * - * @param styleID The Unique ID to be used for storing your style in the config and cycling through avaliable styles - * @param style The style to add. - */ - public static void addLayoutStyle(int styleID, LayoutStyle style) { - LayoutManager.layoutStyles.put(styleID, style); - } - - /** - * Registers a new Infinite Item Handler. - * - * @param handler The handler to be registered. - */ - public static void addInfiniteItemHandler(IInfiniteItemHandler handler) { - ItemInfo.infiniteHandlers.addFirst(handler); - } - - /** - * Registers a new Infinite Item Handler. - * - * @param block The block to handle, null for all. - * @param handler The handler to be registered. - */ - public static void registerHighlightIdentifier(Block block, IHighlightHandler handler) { - ItemInfo.highlightIdentifiers.put(block, handler); - } - - /** - * Tells NEI not to perform any Fast Transfer operations on slots of a particular class - * - * @param slotClass The class of slot to be exempted - */ - public static void addFastTransferExemptSlot(Class slotClass) { - ItemInfo.fastTransferExemptions.add(slotClass); - } - - /** - * Register a new text handler for the block highlight tooltip with a layout specification (HEADER, BODY or FOOTER). - * - * @param handler The handler to be registered. - * @param layout A HUDAugmenterRegistry.Layout entry. HEADER is displayed before BODY which is displayed before FOOTER. - */ - public static void registerHighlightHandler(IHighlightHandler handler, ItemInfo.Layout... layout) { - ItemInfo.registerHighlightHandler(handler, layout); - } - - /** - * Register a mode handler for overriding NEI recipe/utility/cheat mode settings. - * - * @param handler The handler to be registered. - */ - public static void registerModeHandler(INEIModeHandler handler) { - NEIInfo.modeHandlers.add(handler); - } - - /** - * Register a filter provider for the item panel. - * - * @param filterProvider The filter provider to be registered. - */ - public static void addItemFilter(ItemFilterProvider filterProvider) { - synchronized (ItemList.itemFilterers) { - ItemList.itemFilterers.add(filterProvider); - } - } - - /** - * Adds a new tag to the item subset dropdown. - * - * @param name The fully qualified name, Eg Blocks.MobSpawners. NOT case sensitive - * @param filter A filter for matching items that fit in this subset - */ - public static void addSubset(String name, ItemFilter filter) { - addSubset(new SubsetTag(name, filter)); - } - - /** - * Adds a new tag to the item subset dropdown. - * - * @param name The fully qualified name, Eg Blocks.MobSpawners. NOT case sensitive - * @param items An iterable of itemstacks to be added as a subset - */ - public static void addSubset(String name, Iterable items) { - ItemStackSet filter = new ItemStackSet(); - for (ItemStack item : items) { - filter.add(item); - } - addSubset(new SubsetTag(name, filter)); - } - - /** - * Adds a new tag to the item subset dropdown. - */ - public static void addSubset(SubsetTag tag) { - SubsetWidget.addTag(tag); - } - - /** - * Adds a new search provider to the search field - */ - public static void addSearchProvider(ISearchProvider provider) { - SearchField.searchProviders.add(provider); - } - - /** - * Adds a new sorting option to the item panel sort menu - * - * @param name A unique id for this sort option. Will be used in the config for saving and translated in the options gui. Note that if the translation key name.tip exists, it will be used for a tooltip - */ - public static void addSortOption(String name, Comparator comparator) { - ItemSorter.add(name, comparator); - } - - /** - * Adds an additional item list entry for an item, sorted after the rest of the items are found through the normal process - * - * @param item The item to add the variant for - * @param variant The stack to appear in the item panel - */ - public static void addItemVariant(Item item, ItemStack variant) { - ItemInfo.itemVariants.put(item, variant); - } -} diff --git a/dependencies/main/java/codechicken/nei/api/DefaultOverlayRenderer.java b/dependencies/main/java/codechicken/nei/api/DefaultOverlayRenderer.java deleted file mode 100644 index 142a4a1f67..0000000000 --- a/dependencies/main/java/codechicken/nei/api/DefaultOverlayRenderer.java +++ /dev/null @@ -1,41 +0,0 @@ -package codechicken.nei.api; - -import codechicken.nei.PositionedStack; -import codechicken.nei.guihook.GuiContainerManager; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.inventory.Slot; -import org.lwjgl.opengl.GL11; - -import java.util.ArrayList; -import java.util.List; - -public class DefaultOverlayRenderer implements IRecipeOverlayRenderer { - IStackPositioner positioner; - ArrayList ingreds; - - public DefaultOverlayRenderer(List ai, IStackPositioner positioner) { - positioner = this.positioner = positioner; - ingreds = new ArrayList(); - for (PositionedStack stack : ai) { - ingreds.add(stack.copy()); - } - ingreds = positioner.positionStacks(ingreds); - } - - @Override - public void renderOverlay(GuiContainerManager gui, Slot slot) { - GlStateManager.enableBlend(); - GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - - GuiContainerManager.setItemRenderColour(0xA0A0A0B0); - for (PositionedStack stack : ingreds) { - if (stack.relx == slot.xDisplayPosition && stack.rely == slot.yDisplayPosition) { - GuiContainerManager.drawItem(stack.relx, stack.rely, stack.item); - } - } - GuiContainerManager.setItemRenderColour(-1); - - GlStateManager.disableBlend(); - GlStateManager.enableLighting(); - } -} diff --git a/dependencies/main/java/codechicken/nei/api/GuiInfo.java b/dependencies/main/java/codechicken/nei/api/GuiInfo.java deleted file mode 100644 index b0b5ca1f8f..0000000000 --- a/dependencies/main/java/codechicken/nei/api/GuiInfo.java +++ /dev/null @@ -1,35 +0,0 @@ -package codechicken.nei.api; - -import codechicken.nei.NEIChestGuiHandler; -import codechicken.nei.NEICreativeGuiHandler; -import codechicken.nei.NEIDummySlotHandler; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.gui.inventory.GuiContainerCreative; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; - -public class GuiInfo { - public static LinkedList guiHandlers = new LinkedList(); - public static HashSet> customSlotGuis = new HashSet>(); - - public static void load() { - API.registerNEIGuiHandler(new NEICreativeGuiHandler()); - API.registerNEIGuiHandler(new NEIChestGuiHandler()); - API.registerNEIGuiHandler(new NEIDummySlotHandler()); - customSlotGuis.add(GuiContainerCreative.class); - } - - public static void clearGuiHandlers() { - for (Iterator iterator = guiHandlers.iterator(); iterator.hasNext(); ) { - if (iterator.next() instanceof GuiContainer) { - iterator.remove(); - } - } - } - - public static boolean hasCustomSlots(GuiContainer gui) { - return customSlotGuis.contains(gui.getClass()); - } -} diff --git a/dependencies/main/java/codechicken/nei/api/IConfigureNEI.java b/dependencies/main/java/codechicken/nei/api/IConfigureNEI.java deleted file mode 100644 index fd67a61d79..0000000000 --- a/dependencies/main/java/codechicken/nei/api/IConfigureNEI.java +++ /dev/null @@ -1,13 +0,0 @@ -package codechicken.nei.api; - -/** - * An nei configuration entry point should implement this class and have name "NEIConfig" - * loadConfig will only be called when NEI is installed. - */ -public interface IConfigureNEI { - public void loadConfig(); - - public String getName(); - - public String getVersion(); -} diff --git a/dependencies/main/java/codechicken/nei/api/IGuiContainerOverlay.java b/dependencies/main/java/codechicken/nei/api/IGuiContainerOverlay.java deleted file mode 100644 index 94d6d940af..0000000000 --- a/dependencies/main/java/codechicken/nei/api/IGuiContainerOverlay.java +++ /dev/null @@ -1,7 +0,0 @@ -package codechicken.nei.api; - -import net.minecraft.client.gui.inventory.GuiContainer; - -public interface IGuiContainerOverlay { - public GuiContainer getFirstScreen(); -} diff --git a/dependencies/main/java/codechicken/nei/api/IHighlightHandler.java b/dependencies/main/java/codechicken/nei/api/IHighlightHandler.java deleted file mode 100644 index ca262b0d6e..0000000000 --- a/dependencies/main/java/codechicken/nei/api/IHighlightHandler.java +++ /dev/null @@ -1,14 +0,0 @@ -package codechicken.nei.api; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -import java.util.List; - -public interface IHighlightHandler { - public ItemStack identifyHighlight(World world, EntityPlayer player, MovingObjectPosition mop); - - public List handleTextData(ItemStack itemStack, World world, EntityPlayer player, MovingObjectPosition mop, List currenttip, ItemInfo.Layout layout); -} diff --git a/dependencies/main/java/codechicken/nei/api/IInfiniteItemHandler.java b/dependencies/main/java/codechicken/nei/api/IInfiniteItemHandler.java deleted file mode 100644 index 1c9552bbf2..0000000000 --- a/dependencies/main/java/codechicken/nei/api/IInfiniteItemHandler.java +++ /dev/null @@ -1,18 +0,0 @@ -package codechicken.nei.api; - -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; - -public interface IInfiniteItemHandler { - void onPickup(ItemStack heldItem); - - void onPlaceInfinite(ItemStack heldItem); - - boolean canHandleItem(ItemStack stack); - - boolean isItemInfinite(ItemStack stack); - - public void replenishInfiniteStack(InventoryPlayer inventory, int slotNo); - - public ItemStack getInfiniteItem(ItemStack typeStack); -} diff --git a/dependencies/main/java/codechicken/nei/api/INEIGuiAdapter.java b/dependencies/main/java/codechicken/nei/api/INEIGuiAdapter.java deleted file mode 100644 index fb72849d9e..0000000000 --- a/dependencies/main/java/codechicken/nei/api/INEIGuiAdapter.java +++ /dev/null @@ -1,38 +0,0 @@ -package codechicken.nei.api; - -import codechicken.nei.VisiblityData; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.item.ItemStack; - -import java.util.Collections; -import java.util.List; - -/** - * Lets you just override those things you want to - */ -public class INEIGuiAdapter implements INEIGuiHandler { - @Override - public VisiblityData modifyVisiblity(GuiContainer gui, VisiblityData currentVisibility) { - return currentVisibility; - } - - @Override - public Iterable getItemSpawnSlots(GuiContainer gui, ItemStack item) { - return Collections.emptyList(); - } - - @Override - public List getInventoryAreas(GuiContainer gui) { - return null; - } - - @Override - public boolean handleDragNDrop(GuiContainer gui, int mousex, int mousey, ItemStack draggedStack, int button) { - return false; - } - - @Override - public boolean hideItemPanelSlot(GuiContainer gui, int x, int y, int w, int h) { - return false; - } -} diff --git a/dependencies/main/java/codechicken/nei/api/INEIGuiHandler.java b/dependencies/main/java/codechicken/nei/api/INEIGuiHandler.java deleted file mode 100644 index e968e4f5eb..0000000000 --- a/dependencies/main/java/codechicken/nei/api/INEIGuiHandler.java +++ /dev/null @@ -1,50 +0,0 @@ -package codechicken.nei.api; - -import codechicken.nei.VisiblityData; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.item.ItemStack; - -import java.util.List; - -/** - * If this is implemented on a gui, it will be automatically registered - */ -public interface INEIGuiHandler { - public VisiblityData modifyVisiblity(GuiContainer gui, VisiblityData currentVisibility); - - /** - * NEI will give the specified item to the InventoryRange returned if the player's inventory is full. - * Should not return null, just an empty list - */ - public Iterable getItemSpawnSlots(GuiContainer gui, ItemStack item); - - /** - * @return A list of TaggedInventoryAreas that will be used with the savestates. - */ - public List getInventoryAreas(GuiContainer gui); - - /** - * Handles clicks while an itemstack has been dragged from the item panel. Use this to set configurable slots and the like. - * Changes made to the stackSize of the dragged stack will be kept - * - * @param gui The current gui instance - * @param mousex The x position of the mouse - * @param mousey The y position of the mouse - * @param draggedStack The stack being dragged from the item panel - * @param button The button presed - * @return True if the drag n drop was handled. False to resume processing through other routes. The held stack will be deleted if draggedStack.stackSize == 0 - */ - public boolean handleDragNDrop(GuiContainer gui, int mousex, int mousey, ItemStack draggedStack, int button); - - /** - * Used to prevent the item panel from drawing on top of other gui elements. - * This function will also be called with a 1x1 size rectangle on the mouse position for determining if the given coordinate should override item panel functions such as scrolling - * - * @param x The x coordinate of the rectangle bounding the slot - * @param y The y coordinate of the rectangle bounding the slot - * @param w The w coordinate of the rectangle bounding the slot - * @param h The h coordinate of the rectangle bounding the slot - * @return true if the item panel slot within the specified rectangle should not be rendered. - */ - public boolean hideItemPanelSlot(GuiContainer gui, int x, int y, int w, int h); -} diff --git a/dependencies/main/java/codechicken/nei/api/INEIModeHandler.java b/dependencies/main/java/codechicken/nei/api/INEIModeHandler.java deleted file mode 100644 index 49a6d0b732..0000000000 --- a/dependencies/main/java/codechicken/nei/api/INEIModeHandler.java +++ /dev/null @@ -1,5 +0,0 @@ -package codechicken.nei.api; - -public interface INEIModeHandler { - public boolean isModeValid(int mode); -} diff --git a/dependencies/main/java/codechicken/nei/api/IOverlayHandler.java b/dependencies/main/java/codechicken/nei/api/IOverlayHandler.java deleted file mode 100644 index c068ef13f1..0000000000 --- a/dependencies/main/java/codechicken/nei/api/IOverlayHandler.java +++ /dev/null @@ -1,8 +0,0 @@ -package codechicken.nei.api; - -import codechicken.nei.recipe.IRecipeHandler; -import net.minecraft.client.gui.inventory.GuiContainer; - -public interface IOverlayHandler { - public void overlayRecipe(GuiContainer firstGui, IRecipeHandler recipe, int recipeIndex, boolean shift); -} diff --git a/dependencies/main/java/codechicken/nei/api/IRecipeOverlayRenderer.java b/dependencies/main/java/codechicken/nei/api/IRecipeOverlayRenderer.java deleted file mode 100644 index b94ef0fe7a..0000000000 --- a/dependencies/main/java/codechicken/nei/api/IRecipeOverlayRenderer.java +++ /dev/null @@ -1,8 +0,0 @@ -package codechicken.nei.api; - -import codechicken.nei.guihook.GuiContainerManager; -import net.minecraft.inventory.Slot; - -public interface IRecipeOverlayRenderer { - public void renderOverlay(GuiContainerManager gui, Slot slot); -} diff --git a/dependencies/main/java/codechicken/nei/api/IStackPositioner.java b/dependencies/main/java/codechicken/nei/api/IStackPositioner.java deleted file mode 100644 index 70baf7f598..0000000000 --- a/dependencies/main/java/codechicken/nei/api/IStackPositioner.java +++ /dev/null @@ -1,12 +0,0 @@ -package codechicken.nei.api; - -import codechicken.nei.PositionedStack; - -import java.util.ArrayList; - -/** - * For repositioning recipes in overlay renderers. - */ -public interface IStackPositioner { - public ArrayList positionStacks(ArrayList ai); -} diff --git a/dependencies/main/java/codechicken/nei/api/ItemFilter.java b/dependencies/main/java/codechicken/nei/api/ItemFilter.java deleted file mode 100644 index d65ed71118..0000000000 --- a/dependencies/main/java/codechicken/nei/api/ItemFilter.java +++ /dev/null @@ -1,14 +0,0 @@ -package codechicken.nei.api; - -import net.minecraft.item.ItemStack; - -public interface ItemFilter { - /** - * Provides an item filter. May be called from any thread. Returned filter should only reference objects with immutable state. - */ - public static interface ItemFilterProvider { - public ItemFilter getFilter(); - } - - public boolean matches(ItemStack item); -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/nei/api/ItemInfo.java b/dependencies/main/java/codechicken/nei/api/ItemInfo.java deleted file mode 100644 index 34aea1d942..0000000000 --- a/dependencies/main/java/codechicken/nei/api/ItemInfo.java +++ /dev/null @@ -1,492 +0,0 @@ -package codechicken.nei.api; - -import codechicken.nei.*; -import codechicken.nei.ItemList.ItemsLoadedCallback; -import codechicken.nei.api.ItemFilter.ItemFilterProvider; -import codechicken.nei.config.ArrayDumper; -import codechicken.nei.config.ItemPanelDumper; -import codechicken.nei.config.RegistryDumper; -import codechicken.nei.guihook.GuiContainerManager; -import codechicken.nei.recipe.BrewingRecipeHandler; -import codechicken.nei.recipe.RecipeItemInputHandler; -import com.google.common.collect.ArrayListMultimap; -import net.minecraft.block.Block; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.resources.I18n; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.enchantment.Enchantment; -import net.minecraft.entity.EntityList; -import net.minecraft.entity.EntityList.EntityEggInfo; -import net.minecraft.entity.monster.EntityIronGolem; -import net.minecraft.entity.monster.EntitySnowman; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.inventory.Slot; -import net.minecraft.item.*; -import net.minecraft.potion.Potion; -import net.minecraft.util.BlockPos; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.RegistryNamespaced; -import net.minecraft.world.World; -import net.minecraft.world.biome.BiomeGenBase; -import net.minecraftforge.common.BiomeDictionary; -import net.minecraftforge.common.IShearable; -import net.minecraftforge.fml.common.FMLCommonHandler; -import net.minecraftforge.fml.common.ModContainer; -import net.minecraftforge.fml.common.registry.GameRegistry; -import net.minecraftforge.fml.common.registry.GameRegistry.UniqueIdentifier; - -import java.util.*; -import java.util.Map.Entry; - -/** - * This is an internal class for storing information about items, to be accessed by the API - */ -public class ItemInfo { - public static enum Layout { - HEADER, BODY, FOOTER - } - - public static final ArrayListMultimap highlightHandlers = ArrayListMultimap.create(); - public static final ItemStackMap nameOverrides = new ItemStackMap(); - public static final ItemStackSet hiddenItems = new ItemStackSet(); - public static final ItemStackSet finiteItems = new ItemStackSet(); - public static final ArrayListMultimap itemOverrides = ArrayListMultimap.create(); - public static final ArrayListMultimap itemVariants = ArrayListMultimap.create(); - - public static final LinkedList infiniteHandlers = new LinkedList(); - public static final ArrayListMultimap highlightIdentifiers = ArrayListMultimap.create(); - public static final HashSet> fastTransferExemptions = new HashSet>(); - - public static final HashMap itemOwners = new HashMap(); - - //lookup optimisation - public static final HashMap itemSearchNames = new HashMap(); - - public static boolean isHidden(ItemStack stack) { - return hiddenItems.contains(stack); - } - - public static boolean isHidden(Item item) { - return hiddenItems.containsAll(item); - } - - public static String getNameOverride(ItemStack stack) { - return nameOverrides.get(stack); - } - - public static boolean canBeInfinite(ItemStack stack) { - return !finiteItems.contains(stack); - } - - /** - * @deprecated Use field directly - */ - @Deprecated - public static List getItemOverrides(Item item) { - return itemOverrides.get(item); - } - - public static void preInit() { - ItemMobSpawner.register(); - } - - public static void init() { - ItemMobSpawner.initRender(); - } - - public static void load(World world) { - addVanillaBlockProperties(); - addDefaultDropDowns(); - searchItems(); - parseModItems(); - ItemMobSpawner.loadSpawners(world); - addSpawnEggs(); - addInfiniteHandlers(); - addInputHandlers(); - addIDDumps(); - addHiddenItemFilter(); - addSearchOptimisation(); - } - - private static void addVanillaBlockProperties() { - API.hideItem(new ItemStack(Blocks.farmland)); - API.hideItem(new ItemStack(Blocks.lit_furnace)); - } - - private static void addSearchOptimisation() { - ItemList.loadCallbacks.add(new ItemsLoadedCallback() { - @Override - public void itemsLoaded() { - itemSearchNames.clear(); - } - }); - } - - private static void addHiddenItemFilter() { - API.addItemFilter(new ItemFilterProvider() { - @Override - public ItemFilter getFilter() { - return new ItemFilter() { - @Override - public boolean matches(ItemStack item) { - return !hiddenItems.contains(item); - } - }; - } - }); - } - - private static void addIDDumps() { - API.addOption(new RegistryDumper("tools.dump.item") { - @Override - public String[] header() { - return new String[] { "Name", "ID", "Has Block", "Mod", "Class" }; - } - - @Override - public String[] dump(Item item, int id, String name) { - return new String[] { name, Integer.toString(id), Boolean.toString(Block.getBlockFromItem(item) != Blocks.air), ItemInfo.itemOwners.get(item), item.getClass().getCanonicalName() }; - } - - @Override - public RegistryNamespaced registry() { - return Item.itemRegistry; - } - }); - API.addOption(new RegistryDumper("tools.dump.block") { - @Override - public String[] header() { - return new String[] { "Name", "ID", "Has Item", "Mod", "Class" }; - } - - @Override - public String[] dump(Block item, int id, String name) { - return new String[] { name, Integer.toString(id), Boolean.toString(Item.getItemFromBlock(item) != null), ItemInfo.itemOwners.get(item), item.getClass().getCanonicalName() }; - } - - @Override - public RegistryNamespaced registry() { - return Block.blockRegistry; - } - }); - API.addOption(new ArrayDumper("tools.dump.potion") { - public String[] header() { - return new String[] { "ID", "Unlocalised name", "Class" }; - } - - @Override - public String[] dump(Potion potion, int id) { - return new String[] { Integer.toString(id), potion.getName(), potion.getClass().getCanonicalName() }; - } - - @Override - public Potion[] array() { - return Potion.potionTypes; - } - }); - API.addOption(new ArrayDumper("tools.dump.enchantment") { - public String[] header() { - return new String[] { "ID", "Unlocalised name", "Type", "Min Level", "Max Level", "Class" }; - } - - @Override - public String[] dump(Enchantment ench, int id) { - return new String[] { Integer.toString(id), ench.getName(), ench.type.toString(), Integer.toString(ench.getMinLevel()), Integer.toString(ench.getMaxLevel()), ench.getClass().getCanonicalName() }; - } - - @Override - public Enchantment[] array() { - return Enchantment.enchantmentsList; - } - }); - API.addOption(new ArrayDumper("tools.dump.biome") { - @Override - public String[] header() { - return new String[] { "ID", "Name", "Temperature", "Rainfall", "Spawn Chance", "Root Height", "Height Variation", "Types", "Class" }; - } - - @Override - public String[] dump(BiomeGenBase biome, int id) { - BiomeDictionary.Type[] types = BiomeDictionary.getTypesForBiome(biome); - StringBuilder s_types = new StringBuilder(); - for (BiomeDictionary.Type t : types) { - if (s_types.length() > 0) { - s_types.append(", "); - } - s_types.append(t.name()); - } - - return new String[] { Integer.toString(id), biome.biomeName, Float.toString(biome.getFloatTemperature(BlockPos.ORIGIN)), Float.toString(biome.getFloatRainfall()), Float.toString(biome.getSpawningChance()), Float.toString(biome.minHeight), Float.toString(biome.maxHeight), s_types.toString(), biome.getClass().getCanonicalName() }; - } - - @Override - public BiomeGenBase[] array() { - return BiomeGenBase.getBiomeGenArray(); - } - }); - API.addOption(new ItemPanelDumper("tools.dump.itempanel")); - //TODO Fluid registry Dumper. - } - - private static void parseModItems() { - HashMap modSubsets = new HashMap(); - for (Item item : (Iterable) Item.itemRegistry) { - UniqueIdentifier ident = GameRegistry.findUniqueIdentifierFor(item); - if (ident == null) { - NEIClientConfig.logger.error("Failed to find identifier for: " + item); - continue; - } - String modId = GameRegistry.findUniqueIdentifierFor(item).modId; - itemOwners.put(item, modId); - ItemStackSet itemset = modSubsets.get(modId); - if (itemset == null) { - modSubsets.put(modId, itemset = new ItemStackSet()); - } - itemset.with(item); - } - - API.addSubset("Mod.Minecraft", modSubsets.remove("minecraft")); - for (Entry entry : modSubsets.entrySet()) { - ModContainer mc = FMLCommonHandler.instance().findContainerFor(entry.getKey()); - if (mc == null) { - NEIClientConfig.logger.error("Missing container for " + entry.getKey()); - } else { - API.addSubset("Mod." + mc.getName(), entry.getValue()); - } - } - } - - private static void addInputHandlers() { - GuiContainerManager.addInputHandler(new RecipeItemInputHandler()); - GuiContainerManager.addInputHandler(new PopupInputHandler()); - } - - private static void addInfiniteHandlers() { - API.addInfiniteItemHandler(new InfiniteStackSizeHandler()); - API.addInfiniteItemHandler(new InfiniteToolHandler()); - } - - private static void addDefaultDropDowns() { - API.addSubset("Items", new ItemFilter() { - @Override - public boolean matches(ItemStack item) { - return Block.getBlockFromItem(item.getItem()) == Blocks.air; - } - }); - API.addSubset("Blocks", new ItemFilter() { - @Override - public boolean matches(ItemStack item) { - return Block.getBlockFromItem(item.getItem()) != Blocks.air; - } - }); - API.addSubset("Blocks.MobSpawners", ItemStackSet.of(Blocks.mob_spawner)); - } - - private static void searchItems() { - ItemStackSet tools = new ItemStackSet(); - ItemStackSet picks = new ItemStackSet(); - ItemStackSet shovels = new ItemStackSet(); - ItemStackSet axes = new ItemStackSet(); - ItemStackSet hoes = new ItemStackSet(); - ItemStackSet swords = new ItemStackSet(); - ItemStackSet chest = new ItemStackSet(); - ItemStackSet helmets = new ItemStackSet(); - ItemStackSet legs = new ItemStackSet(); - ItemStackSet boots = new ItemStackSet(); - ItemStackSet other = new ItemStackSet(); - ItemStackSet ranged = new ItemStackSet(); - ItemStackSet food = new ItemStackSet(); - ItemStackSet potioningredients = new ItemStackSet(); - - ArrayList creativeTabRanges = new ArrayList(CreativeTabs.creativeTabArray.length); - List stackList = new LinkedList(); - - for (Item item : (Iterable) Item.itemRegistry) { - if (item == null) { - continue; - } - - for (CreativeTabs itemTab : item.getCreativeTabs()) { - if (itemTab != null) { - while (itemTab.getTabIndex() >= creativeTabRanges.size()) { - creativeTabRanges.add(null); - } - ItemStackSet set = creativeTabRanges.get(itemTab.getTabIndex()); - if (set == null) { - creativeTabRanges.set(itemTab.getTabIndex(), set = new ItemStackSet()); - } - stackList.clear(); - item.getSubItems(item, itemTab, stackList); - for (ItemStack stack : stackList) { - set.add(stack); - } - } - } - - if (item.isDamageable()) { - tools.with(item); - if (item instanceof ItemPickaxe) { - picks.with(item); - } else if (item instanceof ItemSpade) { - shovels.with(item); - } else if (item instanceof ItemAxe) { - axes.with(item); - } else if (item instanceof ItemHoe) { - hoes.with(item); - } else if (item instanceof ItemSword) { - swords.with(item); - } else if (item instanceof ItemArmor) { - switch (((ItemArmor) item).armorType) { - case 0: - helmets.with(item); - break; - case 1: - chest.with(item); - break; - case 2: - legs.with(item); - break; - case 3: - boots.with(item); - break; - } - } else if (item == Items.arrow || item == Items.bow) { - ranged.with(item); - } else if (item == Items.fishing_rod || item == Items.flint_and_steel || item == Items.shears) { - other.with(item); - } - } - - if (item instanceof ItemFood) { - food.with(item); - } - - try { - LinkedList subItems = new LinkedList(); - item.getSubItems(item, null, subItems); - for (ItemStack stack : subItems) { - if (item.isPotionIngredient(stack)) { - BrewingRecipeHandler.ingredients.add(stack); - potioningredients.add(stack); - } - } - - } catch (Exception e) { - NEIClientConfig.logger.error("Error loading brewing ingredients for: " + item, e); - } - } - API.addSubset("Items.Tools.Pickaxes", picks); - API.addSubset("Items.Tools.Shovels", shovels); - API.addSubset("Items.Tools.Axes", axes); - API.addSubset("Items.Tools.Hoes", hoes); - API.addSubset("Items.Tools.Other", other); - API.addSubset("Items.Weapons.Swords", swords); - API.addSubset("Items.Weapons.Ranged", ranged); - API.addSubset("Items.Armor.ChestPlates", chest); - API.addSubset("Items.Armor.Leggings", legs); - API.addSubset("Items.Armor.Helmets", helmets); - API.addSubset("Items.Armor.Boots", boots); - API.addSubset("Items.Food", food); - API.addSubset("Items.Potions.Ingredients", potioningredients); - - for (CreativeTabs tab : CreativeTabs.creativeTabArray) { - if (tab.getTabIndex() >= creativeTabRanges.size()) { - continue; - } - ItemStackSet set = creativeTabRanges.get(tab.getTabIndex()); - if (set != null && !set.isEmpty()) { - API.addSubset("CreativeTabs." + I18n.format(tab.getTranslatedTabLabel()), set); - } - } - - BrewingRecipeHandler.searchPotions(); - } - - private static void addSpawnEggs() { - addEntityEgg(EntitySnowman.class, 0xEEFFFF, 0xffa221); - addEntityEgg(EntityIronGolem.class, 0xC5C2C1, 0xffe1cc); - } - - private static void addEntityEgg(Class entity, int i, int j) { - int id = (Integer) EntityList.classToIDMapping.get(entity); - EntityList.entityEggs.put(id, new EntityEggInfo(id, i, j)); - } - - public static ArrayList getIdentifierItems(World world, EntityPlayer player, MovingObjectPosition hit) { - BlockPos pos = hit.getBlockPos(); - IBlockState state = world.getBlockState(pos); - Block block = state.getBlock(); - - ArrayList items = new ArrayList(); - - ArrayList handlers = new ArrayList(); - if (highlightIdentifiers.containsKey(null)) { - handlers.addAll(highlightIdentifiers.get(null)); - } - if (highlightIdentifiers.containsKey(block)) { - handlers.addAll(highlightIdentifiers.get(block)); - } - for (IHighlightHandler ident : handlers) { - ItemStack item = ident.identifyHighlight(world, player, hit); - if (item != null) { - items.add(item); - } - } - - if (items.size() > 0) { - return items; - } - - ItemStack pick = block.getPickBlock(hit, world, pos); - if (pick != null) { - items.add(pick); - } - - try { - items.addAll(block.getDrops(world, pos, state, 0)); - } catch (Exception ignored) { - } - if (block instanceof IShearable) { - IShearable shearable = (IShearable) block; - if (shearable.isShearable(new ItemStack(Items.shears), world, pos)) { - items.addAll(shearable.onSheared(new ItemStack(Items.shears), world, pos, 0)); - } - } - - if (items.size() == 0) { - items.add(0, new ItemStack(block, 1, block.getMetaFromState(state))); - } - - return items; - } - - public static void registerHighlightHandler(IHighlightHandler handler, ItemInfo.Layout... layouts) { - for (ItemInfo.Layout layout : layouts) { - ItemInfo.highlightHandlers.get(layout).add(handler); - } - } - - public static List getText(ItemStack itemStack, World world, EntityPlayer player, MovingObjectPosition mop) { - List retString = new ArrayList(); - - for (ItemInfo.Layout layout : ItemInfo.Layout.values()) { - for (IHighlightHandler handler : ItemInfo.highlightHandlers.get(layout)) { - retString = handler.handleTextData(itemStack, world, player, mop, retString, layout); - } - } - - return retString; - } - - public static String getSearchName(ItemStack stack) { - String s = itemSearchNames.get(stack); - if (s == null) { - s = EnumChatFormatting.getTextWithoutFormattingCodes(GuiContainerManager.concatenatedDisplayName(stack, true).toLowerCase()); - itemSearchNames.put(stack, s); - } - return s; - } -} diff --git a/dependencies/main/java/codechicken/nei/api/LayoutStyle.java b/dependencies/main/java/codechicken/nei/api/LayoutStyle.java deleted file mode 100644 index a43b932a5d..0000000000 --- a/dependencies/main/java/codechicken/nei/api/LayoutStyle.java +++ /dev/null @@ -1,23 +0,0 @@ -package codechicken.nei.api; - -import codechicken.nei.Button; -import codechicken.nei.VisiblityData; -import codechicken.nei.guihook.GuiContainerManager; -import net.minecraft.client.gui.inventory.GuiContainer; - -public abstract class LayoutStyle { - public abstract void init(); - - public abstract void reset(); - - public abstract void layout(GuiContainer gui, VisiblityData visibility); - - public abstract String getName(); - - public void drawBackground(GuiContainerManager gui) { - } - - public abstract void drawButton(Button button, int mousex, int mousey); - - public abstract void drawSubsetTag(String text, int x, int y, int w, int h, int state, boolean mouseover); -} diff --git a/dependencies/main/java/codechicken/nei/api/NEIInfo.java b/dependencies/main/java/codechicken/nei/api/NEIInfo.java deleted file mode 100644 index a1c3ee44de..0000000000 --- a/dependencies/main/java/codechicken/nei/api/NEIInfo.java +++ /dev/null @@ -1,30 +0,0 @@ -package codechicken.nei.api; - -import codechicken.nei.NEIClientConfig; -import codechicken.nei.config.OptionCycled; -import net.minecraft.world.World; - -import java.util.LinkedList; - -public class NEIInfo { - public static final LinkedList modeHandlers = new LinkedList(); - - public static void load(World world) { - OptionCycled modeOption = (OptionCycled) NEIClientConfig.getOptionList().getOption("inventory.cheatmode"); - modeOption.parent.synthesizeEnvironment(false); - if (!modeOption.optionValid(modeOption.value())) { - modeOption.copyGlobals(); - modeOption.cycle(); - } - } - - public static boolean isValidMode(int mode) { - for (INEIModeHandler handler : modeHandlers) { - if (!handler.isModeValid(mode)) { - return false; - } - } - - return true; - } -} diff --git a/dependencies/main/java/codechicken/nei/api/TaggedInventoryArea.java b/dependencies/main/java/codechicken/nei/api/TaggedInventoryArea.java deleted file mode 100644 index 326950c688..0000000000 --- a/dependencies/main/java/codechicken/nei/api/TaggedInventoryArea.java +++ /dev/null @@ -1,45 +0,0 @@ -package codechicken.nei.api; - -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.ItemStack; - -import java.util.HashSet; - -public class TaggedInventoryArea { - public HashSet slots = new HashSet(); - public String tagName; - /** - * Only for player inventories. - */ - private IInventory inventory; - /** - * Other inventories - */ - private Container container; - - public TaggedInventoryArea(InventoryPlayer invPlayer) { - this("InventoryPlayer", 0, 39, null); - inventory = invPlayer; - } - - public TaggedInventoryArea(String name, int first, int last, Container container) { - this.container = container; - tagName = name; - for (int i = first; i <= last; i++) { - slots.add(i); - } - } - - public ItemStack getStackInSlot(int i) { - if (inventory != null) { - return inventory.getStackInSlot(i); - } - return container.getSlot(i).getStack(); - } - - public boolean isContainer() { - return inventory == null; - } -} diff --git a/dependencies/main/java/codechicken/nei/asm/NEICorePlugin.java b/dependencies/main/java/codechicken/nei/asm/NEICorePlugin.java deleted file mode 100644 index e0bb54bab4..0000000000 --- a/dependencies/main/java/codechicken/nei/asm/NEICorePlugin.java +++ /dev/null @@ -1,48 +0,0 @@ -package codechicken.nei.asm; - -import codechicken.core.launch.CodeChickenCorePlugin; -import net.minecraftforge.fml.relauncher.IFMLCallHook; -import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; -import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin.TransformerExclusions; - -import java.io.File; -import java.util.Map; - -@TransformerExclusions({ "codechicken.nei.asm" }) -public class NEICorePlugin implements IFMLLoadingPlugin, IFMLCallHook { - public static File location; - - @Override - public String[] getASMTransformerClass() { - CodeChickenCorePlugin.versionCheck(CodeChickenCorePlugin.mcVersion, "NotEnoughItems"); - return new String[] { "codechicken.nei.asm.NEITransformer" }; - } - - @Override - public String getModContainerClass() { - return "codechicken.nei.NEIModContainer"; - } - - @Override - public String getSetupClass() { - return "codechicken.nei.asm.NEICorePlugin"; - } - - @Override - public void injectData(Map data) { - location = (File) data.get("coremodLocation"); - if (location == null) { - location = new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath()); - } - } - - @Override - public String getAccessTransformerClass() { - return null; - } - - @Override - public Void call() { - return null; - } -} diff --git a/dependencies/main/java/codechicken/nei/asm/NEITransformer.java b/dependencies/main/java/codechicken/nei/asm/NEITransformer.java deleted file mode 100644 index 7d6a7d4f0e..0000000000 --- a/dependencies/main/java/codechicken/nei/asm/NEITransformer.java +++ /dev/null @@ -1,224 +0,0 @@ -package codechicken.nei.asm; - -import codechicken.lib.asm.*; -import codechicken.lib.asm.ModularASMTransformer.*; -import net.minecraft.launchwrapper.IClassTransformer; -import net.minecraftforge.fml.relauncher.FMLLaunchHandler; -import org.objectweb.asm.Type; -import org.objectweb.asm.tree.*; - -import java.util.Map; - -import static codechicken.lib.asm.InsnComparator.*; -import static org.objectweb.asm.ClassWriter.COMPUTE_FRAMES; -import static org.objectweb.asm.ClassWriter.COMPUTE_MAXS; -import static org.objectweb.asm.Opcodes.*; - -public class NEITransformer implements IClassTransformer { - private ModularASMTransformer transformer = new ModularASMTransformer(); - private Map asmblocks = ASMReader.loadResource("/assets/nei/asm/blocks.asm"); - - public NEITransformer() { - if (FMLLaunchHandler.side().isClient()) { - //Generates method to set the placed position of a mob spawner for the item callback. More portable than copying vanilla placement code - transformer.add(new MethodWriter(ACC_PUBLIC, new ObfMapping("net/minecraft/block/BlockMobSpawner", "func_180633_a", "(Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;)V"), asmblocks.get("spawnerPlaced"))); - } - - //Removes trailing seperators from NBTTagList/Compound.toString because OCD - //TODO - //transformer.add(new MethodInjector(new ObfMapping("net/minecraft/nbt/NBTTagCompound", "toString", "()Ljava/lang/String;"), asmblocks.get("n_commaFix"), asmblocks.get("commaFix"), true)); - //transformer.add(new MethodInjector(new ObfMapping("net/minecraft/nbt/NBTTagList", "toString", "()Ljava/lang/String;"), asmblocks.get("n_commaFix"), asmblocks.get("commaFix"), true)); - - //fix workbench container losing items on shift click output without room for the full stack - transformer.add(new MethodTransformer(new ObfMapping("net/minecraft/inventory/ContainerWorkbench", "func_82846_b", "(Lnet/minecraft/entity/player/EntityPlayer;I)Lnet/minecraft/item/ItemStack;")) { - @Override - public void transform(MethodNode mv) { - ASMHelper.logger.debug("NEI: Applying workbench fix"); - InsnListSection key = findN(mv.instructions, asmblocks.get("n_workbenchFix").list).get(0); - key.insertBefore(asmblocks.get("workbenchFix").rawListCopy()); - } - }); - - String GuiContainer = "net/minecraft/client/gui/inventory/GuiContainer"; - //add manager field - transformer.add(new FieldWriter(ACC_PUBLIC, new ObfMapping(GuiContainer, "manager", "Lcodechicken/nei/guihook/GuiContainerManager;"))); - - //Fill out getManager in GuiContainerManager - transformer.add(new MethodWriter(ACC_PUBLIC | ACC_STATIC, new ObfMapping("codechicken/nei/guihook/GuiContainerManager", "getManager", "(Lnet/minecraft/client/gui/inventory/GuiContainer;)Lcodechicken/nei/guihook/GuiContainerManager;"), asmblocks.get("m_getManager"))); - - //Generate load method - transformer.add(new MethodWriter(ACC_PUBLIC, new ObfMapping(GuiContainer, "func_146280_a", "(Lnet/minecraft/client/Minecraft;II)V"), asmblocks.get("m_setWorldAndResolution"))); - - //Generate handleKeyboardInput method - transformer.add(new MethodWriter(ACC_PUBLIC, new ObfMapping(GuiContainer, "func_146282_l", "()V"), asmblocks.get("m_handleKeyboardInput"))); - - //Generate handleKeyboardInput method - transformer.add(new MethodWriter(ACC_PUBLIC, new ObfMapping(GuiContainer, "func_146282_l", "()V"), asmblocks.get("m_handleKeyboardInput"))); - - //Generate handleKeyboardInput method - transformer.add(new MethodWriter(ACC_PUBLIC, new ObfMapping(GuiContainer, "func_146282_l", "()V"), asmblocks.get("m_handleKeyboardInput"))); - - //Generate handleMouseInput method - transformer.add(new MethodWriter(ACC_PUBLIC, new ObfMapping(GuiContainer, "func_146274_d", "()V"), asmblocks.get("m_handleMouseInput"))); - - addProtectedForwarder(new ObfMapping(GuiContainer, "func_73869_a", "(CI)V"), new ObfMapping("codechicken/nei/guihook/GuiContainerManager", "callKeyTyped", "(Lnet/minecraft/client/gui/inventory/GuiContainer;CI)V")); - - addProtectedForwarder(new ObfMapping(GuiContainer, "func_146984_a", "(Lnet/minecraft/inventory/Slot;III)V"), new ObfMapping("codechicken/nei/guihook/DefaultSlotClickHandler", "callHandleMouseClick", "(Lnet/minecraft/client/gui/inventory/GuiContainer;Lnet/minecraft/inventory/Slot;III)V")); - - //Inject preDraw at the start of drawScreen - transformer.add(new MethodInjector(new ObfMapping(GuiContainer, "func_73863_a", "(IIF)V"), asmblocks.get("preDraw"), true)); - - //Inject objectUnderMouse check before drawing slot highlights - transformer.add(new MethodInjector(new ObfMapping(GuiContainer, "func_73863_a", "(IIF)V"), asmblocks.get("n_objectUnderMouse"), asmblocks.get("objectUnderMouse"), false)); - - //Inject renderObjects after drawGuiContainerForegroundLayer - transformer.add(new MethodInjector(new ObfMapping(GuiContainer, "func_73863_a", "(IIF)V"), asmblocks.get("n_renderObjects"), asmblocks.get("renderObjects"), false)); - - //Replace default renderToolTip with delegate - transformer.add(new MethodReplacer(new ObfMapping(GuiContainer, "func_73863_a", "(IIF)V"), asmblocks.get("d_renderToolTip"), asmblocks.get("renderTooltips"))); - - //Replace zLevel = 200 with zLevel = 500 in drawItemStack - transformer.add(new MethodReplacer(new ObfMapping(GuiContainer, "func_146982_a", "(Lnet/minecraft/item/ItemStack;IILjava/lang/String;)V"), asmblocks.get("d_zLevel"), asmblocks.get("zLevel"))); - - //Replace default renderItem with delegate and slot overlay/underlay - transformer.add(new MethodReplacer(new ObfMapping(GuiContainer, "func_146977_a", "(Lnet/minecraft/inventory/Slot;)V"), asmblocks.get("d_drawSlot"), asmblocks.get("drawSlot"))); - - //Inject mouseClicked hook at the start of mouseClicked - transformer.add(new MethodInjector(new ObfMapping(GuiContainer, "func_73864_a", "(III)V"), asmblocks.get("mouseClicked"), true)); - - //Replace general handleMouseClicked call with delegate - transformer.add(new MethodReplacer(new ObfMapping(GuiContainer, "func_73864_a", "(III)V"), asmblocks.get("d_handleMouseClick"), asmblocks.get("handleMouseClick")));//mouseClicked - transformer.add(new MethodReplacer(new ObfMapping(GuiContainer, "func_146273_a", "(IIIJ)V"), asmblocks.get("d_handleMouseClick"), asmblocks.get("handleMouseClick")));//mouseClickMove - transformer.add(new MethodReplacer(new ObfMapping(GuiContainer, "func_146286_b", "(III)V"), asmblocks.get("d_handleMouseClick"), asmblocks.get("handleMouseClick")));//mouseReleased - transformer.add(new MethodReplacer(new ObfMapping(GuiContainer, "func_73869_a", "(CI)V"), asmblocks.get("d_handleMouseClick"), asmblocks.get("handleMouseClick")));//keyTyped - transformer.add(new MethodReplacer(new ObfMapping(GuiContainer, "func_146983_a", "(I)Z"), asmblocks.get("d_handleMouseClick"), asmblocks.get("handleMouseClick")));//checkHotbarKeys - - //Write delegate for handleMouseClicked - transformer.add(new MethodWriter(ACC_PUBLIC, new ObfMapping(GuiContainer, "managerHandleMouseClick", "(Lnet/minecraft/inventory/Slot;III)V"), asmblocks.get("m_managerHandleMouseClick"))); - - //Inject mouseDragged hook after super call in mouseDragged - transformer.add(new MethodInjector(new ObfMapping(GuiContainer, "func_146273_a", "(IIIJ)V"), asmblocks.get("n_mouseDragged"), asmblocks.get("mouseDragged"), false)); - - //Inject overrideMouseUp at the start of mouseReleased - transformer.add(new MethodInjector(new ObfMapping(GuiContainer, "func_146286_b", "(III)V"), asmblocks.get("overrideMouseUp"), true)); - - //Inject mouseUp at the end of main elseif chain in mouseReleased - transformer.add(new MethodTransformer(new ObfMapping(GuiContainer, "func_146286_b", "(III)V")) { - @Override - public void transform(MethodNode mv) { - ASMHelper.logger.debug("NEI: Injecting mouseUp call"); - ASMBlock gotoBlock = asmblocks.get("n_mouseUpGoto"); - ASMBlock needleBlock = asmblocks.get("n_mouseUp"); - ASMBlock injectionBlock = asmblocks.get("mouseUp"); - - gotoBlock.mergeLabels(injectionBlock); - findOnce(mv.instructions, gotoBlock.list).replace(gotoBlock.list.list); - - InsnListSection needle = findOnce(mv.instructions, needleBlock.list); - injectionBlock.mergeLabels(needleBlock.applyLabels(needle)); - needle.insertBefore(injectionBlock.list.list); - } - }); - - //Replace general handleSlotClick call with delegate - transformer.add(new MethodReplacer(new ObfMapping(GuiContainer, "func_146984_a", "(Lnet/minecraft/inventory/Slot;III)V"), asmblocks.get("d_handleSlotClick"), asmblocks.get("handleSlotClick"))); - - //Inject lastKeyTyped at the start of keyTyped - transformer.add(new MethodInjector(new ObfMapping(GuiContainer, "func_73869_a", "(CI)V"), asmblocks.get("lastKeyTyped"), true)); - - //Inject updateScreen hook after super call - transformer.add(new MethodInjector(new ObfMapping(GuiContainer, "func_73876_c", "()V"), asmblocks.get("n_updateScreen"), asmblocks.get("updateScreen"), false)); - - //Cancel tab click calls when tabs are obscured - transformer.add(new MethodInjector(new ObfMapping("net/minecraft/client/gui/inventory/GuiContainerCreative", "func_147049_a", "(Lnet/minecraft/creativetab/CreativeTabs;II)Z"), asmblocks.get("handleTabClick"), true)); - - //Cancel tab tooltip rendering when tabs are obscured - transformer.add(new MethodInjector(new ObfMapping("net/minecraft/client/gui/inventory/GuiContainerCreative", "func_147052_b", "(Lnet/minecraft/creativetab/CreativeTabs;II)Z"), asmblocks.get("renderTabTooltip"), true)); - - String[] buttons = new String[] { "CancelButton", "ConfirmButton", "PowerButton" }; - String[] this_fields = new String[] { "field_146146_o", "field_146147_o", "field_146150_o" }; - for (int i = 0; i < 3; i++) { - ObfMapping m = new ObfMapping("net/minecraft/client/gui/inventory/GuiBeacon$" + buttons[i], "func_146111_b", "(II)V"); - InsnListSection l = asmblocks.get("beaconButtonObscured").list.copy(); - FieldInsnNode this_ref = ((FieldInsnNode) l.get(1)); - this_ref.owner = m.toClassloading().s_owner; - if (ObfMapping.obfuscated) //missing srg mappings for inner outer reference fields - { - this_ref.name = ObfMapping.obfMapper.mapFieldName(null, this_fields[i], null); - } - transformer.add(new MethodInjector(m, l.list, true)); - } - } - - private void addProtectedForwarder(ObfMapping called, ObfMapping caller) { - - InsnList forward1 = new InsnList(); - InsnList forward2 = new InsnList(); - - ObfMapping publicCall = new ObfMapping(called.s_owner, "public_" + called.s_name, called.s_desc); - Type[] args = Type.getArgumentTypes(caller.s_desc); - for (int i = 0; i < args.length; i++) { - forward1.add(new VarInsnNode(args[i].getOpcode(ILOAD), i)); - forward2.add(new VarInsnNode(args[i].getOpcode(ILOAD), i)); - } - - forward1.add(publicCall.toInsn(INVOKEVIRTUAL)); - forward2.add(called.toClassloading().toInsn(INVOKEVIRTUAL)); - forward1.add(new InsnNode(Type.getReturnType(called.s_desc).getOpcode(IRETURN))); - forward2.add(new InsnNode(Type.getReturnType(called.s_desc).getOpcode(IRETURN))); - - transformer.add(new MethodWriter(ACC_PUBLIC | ACC_STATIC, caller, forward1)); - transformer.add(new MethodWriter(ACC_PUBLIC, publicCall, forward2)); - } - - private ObfMapping c_GuiContainer = new ObfMapping("net/minecraft/client/gui/inventory/GuiContainer").toClassloading(); - - /** - * Adds super.updateScreen() to non implementing GuiContainer subclasses - */ - public byte[] transformSubclasses(String name, byte[] bytes) { - if (ClassHeirachyManager.classExtends(name, c_GuiContainer.javaClass())) { - ClassNode cnode = ASMHelper.createClassNode(bytes); - - ObfMapping methodmap = new ObfMapping(cnode.superName, "func_73876_c", "()V").toClassloading(); - - InsnListSection supercall = new InsnListSection(); - supercall.add(new VarInsnNode(ALOAD, 0)); - supercall.add(methodmap.toInsn(INVOKESPECIAL)); - - boolean changed = false; - for (MethodNode mv : cnode.methods) { - if (methodmap.matches(mv)) { - if (matches(new InsnListSection(mv.instructions), supercall, getControlFlowLabels(mv.instructions)) == null) { - mv.instructions.insert(supercall.list); - ASMHelper.logger.debug("Inserted super call into " + methodmap); - changed = true; - } - } - } - - if (changed) { - bytes = ASMHelper.createBytes(cnode, COMPUTE_MAXS | COMPUTE_FRAMES); - } - } - return bytes; - } - - @Override - public byte[] transform(String name, String tname, byte[] bytes) { - if (bytes == null) { - return null; - } - try { - if (FMLLaunchHandler.side().isClient()) { - bytes = transformSubclasses(name, bytes); - } - - bytes = transformer.transform(name, bytes); - } catch (Exception e) { - throw new RuntimeException(e); - } - - return bytes; - } -} diff --git a/dependencies/main/java/codechicken/nei/config/ArrayDumper.java b/dependencies/main/java/codechicken/nei/config/ArrayDumper.java deleted file mode 100644 index 0388d1da17..0000000000 --- a/dependencies/main/java/codechicken/nei/config/ArrayDumper.java +++ /dev/null @@ -1,32 +0,0 @@ -package codechicken.nei.config; - -import java.util.LinkedList; - -public abstract class ArrayDumper extends DataDumper { - public ArrayDumper(String name) { - super(name); - } - - @Override - public Iterable dump(int mode) { - LinkedList list = new LinkedList(); - T[] array = array(); - for (int i = 0; i < array.length; i++) { - T obj = array[i]; - if (obj == null) { - if (mode == 1 || mode == 2) { - list.add(new String[] { Integer.toString(i), null, null, null, null }); - } - } else { - if (mode == 0 || mode == 2) { - list.add(dump(obj, i)); - } - } - } - return list; - } - - public abstract T[] array(); - - public abstract String[] dump(T obj, int id); -} \ No newline at end of file diff --git a/dependencies/main/java/codechicken/nei/config/ConfigSet.java b/dependencies/main/java/codechicken/nei/config/ConfigSet.java deleted file mode 100644 index 184f1b4b19..0000000000 --- a/dependencies/main/java/codechicken/nei/config/ConfigSet.java +++ /dev/null @@ -1,44 +0,0 @@ -package codechicken.nei.config; - -import codechicken.lib.config.ConfigTagParent; -import codechicken.nei.NEIServerUtils; -import net.minecraft.nbt.NBTTagCompound; - -import java.io.File; - -public class ConfigSet { - private File nbtFile; - public NBTTagCompound nbt; - public ConfigTagParent config; - - public ConfigSet(File nbtFile, ConfigTagParent config) { - this.nbtFile = nbtFile; - this.config = config; - loadNBT(); - } - - public void loadNBT() { - nbt = new NBTTagCompound(); - try { - if (!nbtFile.getParentFile().exists()) { - nbtFile.getParentFile().mkdirs(); - } - if (!nbtFile.exists()) { - nbtFile.createNewFile(); - } - if (nbtFile.length() > 0) { - nbt = NEIServerUtils.readNBT(nbtFile); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void saveNBT() { - try { - NEIServerUtils.writeNBT(nbt, nbtFile); - } catch (Exception e) { - e.printStackTrace(); - } - } -} diff --git a/dependencies/main/java/codechicken/nei/config/DataDumper.java b/dependencies/main/java/codechicken/nei/config/DataDumper.java deleted file mode 100644 index b6aac753fb..0000000000 --- a/dependencies/main/java/codechicken/nei/config/DataDumper.java +++ /dev/null @@ -1,153 +0,0 @@ -package codechicken.nei.config; - -import codechicken.core.CommonUtils; -import codechicken.lib.vec.Rectangle4i; -import codechicken.nei.LayoutManager; -import codechicken.nei.NEIClientConfig; -import codechicken.nei.NEIClientUtils; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.util.ChatComponentTranslation; -import net.minecraft.util.IChatComponent; - -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; - -import static codechicken.lib.gui.GuiDraw.drawString; -import static codechicken.lib.gui.GuiDraw.drawStringC; - -public abstract class DataDumper extends Option { - public DataDumper(String name) { - super(name); - } - - public abstract String[] header(); - - public abstract Iterable dump(int mode); - - public String renderName() { - return translateN(name + "s"); - } - - public void dumpFile() { - try { - File file = new File(CommonUtils.getMinecraftDir(), "dumps/" + getFileName(name.replaceFirst(".+\\.", ""))); - if (!file.getParentFile().exists()) { - file.getParentFile().mkdirs(); - } - if (!file.exists()) { - file.createNewFile(); - } - - dumpTo(file); - - NEIClientUtils.printChatMessage(dumpMessage(file)); - } catch (Exception e) { - NEIClientConfig.logger.error("Error dumping " + renderName() + " mode: " + getMode(), e); - } - } - - public String getFileName(String prefix) { - return prefix + getFileExtension(); - } - - public String getFileExtension() { - return ".csv"; - } - - public IChatComponent dumpMessage(File file) { - return new ChatComponentTranslation("nei.options.tools.dump.dumped", translateN(name), "dumps/" + file.getName()); - } - - public void dumpTo(File file) throws IOException { - int mode = getMode(); - PrintWriter w = new PrintWriter(file); - w.println(concat(header())); - for (String[] line : dump(mode)) { - w.println(concat(line)); - } - w.close(); - } - - public static String concat(String[] header) { - StringBuilder sb = new StringBuilder(); - for (String s : header) { - if (sb.length() > 0) { - sb.append(','); - } - if (s == null) { - s = "null"; - } - if (s.indexOf(',') > 0 || s.indexOf('\"') > 0) { - s = '\"' + s.replace("\"", "\"\"") + '\"'; - } - sb.append(s); - } - return sb.toString(); - } - - @Override - public void draw(int mousex, int mousey, float frame) { - drawPrefix(); - if (modeCount() > 1) { - drawButton(mousex, mousey, modeButtonSize(), modeButtonText()); - } - drawButton(mousex, mousey, dumpButtonSize(), dumpButtonText()); - } - - public void drawPrefix() { - drawString(renderName(), 10, 6, -1); - } - - public Rectangle4i dumpButtonSize() { - int width = 80; - return new Rectangle4i(slot.slotWidth() - width, 0, width, 20); - } - - public Rectangle4i modeButtonSize() { - int width = 60; - return new Rectangle4i(dumpButtonSize().x - width - 6, 0, width, 20); - } - - public String dumpButtonText() { - return NEIClientUtils.lang.translate("options.tools.dump.dump"); - } - - public String modeButtonText() { - return NEIClientUtils.lang.translate("options.tools.dump.mode." + getMode()); - } - - public int getMode() { - return renderTag().getIntValue(0); - } - - public void drawButton(int mousex, int mousey, Rectangle4i b, String text) { - GlStateManager.color(1, 1, 1, 1); - boolean hover = b.contains(mousex, mousey); - LayoutManager.drawButtonBackground(b.x, b.y, b.w, b.h, true, getButtonTex(hover)); - drawStringC(text, b.x, b.y, b.w, b.h, getTextColour(hover)); - } - - public int getButtonTex(boolean hover) { - return hover ? 2 : 1; - } - - public int getTextColour(boolean hover) { - return hover ? 0xFFFFFFA0 : 0xFFE0E0E0; - } - - @Override - public void mouseClicked(int mousex, int mousey, int button) { - if (modeCount() > 1 && modeButtonSize().contains(mousex, mousey)) { - NEIClientUtils.playClickSound(); - getTag().setIntValue((getMode() + 1) % modeCount()); - } else if (dumpButtonSize().contains(mousex, mousey)) { - NEIClientUtils.playClickSound(); - dumpFile(); - } - } - - public int modeCount() { - return 3; - } -} diff --git a/dependencies/main/java/codechicken/nei/config/GuiHighlightTips.java b/dependencies/main/java/codechicken/nei/config/GuiHighlightTips.java deleted file mode 100644 index 862dd50b8d..0000000000 --- a/dependencies/main/java/codechicken/nei/config/GuiHighlightTips.java +++ /dev/null @@ -1,151 +0,0 @@ -package codechicken.nei.config; - -import codechicken.core.gui.GuiCCButton; -import codechicken.core.gui.GuiScreenWidget; -import codechicken.lib.math.MathHelper; -import codechicken.lib.vec.Rectangle4i; -import codechicken.nei.HUDRenderer; -import codechicken.nei.NEIClientUtils; -import net.minecraft.client.Minecraft; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.util.EnumChatFormatting; -import org.lwjgl.input.Keyboard; - -import java.awt.*; -import java.io.IOException; -import java.util.Arrays; - -import static codechicken.lib.gui.GuiDraw.displaySize; -import static codechicken.lib.gui.GuiDraw.getMousePosition; - -public class GuiHighlightTips extends GuiScreenWidget { - private String name; - private GuiCCButton toggleButton; - private Option opt; - private Point dragDown; - - public GuiHighlightTips(Option opt) { - super(80, 20); - this.opt = opt; - name = opt.name; - } - - @Override - public boolean doesGuiPauseGame() { - return true; - } - - public void addWidgets() { - add(toggleButton = new GuiCCButton(0, 0, 80, 20, "").setActionCommand("show")); - updateNames(); - } - - @Override - public void actionPerformed(String ident, Object... params) { - if (ident.equals("show")) { - opt.getTag(name).setBooleanValue(!show()); - updateNames(); - } - } - - private void updateNames() { - toggleButton.text = NEIClientUtils.translate("options." + name + "." + (show() ? "show" : "hide")); - } - - private boolean show() { - return opt.renderTag(name).getBooleanValue(); - } - - @Override - public void keyTyped(char c, int keycode) throws IOException { - if (keycode == Keyboard.KEY_ESCAPE || keycode == Keyboard.KEY_BACK) { - Minecraft.getMinecraft().displayGuiScreen(opt.slot.getGui()); - return; - } - super.keyTyped(c, keycode); - } - - @Override - public void drawScreen(int mousex, int mousey, float f) { - super.drawScreen(mousex, mousey, f); - if (show()) { - HUDRenderer.renderOverlay(new ItemStack(Blocks.redstone_block), Arrays.asList("RedstoneBlock", EnumChatFormatting.RED + "Sample"), renderPos()); - } - } - - public Point getPos() { - return new Point(opt.renderTag(name + ".x").getIntValue(), opt.renderTag(name + ".y").getIntValue()); - } - - public Dimension sampleSize()//copied from HUDManager when running with the sample for this gui - { - return new Dimension(101, 30); - } - - public Point getDrag() { - Point mouse = getMousePosition(); - Point drag = new Point(mouse.x - dragDown.x, mouse.y - dragDown.y); - Dimension size = displaySize(); - Dimension sample = sampleSize(); - drag.x *= 10000; - drag.y *= 10000; - drag.x /= (size.width - sample.width); - drag.y /= (size.height - sample.height); - Point pos = getPos(); - drag.x = (int) MathHelper.clip(drag.x, -pos.x, 10000 - pos.x); - drag.y = (int) MathHelper.clip(drag.y, -pos.y, 10000 - pos.y); - return drag; - } - - public Point renderPos() { - Point pos = getPos(); - if (dragDown != null) { - Point drag = getDrag(); - pos.x += drag.x; - pos.y += drag.y; - } - - for (int i = 25; i < 100; i += 25)//snapping - { - if (pos.x / 100 == i) { - pos.x = i * 100; - } - if (pos.y / 100 == i) { - pos.y = i * 100; - } - } - - return pos; - } - - @Override - protected void mouseReleased(int x, int y, int button) { - if (button == 0 && dragDown != null) { - setPos(renderPos()); - dragDown = null; - } - } - - public Rectangle4i selectionBox() { - Point pos = renderPos(); - Dimension size = displaySize(); - Dimension rect = sampleSize(); - return new Rectangle4i((size.width - rect.width) * pos.x / 10000, (size.height - rect.height) * pos.y / 10000, rect.width, rect.height); - } - - @Override - protected void mouseClicked(int x, int y, int button) throws IOException { - if (button == 0 && selectionBox().contains(x, y)) { - dragDown = getMousePosition(); - } else { - super.mouseClicked(x, y, button); - } - } - - private void setPos(Point p) { - opt.getTag(name).setBooleanValue(show());//duplicates global tag for the option gui if in world mode - opt.getTag(name + ".x").setIntValue(p.x); - opt.getTag(name + ".y").setIntValue(p.y); - } -} diff --git a/dependencies/main/java/codechicken/nei/config/GuiItemIconDumper.java b/dependencies/main/java/codechicken/nei/config/GuiItemIconDumper.java deleted file mode 100644 index b2f735f63c..0000000000 --- a/dependencies/main/java/codechicken/nei/config/GuiItemIconDumper.java +++ /dev/null @@ -1,202 +0,0 @@ -package codechicken.nei.config; - -import codechicken.core.CommonUtils; -import codechicken.lib.gui.GuiDraw; -import codechicken.nei.ItemPanel; -import codechicken.nei.NEIClientConfig; -import codechicken.nei.NEIClientUtils; -import codechicken.nei.guihook.GuiContainerManager; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.texture.TextureUtil; -import net.minecraft.client.shader.Framebuffer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentTranslation; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.IChatComponent; -import org.lwjgl.BufferUtils; -import org.lwjgl.input.Keyboard; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - -import javax.imageio.ImageIO; -import java.awt.*; -import java.awt.image.BufferedImage; -import java.io.File; -import java.io.IOException; -import java.nio.IntBuffer; -import java.util.Arrays; - -public class GuiItemIconDumper extends GuiScreen { - final static int[] illegalChars = { 34, 60, 62, 124, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 58, 42, 63, 92, 47 }; - - static { - Arrays.sort(illegalChars); - } - - private Option opt; - private int drawIndex; - private int parseIndex; - private File dir = new File(CommonUtils.getMinecraftDir(), "dumps/itempanel_icons"); - private int iconSize; - private int borderSize; - private int boxSize; - - public GuiItemIconDumper(Option opt, int iconSize) { - this.opt = opt; - this.iconSize = iconSize; - borderSize = iconSize / 16; - boxSize = iconSize + borderSize * 2; - - if (dir.exists()) { - for (File f : dir.listFiles()) { - if (f.isFile()) { - f.delete(); - } - } - } else { - dir.mkdirs(); - } - - } - - private void returnScreen(IChatComponent msg) { - Minecraft.getMinecraft().displayGuiScreen(opt.slot.getGui()); - NEIClientUtils.printChatMessage(msg); - } - - @Override - protected void keyTyped(char c, int keycode) throws IOException { - if (keycode == Keyboard.KEY_ESCAPE || keycode == Keyboard.KEY_BACK) { - returnScreen(new ChatComponentTranslation(opt.fullName() + ".icon.cancelled")); - return; - } - super.keyTyped(c, keycode); - } - - @Override - public void drawScreen(int mousex, int mousey, float frame) { - try { - drawItems(); - exportItems(); - } catch (Exception e) { - NEIClientConfig.logger.error("Error dumping item icons", e); - } - } - - private void drawItems() { - Dimension d = GuiDraw.displayRes(); - - GlStateManager.matrixMode(GL11.GL_PROJECTION); - GlStateManager.loadIdentity(); - GlStateManager.ortho(0, d.width * 16D / iconSize, d.height * 16D / iconSize, 0, 1000, 3000); - GlStateManager.matrixMode(GL11.GL_MODELVIEW); - GlStateManager.clearColor(0, 0, 0, 0); - GlStateManager.clear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); - - int rows = d.height / boxSize; - int cols = d.width / boxSize; - int fit = rows * cols; - - RenderHelper.enableGUIStandardItemLighting(); - GlStateManager.enableRescaleNormal(); - GlStateManager.color(1, 1, 1, 1); - - for (int i = 0; drawIndex < ItemPanel.items.size() && i < fit; drawIndex++, i++) { - int x = i % cols * 18; - int y = i / cols * 18; - GuiContainerManager.drawItem(x + 1, y + 1, ItemPanel.items.get(drawIndex)); - } - - GL11.glFlush(); - } - - private void exportItems() throws IOException { - BufferedImage img = screenshot(); - int rows = img.getHeight() / boxSize; - int cols = img.getWidth() / boxSize; - int fit = rows * cols; - for (int i = 0; parseIndex < ItemPanel.items.size() && i < fit; parseIndex++, i++) { - int x = i % cols * boxSize; - int y = i / cols * boxSize; - exportImage(dir, img.getSubimage(x + borderSize, y + borderSize, iconSize, iconSize), ItemPanel.items.get(parseIndex)); - } - - if (parseIndex >= ItemPanel.items.size()) { - returnScreen(new ChatComponentTranslation(opt.fullName() + ".icon.dumped", "dumps/itempanel_icons")); - } - } - - public static String cleanFileName(String name) { - StringBuilder cleanName = new StringBuilder(); - for (int i = 0; i < name.length(); i++) { - int c = (int) name.charAt(i); - if (Arrays.binarySearch(illegalChars, c) < 0) { - cleanName.append((char) c); - } else { - cleanName.append('_'); - } - } - return cleanName.toString(); - } - - private void exportImage(File dir, BufferedImage img, ItemStack stack) throws IOException { - String name = EnumChatFormatting.getTextWithoutFormattingCodes(GuiContainerManager.itemDisplayNameShort(stack)); - name = cleanFileName(name); - File file = new File(dir, name + ".png"); - for (int i = 2; file.exists(); i++) { - file = new File(dir, name + '_' + i + ".png"); - } - ImageIO.write(img, "png", file); - } - - private IntBuffer pixelBuffer; - private int[] pixelValues; - - private BufferedImage screenshot() { - Framebuffer fb = Minecraft.getMinecraft().getFramebuffer(); - Dimension mcSize = GuiDraw.displayRes(); - Dimension texSize = mcSize; - - if (OpenGlHelper.isFramebufferEnabled()) { - texSize = new Dimension(fb.framebufferTextureWidth, fb.framebufferTextureHeight); - } - - int k = texSize.width * texSize.height; - if (pixelBuffer == null || pixelBuffer.capacity() < k) { - pixelBuffer = BufferUtils.createIntBuffer(k); - pixelValues = new int[k]; - } - - GL11.glPixelStorei(GL11.GL_PACK_ALIGNMENT, 1); - GL11.glPixelStorei(GL11.GL_UNPACK_ALIGNMENT, 1); - pixelBuffer.clear(); - - if (OpenGlHelper.isFramebufferEnabled()) { - GlStateManager.bindTexture(fb.framebufferTexture); - GL11.glGetTexImage(GL11.GL_TEXTURE_2D, 0, GL12.GL_BGRA, GL12.GL_UNSIGNED_INT_8_8_8_8_REV, pixelBuffer); - } else { - GL11.glReadPixels(0, 0, texSize.width, texSize.height, GL12.GL_BGRA, GL12.GL_UNSIGNED_INT_8_8_8_8_REV, pixelBuffer); - } - - pixelBuffer.get(pixelValues); - TextureUtil.processPixelValues(pixelValues, texSize.width, texSize.height); - - BufferedImage img = new BufferedImage(mcSize.width, mcSize.height, BufferedImage.TYPE_INT_ARGB); - if (OpenGlHelper.isFramebufferEnabled()) { - int yOff = texSize.height - mcSize.height; - for (int y = 0; y < mcSize.height; ++y) { - for (int x = 0; x < mcSize.width; ++x) { - img.setRGB(x, y, pixelValues[(y + yOff) * texSize.width + x]); - } - } - } else { - img.setRGB(0, 0, texSize.width, height, pixelValues, 0, texSize.width); - } - - return img; - } -} diff --git a/dependencies/main/java/codechicken/nei/config/GuiItemSorter.java b/dependencies/main/java/codechicken/nei/config/GuiItemSorter.java deleted file mode 100644 index 77f843ba5f..0000000000 --- a/dependencies/main/java/codechicken/nei/config/GuiItemSorter.java +++ /dev/null @@ -1,184 +0,0 @@ -package codechicken.nei.config; - -import codechicken.lib.math.MathHelper; -import codechicken.nei.ItemSorter; -import codechicken.nei.ItemSorter.SortEntry; -import codechicken.nei.LayoutManager; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; - -import java.awt.*; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import static codechicken.lib.gui.GuiDraw.drawStringC; -import static codechicken.lib.gui.GuiDraw.getMousePosition; - -public class GuiItemSorter extends GuiOptionPane { - public class SortItem { - public double ya; - public double y; - public SortEntry e; - - public SortItem(SortEntry e) { - this.e = e; - y = slotY(); - } - - public int slotY() { - return GuiItemSorter.this.slotY(list.indexOf(e)); - } - - public void update(int my) { - ya = y; - if (dragging && this == dragged) { - y = dragstarty + my - mouseclickedy; - } else { - y = MathHelper.approachExp(y, slotY(), 0.4, 20); - } - } - - public boolean contains(int my) { - my -= drawBounds().y; - return my >= y && my < y + 20; - } - } - - public Option opt; - public List slots = new ArrayList(); - public List list; - - boolean dragging; - public SortItem dragged; - public int mouseclickedy; - public double dragstarty; - - public GuiItemSorter(Option opt) { - this.opt = opt; - list = ItemSorter.fromSaveString(opt.renderTag().getValue()); - for (SortEntry e : list) { - slots.add(new SortItem(e)); - } - } - - public int slotY(int slot) { - return 2 + slot * 24; - } - - @Override - public int contentHeight() { - return slots.size() * 24; - } - - @Override - public void drawContent(int mx, int my, float frame) { - Rectangle w = drawBounds(); - - for (SortItem item : slots) { - if (item != dragged) { - drawItem(w, item, mx, my, frame); - } - } - - if (dragged != null) { - drawItem(w, dragged, mx, my, frame); - } - } - - public void drawItem(Rectangle w, SortItem item, int mx, int my, float frame) { - double y = MathHelper.interpolate(item.ya, item.y, frame); - GlStateManager.translate(0, y, 0); - Rectangle b = new Rectangle(w.x, w.y, w.width, 20); - boolean mouseOver = itemAt(w.x + mx, w.y + my) == item; - - GlStateManager.color(1, 1, 1, 1); - LayoutManager.drawButtonBackground(b.x, b.y, b.width, b.height, true, mouseOver ? 2 : 1); - drawStringC(item.e.getLocalisedName(), b.x, b.y, b.width, b.height, mouseOver ? 0xFFFFFFA0 : 0xFFE0E0E0); - - GlStateManager.translate(0, -y, 0); - } - - @Override - public String getTitle() { - return opt.translateN(opt.name); - } - - @Override - public GuiScreen getParentScreen() { - return opt.slot.getGui(); - } - - @Override - public void updateScreen() { - super.updateScreen(); - - int my = getMousePosition().y; - for (SortItem item : slots) { - item.update(my); - } - - if (dragging) { - int nslot = (int) MathHelper.clip((dragged.y - (2 - 12)) / 24, 0, slots.size() - 1); - if (nslot != list.indexOf(dragged.e)) { - list.remove(dragged.e); - list.add(nslot, dragged.e); - opt.getTag().setValue(ItemSorter.getSaveString(list)); - if (opt.activeTag() == opt.getTag()) { - ItemSorter.list = new ArrayList(list); - } - } - } - } - - public SortItem itemAt(int mx, int my) { - if (!pane.windowBounds().contains(mx, my)) { - return null; - } - - if (dragged != null && dragged.contains(my)) { - return dragged; - } - - for (SortItem item : slots) { - if (item.contains(my)) { - return item; - } - } - - return null; - } - - @Override - protected void mouseClicked(int x, int y, int button) throws IOException { - super.mouseClicked(x, y, button); - - if (!dragging && button == 0) { - SortItem item = itemAt(x, y); - if (item != null) { - dragging = true; - dragged = item; - mouseclickedy = y; - dragstarty = item.y; - } - } - } - - @Override - protected void mouseReleased(int x, int y, int button) { - if (button == 0) { - dragging = false; - } - } - - @Override - public List handleTooltip(int mx, int my, List tooltip) { - if (!dragging) { - SortItem item = itemAt(mx, my); - if (item != null && item.e.getTooltip() != null) { - tooltip.add(item.e.getTooltip()); - } - } - return tooltip; - } -} diff --git a/dependencies/main/java/codechicken/nei/config/GuiNEIOptionList.java b/dependencies/main/java/codechicken/nei/config/GuiNEIOptionList.java deleted file mode 100644 index dbf4859b5e..0000000000 --- a/dependencies/main/java/codechicken/nei/config/GuiNEIOptionList.java +++ /dev/null @@ -1,54 +0,0 @@ -package codechicken.nei.config; - -import codechicken.core.gui.GuiCCButton; -import codechicken.nei.NEIClientConfig; -import net.minecraft.client.gui.GuiConfirmOpenLink; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.GuiYesNoCallback; - -import java.awt.*; -import java.net.URI; - -public class GuiNEIOptionList extends GuiOptionList implements GuiYesNoCallback { - private GuiCCButton patreonButton; - - public GuiNEIOptionList(GuiScreen parent, OptionList optionList, boolean world) { - super(parent, optionList, world); - } - - @Override - public void resize() { - super.resize(); - patreonButton.x = width - 73; - patreonButton.y = height - 23; - } - - @Override - public void addWidgets() { - super.addWidgets(); - add(patreonButton = new PatreonButton(0, 0, 70, 20).setActionCommand("patreon")); - } - - @Override - public void actionPerformed(String ident, Object... params) { - if (ident.equals("patreon")) { - GuiConfirmOpenLink gui = new GuiConfirmOpenLink(this, "patreon.com/cb", 0, true); - gui.disableSecurityWarning(); - mc.displayGuiScreen(gui); - } else { - super.actionPerformed(ident, params); - } - } - - @Override - public void confirmClicked(boolean yes, int id) { - if (yes && id == 0) { - try { - Desktop.getDesktop().browse(new URI("http://patreon.com/cb")); - } catch (Exception e) { - NEIClientConfig.logger.error("Failed to open patreon page", e); - } - } - mc.displayGuiScreen(this); - } -} diff --git a/dependencies/main/java/codechicken/nei/config/GuiOptionList.java b/dependencies/main/java/codechicken/nei/config/GuiOptionList.java deleted file mode 100644 index 7942caea77..0000000000 --- a/dependencies/main/java/codechicken/nei/config/GuiOptionList.java +++ /dev/null @@ -1,284 +0,0 @@ -package codechicken.nei.config; - -import codechicken.core.gui.GuiCCButton; -import codechicken.core.gui.GuiScreenWidget; -import codechicken.core.gui.GuiScrollSlot; -import codechicken.lib.vec.Rectangle4i; -import codechicken.nei.LayoutManager; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.GlStateManager; - -import java.awt.*; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.List; - -import static codechicken.lib.gui.GuiDraw.*; -import static net.minecraft.util.StatCollector.translateToLocal; - -public class GuiOptionList extends GuiScreenWidget { - public class OptionScrollSlot extends GuiScrollSlot { - public ArrayList